欢迎来到天天文库
浏览记录
ID:19720617
大小:750.50 KB
页数:44页
时间:2018-10-05
《操作系统课设》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、技术资料课程设计报告课程名称:计算机操作系统专业班级:学号:姓名:指导教师:报告日期:计算机科学与技术学院共享知识技术资料目录1实验目的22实验环境23实验内容23.1实验一23.2实验二23.3实验三23.4实验四(选做)33.5实验五(选做)34设计与实现34.1实验一34.2实验二104.3实验三144.4实验四205心得体会43共享知识技术资料1实验目的·掌握Linux操作系统的使用方法;·了解Linux系统内核代码结构;·掌握实例操作系统的实现方法;2实验环境本次课程设计采用的操作系统环境是windows8、Ubuntu双系统,Ubuntu系统版本号为1
2、4.04,内核版本号为linux3.13.0;采用的编程环境为CodeBlocksIDE和QtCreator。3实验内容3.1实验一掌握Linux操作系统的使用方法,包括键盘命令、系统调用;掌握在Linux下的编程环境。(1)编写一个C程序,其内容为实现文件拷贝的功能。(2)编写一个C程序,其内容为分窗口同时显示三个并发进程的运行结果。要求用到Linux下的图形库(GTK/Qt)。3.2实验二掌握系统调用的实现过程,通过编译内核方法,增加一个新的系统调用,另编写一个应用程序,调用新增加的系统调用。实现的功能是:文件拷贝。3.3实验三掌握增加设备驱动程序的方法。通过
3、模块方法,增加一个新的设备驱动程序,其功能可以简单。(实现字符设备的驱动)共享知识技术资料1.1实验四(选做)了解和掌握/proc文件系统的特点和使用方法(1)了解/proc文件的特点和使用方法;(2)监控系统状态,显示系统中若干部件使用状态;(3)用图形界面实现系统监控状态;1.2实验五(选做)设计并实现一个模拟的文件系统。多用户的多级目录的文件系统设计。多用户、多级目录、login(用户登录)、系统初始化(建文件卷,提供登录模块)、文件的创建、文件的打开、文件的读写、文件关闭、删除文件、创建目录(建立子目录)、改变当前目录、列出文件目录、退出。2设计与实现2.
4、1实验一2.1.1实验要求掌握Linux操作系统的使用方法,包括键盘命令、系统调用;掌握在Linux下的编程环境。2.1.2具体实现本实验内容是用CodeBlocksIDE实现的,该软件整合了函数库和编译器,因此使用起来非常方便。(1)编写一个C程序,其内容为实现文件拷贝的功能。在windows操作系统上实现的文件拷贝功能一般使用fopen、fread、fwrite三个来自标准C函数库的函数执行对文件的打开、读、写操作,而本次实验要求使用Linux系统的系统调用open、read、write实现上述三个操作。用到的主要头文件如下:stdio.h——标准输入输出头文
5、件共享知识技术资料string.h——字符串处理相关头文件unistd.h——Linux系统调用头文件,比如read、writefcntl.h——包含open系统调用errno.h——包含一些调试错误时用到的变量具体实现思路:打开两个文件(分别是源文件和目标文件,可以是任意字符流形式存储的文件,包括文本文件、照片等),调用read函数读取源文件的内容,将read的返回值作为while循环的判断条件,当返回值大于0(即还未读取完毕源文件中的内容)时,调用write执行向目标文件写的操作,否则跳出循环,表示源文件已经被拷贝到目标文件,然后调用close关闭源文件和目标
6、文件。代码编写完成后,在CodeBlocks上编译运行即可。程序运行之前,桌面上只有“教程.docx”,运行之后,桌面上新建了“教程副本.docx”,并且“教程.docx”中的内容被复制到了“教程副本.docx”,程序运行结果如下所示:详细代码见4.1.3。(2)编写一个C程序,其内容为分窗口同时显示三个并发进程的运行结果。要求用到Linux下的图形库(GTK/Qt)。本次实验使用的图形库是跨平台的开发工具Qt。首先下载Qt的安装包并安装。共享知识技术资料Qt安装完之后,先新建一个Qt控制台应用MAIN作为主进程,用于调用三个并发的子进程。在主进程的main函数中
7、,使用fork创建三个子进程,若进程创建成功(即fork函数返回值等于0),则使用execv函数进入对应的子进程(get、copy、put)。主进程程序编写完成后,再新建三个QtWidgetsApplication,分别作为三个子进程get、copy、put(所实现的功能并不是拷贝)。由于三个子进程窗口显示的内容形式一模一样,所以以子进程get为例。get进程的窗口显示了一下四个内容:当前时间、子进程名称、子进程的pid和父进程MAIN的pid。用Qt的对象QDateTime获取系统当前时间,然后将时间转换成一个字符串写在一个QLabel类的实例中,然后将该实例添
8、加至窗口;
此文档下载收益归作者所有