操作系统实验二(3)实验报告.pdfVIP

  • 2
  • 0
  • 约3.06千字
  • 约 6页
  • 2020-07-22 发布于江苏
  • 举报
烟台大学 烟台大学计算机学院 操作系统 实 验 报 告 书 班 级:计 114-3 班 姓 名:刘镇 学 号:201158504337 日 期: 2013-6-7 烟台大学 《计算机操作系统》实验报告 一、 实验内容 (2.3 )进程的软中断通信 二、实验目的 (1)加深对进程概念的理解,明确进程和程序的区别。 (2 )进一步认识并发执行的实质。 (3 )分析进程竞争资源现象,学习解决进程互斥的方法。 (4 )了解 Linux 系统中进程通信的基本原理。 三、 实验题目 使用系统调用 fork() 创建两个子进程, 再用系统调用 signal() 让父进程捕捉键盘上来的中断信号 (即按DEL 键);当捕捉到中断信号后,父进程用系统调用 Kill() 向两个子进程发出信号,子进程捕捉到信号后分别 输出下列信息后终止: Child Processll is Killed by Parent! Child Processl2 is Killed by Parent! 父进程等待两个子进程终止后,输出如下的信息后终止 Parent Process is Killed! 四、设计思路和流程图 2019-6-13 第 2 页/共 6 页 烟台大学 五、源程序: #includestdio.h #includesignal.h #includeunistd.h #includestdlib.h 2019-6-13 第 3 页/共 6 页 烟台大学 int wait_mark; void waiting() { sleep(5); if(wait_mark != 0) { kill(getpid(), SIGALRM); } } void alarming() { wait_mark = 0; } void stop() { wait_mark = 0; } void main() { int p1, 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(parent process is over!); exit(0); } 2019-6-13 第 4 页/共 6 页 烟台大学 else { wait_mark = 1; signal(17, stop);

文档评论(0)

1亿VIP精品文档

相关文档