内含代码,代码可执行
1) 编制实现软中断通信的程序
使用系统调用fork()创建两个子进程,再用系统调用signal()让父进程捕捉键盘上发出的中断信号(即按delete键),当父进程接收到这两个软中断的某一个后,父进程用系统调用kill()向两个子进程分别发出整数值为16和17软中断信号,子进程获得对应软中断信号,然后分别输出下列信息后终止:
Child process 1 is killed by parent !!
Child process 2 is killed by parent !!
父进程调用wait()函数等待两个子进程终止后,输入以下信息,结束进程执行:
Parent process is killed!!
多运行几次编写的程序,简略分析出现不同结果的原因。
2) 编制实现进程的管道通信的程序
使用系统调用pipe()建立一条管道线,两个子进程分别向管道写一句话:
Child process 1 is sending a message!
Child process 2 is sending a message!
而父进程则从管道中读出来自于两个子进程的信息,显示在屏幕上。
要求:父进程先接收子进程P1发来的消息,然后再接收子进程P2发来的消息。
编写一段程序,实现进程的管道通信。
使用系统调用pipe( )建立一条管道,创建两个子进程P1和P2。让P1和P2分别向管道各写一句话:
child process P1 is sending messages!
child process P2 is sending messages!
父进程则从管道中读出来自于两个子进程的信息,显示在屏幕上。