报告类型:实验报告√ 预习报告□
报告成绩: 指导教师审核(签名): 年 月
日
实验二 进程通信
一、实验目的
1.加深对各种进程通信基本工作原理的理解。
2.理解和掌握 Linux 系统中进程通信 API 的应用方法。
3.进一步认识进程软中断通信、管道通信和消息队列通信的实质。
4.分析、设计进程软中断通信的实现方法。
5.分析、设计进程的管道通信,实现父子进程的单机通信机制。
6.分析、设计进程的消息队列通信,实现客户机/服务器通信机制。
二、实验类型
设计性实验。
三、实验预备知识
1.阅读 Linux 进程通信技术(软中断、管道和消息队列)的使用方法。
2.阅读 Linux 系统中单机和多机通信技术,掌握各种通信技术 API 的基本应用方法。
四、实验内容
1.进程的软中断通信
【举例 1】
编制一段程序,使用系统调用 fork()创建两个子进程,再用系统调用 signal()让父进程捕
捉键盘上来的中断信号(即按任意字母键和 Enter 键),当捕捉到中断信号后,父进程用系统
调用 kill()向两个子进程发出信号,子进程捕捉到信号后,分别输出下列信息后终止:
child process 1 is killed by parent!
child process 2 is killed by parent!
父进程等待两个子进程终止后,输出以下信息后终止:
parent process is killed!
【程序】
#include <sys/types.h>
#include <unistd.h>
#include <stdio.h>