烟台大学计算机学院
操作系统
实验报告书
班级:计114-3班
姓名:刘镇
学 号:201158504337
日 期:2013-6-7
《计算机操作系统》实验报告
一、实验内容
()进程的管道通信
二、实验目的
烟台大学计算机学院
操作系统
实验报告书
班级:计114-3班
姓名:刘镇
学 号:201158504337
日 期:2013-6-7
《计算机操作系统》实验报告
一、实验内容
()进程的管道通信
二、实验目的
(1) 加深对进程概念的理解,明确进程和程序的区别。
(2) 进一步认识并发执行的实质。
(3) 分析进程竞争资源现象,学习解决进程互斥的方法。
(4) 了解Linux系统中进程通信的基本原理。
一、实验题目
编制一段程序,实现进程的管道通信。使用系统调用pipe。建立一条管道线。两个子进程pl和P2分 别向通道个写一句话:
childl process is sending message!
child2 process is sending message!
而父进程则从管道中读出来自两个进程的信息,显示在屏幕上。
四、设计思路和流程图
开始
初始化变量
写进管道
是
打印 &
从管道中读串
打印
五、源程序:
#include <>
#include <>
#include <>
#include ''''
int pidl,pid2;
main()
{
int fd[2];
char outpipe[100]9inpipe[100];
pipe(fd);
while ((pidl=fork( ))==-l);
if(pidl==O)
{
lockf(fd[l]4,0);
sprintf(outpipe,"child 1 process is sending message!'');
/*把串放入数组outpipe中*/
write(fd[l],outpipe,50); /*向管道写长为50字节的串*/
sleep⑸; /*自我阻塞5秒*/
lockf(fd[l],0,0);
exit(0);
}
else
{
while((pid2=fork( ))==-l);
if(pid2==0)
{
lockf(fd[l]4
操作系统实验二(4)实验报告 来自淘豆网m.daumloan.com转载请标明出处.