2022年2022年进程创建[归 .pdf
实 验 报 告( / 学年第学期)课程名称操 作 系 统 A实验名称进程创建实验时间年月日指导单位计算机学院指导教师学生姓名班级学号学院 ( 系) 计算机学院专业软件工程名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 6 页 - - - - - - - - - 1 实 验 报 告实验名称进程创建指导教师实验类型验证实验学时实验时间一、 实验目的和要求1掌握进程创建系统调用的使用。2从一个进程中创建两个子进程,主进程等待,先从两个子进程中输出信息,最后从主进程中输出信息。二、实验环境 ( 实验设备 ) Windows 2000 + VMWare + RedHat Linux 9 三、实验原理及内容1.编写 C 语言程序,实现在程序运行时通过系统调用fork()创建两个进程,使父子女三进程并发执行, 父亲进程执行时屏幕显示 “parent” , 儿子进程执行时屏幕显示 “son” ,女儿进程执行时屏幕显示“daughter ” 。代码如下:#include main() int p1,p2,i; while(p1=fork()=-1); if(p1=0) for(i=0;i4;i+) /sleep(1); printf(daughter %dn,i); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 6 页 - - - - - - - - - 2 实 验 报 告 else while (p2=fork()=-1); if(p2=0) for(i=0;i4;i+) /sleep(1); printf(son %dn,i); else for(i=0;i4;i+) /sleep(1); printf(parent %dn,i); 实验结果:如果我们把sleep语句加上,结果就会有所变化,我们来看新的结果名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 6 页 - - - - - - - - - 3 实 验 报 告为什么会出现这种情况呢?这个问题的症结在于进程的调度。我们知道处理器会给不同的进程分配一定的时间, 在第一种情况下由于计算机运算的速度很快加之运算的条目很少,在一个时间片内就完成了某个进程的全部操作,进程之间的调度不明显。在第二种情况下由于出现了进程的睡眠,其他进程名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 6 页 - - - - - - - - - 4 实 验 报 告将会使用空闲下来的处理器,于是出现了输出交错的现象。2.进程创建小实验#include #include main() int pid; pid=fork(); switch(pid) case -1: printf(fork fail!n); exit(1); case 0: printf(subprocess!n); exit(0); default: wait(0); printf(complete!n); exit(0); 实验结果:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 6 页 - - - - - - - - - 5 实 验 报 告四、实验小结(包括问题和解决方法、心得体会、意见与建议等)linux系统不同于 windows 系统,图形界面功能不是很强大,但是它的运行速度及响应时间快于 windows,而且性能稳定。本次实验,初步接触了linux系统,对其命令行的操作方式初步了解。此外,还了解了vi 编辑器的基本使用并使用vi 编辑器编辑 c语言函数 , 也了解了 gcc 编译器的编译过程。 不过同时也存在一些问题, 比如,我还是不能熟练的应用 linux系统调用,还不能靠自己的能力写出实验内容程序。总之,本次实验我受益匪浅,拓展了不同的操作系统方面的知识。相信这只是起步,将来我会在这个基础上进一步发展。五、指导教师评语成绩批阅人日期名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 6 页 - - - - - - - - -