1 / 8
文档名称:

操作系统实验报告.doc

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

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

分享

预览

操作系统实验报告.doc

上传人:yzhluyin1 2016/6/17 文件大小:0 KB

下载得到文件列表

操作系统实验报告.doc

相关文档

文档介绍

文档介绍:实验报告课程名称操作系统实验项目名称进程管理班级与班级代码实验室名称(或课室) 专业任课教师学号: 姓名: 实验日期: 姓名实验报告成绩评语: 指导教师(签名) 年月日说明:指导教师评分后,实验报告交院(系)办公室保存。实验项目二进程管理一、实验目的 1、加深对进程概念的理解,明确进程与程序的区别; 2、进一步认识并发进程的实质; 3、分析进程竞争资源的现象,学****解决进程互斥的方法; 4、了解 Linux 系统中进程通信的基本原理。二、预备知识 1、阅读 Linux 的 源码文件,加深对进程管理概念的理解; 2、阅读 Linux 的 源码文件,分析进程的创建过程。三、实验内容 1 、进程的创建任务: 编写一段程序, 利用 fork () 创建两个子进程, 其中父进程显示字符“ a”,两个子进程分别显示字符“ b”和“ c”。观察和记录屏幕上的显示结果,并分析原因。程序: #include<> main() { int p1,p2 ,a,b,c ; while ((p1=fork())= =-1); /* 创建子进程 p1*/ if (p1= =0) /* 子进程1 创建成功*/ putchar( ‘b’); else { while ((p2=fork())= =-1); /* 创建子进程 p2*/ if (p2= =0) /* 子进程2 创建成功*/ putchar( ‘c’); else putchar( ‘a’); /* 父进程执行*/ } }2 、进程的控制任务: 将以上程序的输出由一个字符分别改为一句话,观察和分析结果;如果利用系统调用 lockf () 给每个进程加锁实现进程间的互斥, 再观察和分析结果。程序 1: #include<> main() { int p1,p2 ,i; while ((p1=fork())= =-1); /* 创建子进程 p1*/ if (p1= =0) /* 子进程1 创建成功*/ for (i=0;i<500;i++) printf( “ son%d\n ”,i); /* 输出 500 个字符串“ son “*/ else { while ((p2=fork())= =-1); /* 创建子进程 p2*/ if (p2= =0) /* 子进程2 创建成功*/ for (i=0;i<500;i++) printf( “ daughter%d\n ”,i); /* 输出 500 个字符串“ daughter “*/ else for (i=0;i<500;i++) /* 父进程执行*/ printf( “ children%d\n ”,i); /* 输出 500 个字符串“ children “*/}} 程序 2: #include<> main() { int p1,p2,i; while ((p1=fork())= =-1); /* 创建子进程 p1*/ if (p1= =0) /* 子进程1 创建成功*/ { lockf(1,1,0); for (i=0;i<500;i++) printf( “ son%d\n ”,i); lockf(1,0,0); } else { while ((p2=fork())= =-1); /* 创建子