实验3进程同步与通信实验

实验3进程同步与通信实验

ID:24170625

大小:125.25 KB

页数:4页

时间:2018-11-13

实验3进程同步与通信实验_第1页
实验3进程同步与通信实验_第2页
实验3进程同步与通信实验_第3页
实验3进程同步与通信实验_第4页
资源描述:

《实验3进程同步与通信实验》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、实验3进程同步与通信实验一、实验目的1.加深对进程概念的理解,明确进程和程序的区別2.进一步认识并发执行的实质3.分析进程争川资源的现象,学习解决进程互斥的方法4.了解Linux系统中进程通信的基本原理5.掌握Linux系统软中断通信的实现方法6.学会使川Linux系统屮关于进程通信的实现方法7.掌握管道通信的使用二、实验内容1.编制实现软中断通信的程序使用系统调用forkO创建两个子进程,再用系统调用signalO让父进程捕捉定时器报警屮断信号(SIGALRM),当父进程接收到该信号后,调川kill(>l4两个子进柷发送终止信号,子进程分别输出卜列信息后

2、终止。Childprocess1iskilledbyparent!!Childprocess2iskilledbyparent!!父进程调川waitO函数等待两个子进程终止后,输出以下信息后终止。Parentprocessiskilled!!多运行几次编写的程序,简略分析出现不同结果的原因。2.编制实现进程的管道通信的程序(选作)使用系统调用pipe()建立一条管道线,两个子进程分别向管道线各写一句话。Childprocess1issendingamessage!!Childprocess2issendingamessage!!父进程从管道屮读出来自于两个

3、了进程的信息,显示屏幕上。要求:父进程先接收子进程P1发来的消息,然后再接收子进程P2发來的消总。三、实验结果1.编制实现软中断通信的程序源代码:#include#include#include#includevoidstop();intwaitFlag;intmain(){intpidlzpid2;signal(3,stop);while((pidl=fork())==-1)if(pidl>0)while((pid2=fork())==-1)if(pid2>0){waitFla

4、g=1;sleep⑴;kill(pidl,16);kill(pid2,17);wait(O);wait(O);printf("Parentprocessiskilled!!");exit(O);}else{waitFlag=1;signal(17,stop);printf("Childprocess2iskilledbyparent!!");exit(O);}}else{waitFlag=1;signal(16,stop);printf("Childprocess1iskilledbyparent!!");exit(O);}}voidstop(

5、){waitFlag=0;运行结果:FileEditViewTerminalTabsHelpWHOOHM

6、Childprocess1iskilledbyparent!!Childprocess2iskilledbyparent!!Parentprocessiskilled!![root@localhostDesktop]#./expChildprocess1iskilledbyparent!!Childprocess2iskilledbyparent!!Parentprocessiskilled!![root@localhostDesktop]#./exp

7、Childprocess1iskilledbyparent!!Childprocess2iskilledbyparent!!Parentprocessiskilled!![root@localhostDesktop]#./expChildprocess1iskilledbyparent!!Childprocess2iskilledbyparent!!Parentprocessiskilled!![root@localhostDesktop]#./expChildprocess2iskilledbyparent!!Childprocess1iskilledb

8、yparent!!Parentprocessiskilled!![root@localhostDesktop]#./expChildprocess1iskilledbyparent!!Childprocess2iskilledbyparent!!Parentprocessiskilled!![root@localhostDesktop]#

9、1.编制实现进程的管道通信的程序(选作)源代码://include//include#includeintpidl,pid2;main(){intfd[2];ch

10、arOutPipe[100],lnPipe[100];pipe(f

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。