欢迎来到天天文库
浏览记录
ID:23104302
大小:534.00 KB
页数:36页
时间:2018-11-04
《计算机操作系统-课设》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、课程设计报告课程名称:计算机操作系统专业班级:信安1302班学号:姓名:指导教师:报告日期:2016.3.13计算机科学与技术学院目录一、实验目的1二、实验环境1三、实验内容1四、设计与实现24.1实验一24.1.1实验要求24.1.2设计思路24.1.3具体过程和结果34.1.3源代码34.2实验二54.2.1实验要求54.2.2具体实现54.2.3源代码74.3实验三84.3.1实验要求84.3.2具体实现84.3.3源程序104.4实验四134.4.1实验要求134.4.2设计思路134.4.3程
2、序效果显示174.4.4源代码19五、实验总结32一、实验目的(1)掌握Linux操作系统的使用方法;(2)了解Linux系统内核代码结构;(3)掌握实例操作系统的实现方法。二、实验环境本次课程设计采用的操作系统环境是Ubuntu系统,Ubuntu系统版本号为14.04,内核版本号为linux3.18.27;采用的编程环境为gcc编译器和QtCreator。三、实验内容实验一:掌握Linux操作系统的使用方法,包括键盘命令、系统调用;掌握在Linux下的编程环境。(1)编写一个C程序,其内容为实现文件拷
3、贝的功能。(2)编写一个C程序,其内容为分窗口同时显示三个并发进程的运行结果。要求用到Linux下的图形库(GTK/Qt)。实验二:掌握系统调用的实现过程,通过编译内核方法,增加一个新的系统调用。另编写一个应用程序,使用新增加的系统调用。(1)内核编译、生成,用新内核启动;(2)新增系统调用实现:文件拷贝或P、V操作。实验三:掌握增加设备驱动程序的方法。通过模块方法,增加一个新的设备驱动程序,其功能可以简单。实现字符设备的驱动。实验四:使用GTK/QT实现系统监控器(1)了解/proc文件的特点和使用方
4、法;(2)监控系统状态,显示系统中若干部件使用情况;(3)用图形界面实现系统监控状态。32一、设计与实现4.1实验一4.1.1实验要求掌握Linux操作系统的使用方法,包括键盘命令、系统调用;掌握在Linux下的编程环境。4.1.2设计思路(1)要求编写一个C程序,其内容为实现文件拷贝的功能。在windows操作系统上实现的文件拷贝功能一般使用fopen、fread、fwrite三个来自标准C函数库的函数执行对文件的打开、读、写操作,而本次实验要求使用Linux系统的系统调用open、read、writ
5、e实现上述三个操作。用到的主要头文件如下:stdio.h——标准输入输出头文件string.h——字符串处理相关头文件unistd.h——Linux系统调用头文件,比如read、writefcntl.h——包含open系统调用errno.h——包含一些调试错误时用到的变量具体实现思路:打开两个文件(分别是源文件和目标文件,可以是任意字符流形式存储的文件,包括文本文件、照片等),调用read函数读取源文件的内容,将read的返回值作为while循环的判断条件,当返回值大于0(即还未读取完毕源文件中的内容)
6、时,调用write执行向目标文件写的操作,否则跳出循环,表示源文件已经被拷贝到目标文件,然后调用close关闭源文件和目标文件。(2)编写一个C程序,其内容为分窗口同时显示三个并发进程的运行结果。要求用到Linux下的图形库(GTK/Qt)。本次实验使用的图形库是跨平台的开发工具Qt。首先下载Qt的安装包并安装。Qt安装完之后,先新建一个Qt控制台应用MAIN作为主进程,用于调用三个并发的子进程。在主进程的main函数中,使用fork创建三个子进程,若进程创建成功(即fork函数返回值等于0),则使用e
7、xecv函数进入对应的子进程(window1、window2、window3)主进程程序编写完成后,再新建三个QtWidgetsApplication,分别作为三个子进程,三个窗口显示了自己的进程号和父进程号。324.1.3具体过程和结果(1)代码完成后用保存为.c文件用gcc编译后./运行即可,实现的功能为复制文件1.txt为2.txt,如图4.1、4.2所示:图4.1图4.2(2)主进程和三个子进程的程序全部编写完后,直接在Qt上编译运行。程序运行结果如图4.3所示:图4.34.1.3源代码#inc
8、lude#include#include#include#include#include32#include#defineBUFFER_SIZE1024//缓冲区大小intmain(intargc,char**argv){intfrom_fd,to_fd;intbytes_read,bytes_wr
此文档下载收益归作者所有