操作系统实验实验报告

发布时间:   来源:文档文库   
字号:
烟台大学




烟台大学计算机学院
操作系统

级:计114-3名:刘镇
号:201158504337期:2013-6-7


精品文档

《计算机操作系统》实验报告
一、实验内容
2.3进程的软中断通信

二、实验目的
1)加深对进程概念的理解,明确进程和程序的区别。2)进一步认识并发执行的实质。
3)分析进程竞争资源现象,学习解决进程互斥的方法。4)了解Linux系统中进程通信的基本原理。
三、实验题目
使用系统调用fork(创建两个子进程,再用系统调用signal(让父进程捕捉键盘上来的中断信号(即按DEL键);当捕捉到中断信号后,父进程用系统调用Kill(向两个子进程发出信号,子进程捕捉到信号后分别输出下列信息后终止:
ChildProcessllisKilledbyParent!ChildProcessl2isKilledbyParent!
父进程等待两个子进程终止后,输出如下的信息后终止ParentProcessisKilled!

四、设计思路和流程图

.

精品文档

五、源程序:
#include#include#include#include"stdlib.h"
intwait_mark;
.

精品文档

voidwaiting({sleep(5;if(wait_mark!=0{kill(getpid(,SIGALRM;}}
voidalarming({wait_mark=0;}
voidstop({wait_mark=0;}
voidmain({intp1,p2;if(p1=fork({if(p2=fork({wait_mark=1;signal(SIGINT,stop;signal(SIGALRM,alarming;waiting(;kill(p1,16;kill(p2,17;wait(0;wait(0;printf("parentprocessisover!";exit(0;}else
.

精品文档
{wait_mark=1;signal(17,stop;signal(SIGINT,SIG_IGN;while(wait_mark!=0;lockf(1,1,0;printf("child2isover!\n";lockf(1,1,0;exit(0;}}else{wait_mark=1;
signal(16,stop;
signal(SIGINT,SIG_IGN;while(wait_mark!=0;lockf(1,1,0;
printf("child1isover!\n";lockf(1,1,0;exit(0;}}
六、程序运行时的初值和运行结果
不做任何操作等待五秒钟父进程回在子进程县推出后退出,并打印退出的顺序;或者点击ctrl+C后程序退出并打印退出的顺序。

.

精品文档

七、实验体会
通过父进程的kill(,使子进程获得中断进程信号。其中signal(),用于接受信号,在SIGINT,SIGALRM两种情况下,有不同的相应。

.

本文来源:https://www.2haoxitong.net/k/doc/7e2fc774bed126fff705cc1755270722192e59a7.html

《操作系统实验实验报告.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式