当前位置:文档之家› 操作系统实验报告.

操作系统实验报告.

武汉理工大学学生实验报告书实验课程名称操作系统开课学院计算机科学与技术学院指导老师姓名刘军学生姓名李安福学生专业班级软件sy1201 2014 — 2015 学年第一学期《操作系统》实验教学大纲课程编号:课程名称:操作系统/Operating System实验总学时数:12学时适应专业:计算机科学与技术、软件工程承担实验室:计算机科学与技术学院实验中心一、实验教学的目的和任务通过实验掌握Linux系统下常用键盘命令、系统调用、SHELL编程、后台批处理和C程序开发调试手段等基本用法。

二、实验项目及学时分配三、每项实验的内容和要求:1、Linux键盘命令和vi要求:掌握Linux系统键盘命令的使用方法。

内容:见教材p4, p9, p40, p49-53, p89, p1002、Linux下的C编程要求:掌握vi编辑器的使用方法;掌握Linux下C程序的源程序编辑方法;编译、连接和运行方法。

内容:设计、编辑、编译、连接以及运行一个C程序,其中包含键盘输入和屏幕输出语句。

3、SHELL编程和后台批处理要求:掌握Linux系统的SHELL编程方法和后台批处理方法。

内容:(1) 将编译、连接以及运行上述C程序各步骤用SHELL程序批处理完成,前台运行。

(2) 将上面SHELLL程序后台运行。

观察原C程序运行时输入输出情况。

(3) 修改调试上面SHELL程序和C程序,使得在后台批处理方式下,原键盘输入内容可以键盘命令行位置参数方式交互式输入替代原键盘输入内容,然后输出到屏幕。

4、Linux系统调用使用方法。

要求:掌握Linux系统调用使用方法。

内容:学习使用time, ctime, sleep, exit等Linux系统调用使用方法。

5、Linux系统进程控制要求:掌握Linux系统中进程控制原语fork的使用方法。

内容:设计C程序,其中主进程创建一个子进程,以特定次序各自执行规定操作后退出。

以上每项实验均要求每人一个Linux联机终端独立完成。

四、实验改革与特色完成多用户分时系统Linux下的基本使用级观察级实验。

五、教材及实验指导书教材:孟静,《操作系统教程题解与实验指导》,高等教育出版社 2002.6执笔:杨铭熙审阅:陈天煌日期2014年12月6审定:徐东平日期2014年12月6实验课程名称:操作系统一、调试过程(包括调试方法描述、实验数据记录,实验现象记录,实验过程发现的问题等)1 使用mkdir命令建立一个子目录subdir2 使用cat或more命令查看file1文件的内容。

3 将date命令的用法附加到文件file1的后面:4 利用ls -l file1命令列出文件file1的较详细的信息。

5 利用rm fa命令将文件fa删除。

再利用ls -l命令查看工作目录内容。

6 运行mv file1 file_a命令,然后用ls命令查看这两个文件是否都还在工作目录中?显然,只有file_a在工作目录中,而file1不在工作目录中vi 共分为三种模式(1)命令模式:命令模式为vi的初始模式,可以使用“上下左右”按键来移动光标,您可以使用“删除字符”或“删除整行”来处理文档。

在编辑模式或指令列模式中按【ESC】键可换回命令模式。

(2)编辑模式:在命令模式中按下【i, I, o, O, a, A, r, R】等字母之后才会进入编辑模式。

按下上述的字母时,在画面的左下方会出现【 --INSERT-- 或 --插入-- 】的字样,才可以做文字数据输入。

(3)指令列模式:在命令模式当中,输入【:】或【 / 】就可以将光标移动到最底下那一行,进入指令列模式。

在这个模式当中,可以存盘、结束vi 、显示行号等操作。

二、实验结果及分析(包括结果描述、实验现象分析、影响因素讨论、综合分析和结论等)Free 显示系统中已用空闲内存数量top:查看系统进程情况三、实验小结、建议及体会vi编辑器是Linux系统下标准的编辑器,它的强大不逊色于任何文本编辑器。

初次实验对Linux常用命令及编辑器的使用操作都不熟悉,但对Linux很好奇。

通过实验,学会了如何在现有操作系统的基础上再打开一个操作系统,并对新的窗口进行操作。

开始进入的界面有点像DOS环境下的界面,接着可以输入一些语句命令来创建和查看文件、查看根目录及根目录下的内容,以及如何进入文件夹、如何编译并推出编译等。

学会vi有助于我们学习Linux。

实验课程名称:操作系统第二部分:实验调试与结果分析(可加页)一、实验结果及分析(包括结果描述、实验现象分析、影响因素讨论、综合分析和结论等)二、实验小结、建议及体会通过这次实验vi编辑器有了进一步的应用,同时学会了在Linux进行简单的C语言编程,掌握Linux下C程序的源程序编辑方法;编译、连接和运行方法。

加深了对linux的印象,linux的兼容性很强。

C/C++仍旧可以在上面编译成功。

在以后的学习中会加大努力加强自己的编程能力。

实验课程名称:操作系统GccBash第二部分:实验调试与结果分析(可加页)四、调试过程(包括调试方法描述、实验数据记录,实验现象记录,实验过程发现的问题等)调试过程中未发现任何问题五、实验结果及分析(包括结果描述、实验现象分析、影响因素讨论、综合分析和结论等)六、实验小结、建议及体会在实验中,我学习了Linux中的shell编程语法。

其实在shell中可以实现许多用C语言或者其他语言编写的程序功能,并且用shell更加快捷,因为它无需编译,是解释性语言。

此次实验让我对Linux下的编程有了进一步的了解。

实验课程名称:操作系统char *ctime(const time_t *timep);函数说明ctime()将参数timep所指的time_t结构中的信息转换成真实世界所使用的时间日期表示方法,然后将结果以字符串形态返回。

此函数已经由时区转换成当地时间,字符串格式为“Wed Jun 30 21 :49 :08 1993\n”。

若再调用相关的时间日期函数,此字符串可能会被破坏。

返回值返回一字符串表示目前当地的时间日期。

time(取得目前的时间)表头文件#include<time.h>定义函数time_t time(time_t *t);函数说明此函数会返回从公元1970年1月1日的UTC时间从0时0分0秒算起到现在所经过的秒数。

如果t 并非空指针的话,此函数也会将返回值存到t指针所指的内存。

返回值成功则返回秒数,失败则返回((time_t)-1)值,错误原因存于errno中。

sleep(让进程暂停执行一段时间)表头文件#include<unistd.h>定义函数unsigned int sleep(unsigned int seconds);函数说明sleep()会令目前的进程暂停,直到达到参数seconds 所指定的时间,或是被信号所中断。

返回值若进程暂停到参数seconds 所指定的时间则返回0,若有信号中断则返回剩余秒数。

二、实验结果及分析(包括结果描述、实验现象分析、影响因素讨论、综合分析和结论等)三、实验小结、建议及体会通过这次实验学习使用time, ctime, sleep, exit等Linux系统调用使用方法,加深了对Linux下编程的理解,在以后会多多了解Linux系统调用的更多方法,并多加练习。

实验课程名称:操作系统while ((p2 = fork()) == -1);if (p2 == 0) ;第二个子进程{wait_mark = 1;signal(SIGINT, SIG_IGN);signal(17, stop);waiting();lockf(1, 1, 0); ;加锁printf("Child Process12 is Killed by Parent!\n");lockf(1, 0, 0); ;解锁exit(0);}Else ;父进程{wait_mark = 1;signal(SIGINT, stop);waiting();kill(p1, 16);kill(p2, 17);wait(0);wait(0);printf("Parent Process is Killed!\n");exit(0);}}}输出结果有两种:Child Processll is Killed by Parent!Child Processl2 is Killed by Parent!Parent process is Killed!Child Processl2 is Killed by Parent!Child Processll is Killed by Parent!Parent process is Killed!二、实验结果及分析(包括结果描述、实验现象分析、影响因素讨论、综合分析和结论等)三、实验小结、建议及体会在本实验中,我学习了在Linux中利用fork来创建子进程的过程。

加深了对进程、子进程、进程号等概念的直观认识。

通过实验掌握Linux系统中进程控制原语fork的使用方法。

同时发现自己对Linux有很多的不熟悉的地方,在以后会进一步加强。

相关主题