东北大学操作系统实验三.doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《东北大学操作系统实验三.doc》由会员分享,可在线阅读,更多相关《东北大学操作系统实验三.doc(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、实验报告 实验名称实验三 进程通信班 级学 号姓 名日 期2014.1.13成 绩评 阅 人软件学院(一)信号量机制实验【实验目的】1了解什么是信号。2熟悉LINUX系统中进程之间软中断通信的基本原理。【实验报告】1.#include#include#include void waiting(),stop();int wait_mark;main()int p1,p2;if(p1=fork() /*创建子进程p1*/ if(p2=fork() /*创建子进程p2*/wait_mark=1;signal(SIGINT,stop); /*接收到c信号,转stop*/waiting();kill(p
2、1,16); /*向p1发软中断信号16*/ kill(p2,17); /*向p2发软中断信号17*/ wait(0); /*同步*/wait(0);printf(parent process is killed!n);exit(0);elsewait_mark=1;signal(SIGINT,stop);waiting();lockf(1,0,0);printf(child process2 is killed by parent!n);lockf(1,0,0);exit(0);elsewait_mark=1;signal(SIGINT,stop);waiting();lockf(1,0,0
3、);printf(child process1 is killed by parent!n);lockf(1,0,0);exit(0);void waiting()while (wait_mark!=0);void stop()wait_mark=0;2.#include#include#includeint pid1,pid2;int EndFlag=0;int pf1=0;int pf2=0;void IntDelete() kill(pid1,16);kill(pid2,17);EndFlag=1;void Int1() printf(child process 1 is killed
4、!by parentn);exit(0);void Int2() printf(child process 2 is killed !by parentn);exit(0);main() int exitpid;signal(SIGINT,SIG_IGN);signal(SIGQUIT,SIG_IGN);if(pid1=fork()signal(SIGUSR1,Int1);signal(SIGINT,SIG_IGN);pause();exit(0);elseif(pid2=fork()signal(SIGUSR1,Int1);signal(SIGINT,SIG_IGN);pause();exi
5、t(0);elsesignal(SIGINT,IntDelete);waitpid(-1,&exitpid,0);printf(parent process is killedn);exit(0);分析由于忽略了中断与退出信号,程序会一直保持阻塞状态而无法退出。(二)进程的管道通信实验【实验目的】1了解什么是管道2熟悉UNIX/LINUX支持的管道通信方式【实验内容】1.程序#include #include #include int pid1,pid2;main( ) int fd2;char outpipe100,inpipe100;pipe(fd); /*创建一个管道*/while (p
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 东北大学 操作系统 实验
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内