《操作系统》课程设计指导——进程管理设计

本文详细介绍了操作系统课程设计中关于进程管理的两个任务:进程的软中断通信和管道通信。通过实例代码,阐述了如何使用系统调用创建进程、处理信号以及实现进程间的通信。读者可以通过分析程序和运行结果,理解并发执行、进程互斥及资源争用的概念。
摘要由CSDN通过智能技术生成

一、设计目的

 (1)加深对进程概念的理解,明确进程和程序的区别。

 (2)进一步认识并发执行的实质。

 (3)分析进程争用资源的现象,学习解决进程互斥的方法。

 (4)了解Linux系统中进程通信的基本原理。

二、设计内容

 1)进程的软中断通信

   ①编制一段程序,使其实现进程的软中断通信。

   要求:使用系统调用fork()创建两个子进程,再用系统调用signal()让父进程捕捉

   键盘上来的中断信号(即按DEL键);当捕捉到中断信号后,父进程用系统调用Kill()向两个子进程发出信号,子进程捕捉到信号后分别输出下列信息后终止:

   Child Proeess 1 is Killed by Parent!

   Child Process 2 is Killed by Parent!

   父进程等待两个子进程终止后,输出如下的信息后终止:

   Parent Process is Killed!    

   ②在上面的程序中增加语句signal(SIGINT,SIG_IGN)和signal(SIGQUIT,SIG _IGN),观察执行结果,并分析原因。 

 2)进程的管道通信

   编制一段程序,实现进程的管道通信。

   使用系统调用pipe()建立一条管道线;两个子进程P1和P2分别向管道各写一句话:

   Child l is sending a message!

   Child 2 is sending a message!

   而父进程则从管道中读出来自于两个子进程的信息,显示在屏幕上。  

   要求父进程先接收子进程P1发来的消息,然后再接收子进程P2发来的消息。

三、指导步骤 

 1)进程的软中断通信

   <任务1>

   编制一段程序,使用系统调用fork()创建两个子进程,再用系统调用signal()让父进程捕捉键盘上来的中断信号(即按Del键),当捕捉到中断信号后,父进程用系统调用kill() 向两个子进程发出信号,子进程捕捉到信号后,分别输出下列信息后终止:

   child process l is killed by parent!

   child process 2 is killed by parent!  

    父进程等待两个子进程终止后,输出以下信息后终止:

   parent process is killed!

   (程序)

  

/*e-1-31*/

#include <stdio.h>

#include <signal.h>

#include <unistd.h>

#include <stdio.h>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值