1 / 6
文档名称:

操作系统实验实验报告.doc

格式:doc   大小:306KB   页数:6页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

操作系统实验实验报告.doc

上传人:夏天教育 2022/10/22 文件大小:306 KB

下载得到文件列表

操作系统实验实验报告.doc

文档介绍

文档介绍:该【操作系统实验实验报告 】是由【夏天教育】上传分享,文档一共【6】页,该文档可以免费在线阅读,需要了解更多关于【操作系统实验实验报告 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。烟台大学
烟台大学计算机学院操作系统
实验报告书
班级:计114-3班
姓名:刘镇
学号:201158504337
日期:2013-6-7
精品文档
《计算机操作系统》实验报告
一、 实验内容
)进程的软中断通信
二、实验目的
(1)加深对进程概念的理解,明确进程和程序的区别。
(2)进一步认识并发执行的实质。
(3)分析进程竞争资源现象,学****解决进程互斥的方法。
(4)了解Linux系统中进程通信的基本原理。
三、实验题目
使用系统调用 fork() 创建两个子进程,再用系统调用 signal() 让父进程捕捉键盘上来的中断信号 (即按DEL
键);当捕捉到中断信号后,父进程用系统调用 Kill() 向两个子进程发出信号,子进程捕捉到信号后分别
输出下列信息后终止:
ChildProcessllisKilledbyParent!
ChildProcessl2isKilledbyParent!
父进程等待两个子进程终止后,输出如下的信息后终止
ParentProcessisKilled!
四、设计思路和流程图
.
精品文档
五、源程序:
#include<>
#include<>
#include<>
#include""
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两种情况下,有不同的相应。
.