欢迎来到天天文库
浏览记录
ID:32976066
大小:76.81 KB
页数:7页
时间:2019-02-18
《操作系统第五次试验报告》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、甘肃政法学院本科生实验报告(五)姓名:王绵沼学院:网络空间安全学院专业:计算机科学与技术班级:2015级计算机科学与技术实验课程名称:操作系统基础实验实验日期:2017年门月20日开课时间:2016-2017学年第一学期甘肃政法学院实验管理中心印制实验题目进程的软中断通信小组合作否姓名王绵沼班级2015计本学号201581110133一、实验目的1•了解kill。、signalO等函数的用法。2•掌握进程中信号的接收与发送。3•掌握signalO函数不同参数的不同意义。实验环境Linux操作系统•二、实验內容与步骤1、编程实现,父进程生成子进程,父进程发送信号并等待,子进程接收信号并完成
2、某种功能,然后自我终止并唤醒父进程。2、编制一程,使用系统调用fork。创建两个子进程,再用系统调用signalO让父进程捕捉键盘上来的中断信号(即DEL键),当捕捉到中断信号后,父进程用系统调用killO向两个子进程发出信号,子进程捕捉到信号后,分别输出下列信息后终止。childprocess1iskilledbyparent!childprocess2iskilledbyparent!父进程等待两个子进程终止后,输出以下信息后终止。Parentprocessiskilled!3、在上面程序中,增加语句signal(SIGINT,SIG_IGN)、signal(SIGQUIT?SIG_
3、IGN),观察执行结果,并分析原因。四、实验过程与分析1、代码如下:L*IKW,1II1^1>II<4I・WJnrvetI.1W»V#incIude#incIude#incIudeintfunc();hbin(){intiJ;signa1(17,func);if(i=fork()){printf("parent:signaI17willbesenttochild!¥):kill(i.l7);vait(0)iprintf(*parent:finished!【T);1eIse{sleep(10);printf(wchild:a
4、signaIfromnyparentisreceived!');exit();}}intfunc(){printf(witissignaI17processingfunction!J;jetinn0;OpenOffice.orgWriter文字处理器结果如下:Lroot^'IocaIhostx^angmianzhaoj#>/kangmianzhaol10parent:signaI17wi11besenttochiId!itissigna117processingfunction!child:asignaIfromnyparentisreceived!itissignaI17pr
5、ocessingfunction!parent:finished!Jhjoot^localhostKangmianzhao]#
6、分析:该进程先将所示进程创建的共享段连接到自己的地址空间(这里只共享其中的8K空间)。之后,判断共享段是否有信息,若无,则等待,否则,读信息并进行显示。2、代码如下:nnin(){intpl.p2.stdout:while((pl=fork())==-]);if(pl>0){while((p2=fork())==-]);if(p2>0){printf(^parentw);\ait_niirk=l;signa1(SIGINT,stop):iting();k
7、ilKplJ6);kill(p2J7);\ait(0);\ait(0);printf(parentprocessiskiIled!T);exit(0);}eIse{printf(Tp2*);\ait_niirk=l;signa1(17.stop);signaKSlGlNT.SIG.lGN);iting();上述程序中,实用函数signalO都放在一段程序的前面部位,而不是在其他接收信号处。这是因为signalO的执行只是为进程指定信号最16或17的作用,以及分配相应的与stop。过程链接的指针。从而signal。[root^locaIhostplP2parentchiIdp
8、rocess1chiIdprocess2[root'^locaIhost[1]3804[root'^locaIhostP2parentwangmianzhao]#wangmianzhao]#•/wangmianzhaol1&Pl函数必须在程序前面部分执行。结果如下:xvangmianzhao]#./wangmianzhaol1iskiIledbyprent!iskiIledbyparent!parentprocessiskiIled
此文档下载收益归作者所有