惠州学院操作系统实验二

惠州学院操作系统实验二

ID:33017851

大小:69.36 KB

页数:5页

时间:2019-02-19

惠州学院操作系统实验二_第1页
惠州学院操作系统实验二_第2页
惠州学院操作系统实验二_第3页
惠州学院操作系统实验二_第4页
惠州学院操作系统实验二_第5页
资源描述:

《惠州学院操作系统实验二》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实验二进程控制一、实验目的(1)理解进程的同步、互斥、撤消等控制方法(2)熟悉进程间通过软中断传递控制信息的方法(低级通信)二、实验器材微型计算机、Ubuntu版本的Linux系统三、实验内容任务仏并发进程间通过软中断传递控制信号,实现进程同步。运行程序,观察运行结果,并分析。程序源代码如下:#include#include#includeintwait_mark;voidwaiting(),stop();main(){intp1,p2;while((p1=fork())==-1);if(p1>0){wh

2、ile((p2=fork())==-1);if(p2>0){wait_mark=1;signal(SIGINT,stop);waiting();kill(p1,16);kill(p2,17);wait(O);wait(O);printf(Mparentsiskilled'"');exit(O);}else{wait_mark=1;signal(17,stop);signal(2,1);waiting();lockf(stdout,1,0);printf(nP2iskilledbyparentM);lockf(stdout,0,0);exit(0);else{

3、wait_mark=1;signal(16,stop);signal(2,1);waiting();lockf(stdout,1,0);printf(uP1iskilledbyparent'"');lockf(stdout,0,0);exit(O);voidwaiting(){while(wait_mark!=0);}voidstop(){wait_mark=0;}程序运行截图如下:Q卞冲柜血心粵毛姓6f浏览并运行已安装的应用程序占云wpwrmsfvwwsorciiD(wut)untu:~/桌面文件(F)文件(F)编辑(E)查看(V)搜索⑸终端(T)帮助(H)位

4、置Sisoftli■桌面■文件*屉i网貉—软論■回N80文小音』■個/usr/include/signal.h:101:23:note:expected'..sighandler^t'butargumentisof,type'int*lab2_1.c:45:3:warning:passingargument1ofwithoutacast/usr/include/unistd.h:1094:12:note:expecteduct10FILEilab2.1.c:47:3:warning:passingargument1ofwithoutacast/usr/inclu

5、de/unistd.h:1094:12:note:expecteduct10FILE-Lab2_1.c:48:3:warning:incompatibleimplicitexit"'lockf'makesintegerfrompointerJint'butargumentisoftypeJstr"lockf"makesintegerfrompointerJint#butargumentisoftype4strdeclarationofbuiltfunction'j.softlib©ubuntu:、/桌面$•/lab2.1.outR9aCP2iskilledbyp

6、arentiskilledbyparentiHparentsiskilledfsoftlib©ubuntu:、/桌面$程序运行结果分析:程序用上锁的方法实现进程的互斥,父进程处理中一直在等待接收ctrl+c的信号,而p1进程一直在等待接收16信号,p2进程一直在等待接收17信号。一旦父进程接收到该信号,就分别向p1和p2发送16和17这两个信号。在各个信号接收到各自的信号之后,执行自己的处理过程。四、1.思考题解答(包括需要改写的程序的源码及适当注释)在本程序中,进程的冋步和互斥是如何实现的?答:同步是通过系统调用wait()使父进程等待子进程结束,否则父进程一

7、直处于等待的状态。一旦子进程暂停或终止,则调用进程做适当处理后便返回。这样实现了进程的同步。互斥是通过系统调用lockf()使输出段上锁,实现了各个进程的互斥。2.在本实验程序中调用lockf(),参数stdout指的是什么?答:stdout表示的是输出段。3.将子进程Pl、P2的程序段改为2个独立的函数,设计好后给父进程调用,程序应该如何改写?(实验报告上给出完整的源码,并在机器上运行。)答:修改后的源代码如下:#include#inelude#ineludevunistd.h>intwait_mark;voidwaiti

8、ngf),stop();

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

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

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