1 / 8
文档名称:

实验1实验报告.doc

格式:doc   大小:105KB   页数:8页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

实验1实验报告.doc

上传人:1006108867 2019/11/18 文件大小:105 KB

下载得到文件列表

实验1实验报告.doc

相关文档

文档介绍

文档介绍:内蒙古师范大学网络技术学院《操作系统》课程实验报告实****题目实验一进程的创建控制实验指导教师职称讲师学生姓名学号日期年月日实现工具Vi编辑器、Gcc编译工具实现环境Linux环境实****内容(功能、目标):创建进程,体会进程间的并发特征。:编写一段程序,使用系统调用fork()创建两个子进程p1和p2。而且父进程输出字符串“father”,第一个子进程输出字符串“borther1”,第二个子进程输出字符串“borther2”。:掌握系统调用fork()的使用方法及其功能;利用系统调用sleep()调整父进程及各子进程的并发执行过程。实现的思想、方法和技术(含数据结构、算法),包括代码、数据和分配给进程的资源。fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。()是进程的睡眠。(10)时,CPU读父进程与BROTHER2子进程抢占资源,父进程与BROTHER2子进程输出结果不一定谁先后;子进程2sleep(10)时,CPU读父进程与brother1子进程抢占资源,父进程与brother1子进程输出结果不一定谁先后;父进程sleep(10)时,CPU读BROTHER2子进程与brother1子进程抢占资源,BROTHER2子进程与brother1子进程输出结果不一定谁先后。主要代码注释#include<>#include<>intmain(){intp1;intp2;while((p1=fork())==-1);if(p1==0){ sleep(10);printf("brother1\n");}else{while((p2=fork())==-1);if(p2==0){ sleep(10);printf("BROTHER2\n");}else{printf("FATHER\n");}}}/*定义进程p1*//*定义进程p2*//*创建子进程p1,失败时循环*//*CPU读子进程p1,输出brother1*//*睡眠10秒,让父进程读*//*执行父进程,父进程创建p2*//*创建子进程p2,失败时循环*//*CPU读子进程p2,输出BROTHER2*//*睡眠10秒,让父进程读*//*CPU读子进程父进程,输出FATHER*/结果分析(含实现中出错原因分析)(10)时,CPU读父进程与BROTHER2子进程,并输出结果。(10)时,CPU读父进程与brother1子进程,并输出结果。(10)时,CPU读BROTHER2子进程与brother1子进程,并输出结果。思考题:?进程并发执行,子进程与父进程抢占处理机,所以输出字符顺序不同。,将字符串用循环语句一个一个字符输出,再查看执行结果如何?思考题主要代码注释#include<>#include<>intmain(){intp1,p2;p1=fork();if(p1<0){printf("error!");}elseif(p1==0){chara[