实 验 报 告 ( 2013 / 2014 学年 第 1 学期)课程名称 操作系统原理 实验名称 实验2 :进程间通信 实验时间 2 0 1 3 年 1 0 月 1 0 日 指导单位 软件工程系 指导教师 杨 健 学生姓名 班级学号 学院(系) 软件工程系 专 业 计算机软件与服务外包 1 实验名称 实验2:进程间通信 指导教师 杨健 实验类型 验证 实验学时 2 实验时间 一、 实验目的 1.了解 Linux 中的信号,熟悉 Linux 系统中进程之间软中断通信的基本原理
2.Linux 系统的进程通信机构(IPC)允许在任意进程间大批量地交换数据,学习如何利用消息缓冲队列进行进程间的通信,并加深对消息通信机制的理解
二、实验环境(实验设备) Windows 2000 + VMWare + RedHat Linux 8 三、实验内容 1.编写程序:用 fork()创建两个子进程,再用系统调用 signal()让父进程捕捉键盘上来的中断信号(即按^c 键);捕捉到中断信号后,父进程用系统调用 kill()向两个子进程发出信号,子进程捕捉到信号后分别输出下列信息,然后终止: Child process1 is killed by parent
Child process2 is killed by parent
父进程等待两个子进程终止后,输出如下的信息后终止: Parent process is killed
2.分析利用软中断通信实现进程同步的机制
3.消息的创建,发送和接收
4.使用系统调用 msgget(),msgsnd(),msgrev(),及 msgctl()编制消息的发送和接收程序
5.server
c 程序后台运行,client
c 程序前台运行,server
c 先于 client
程序代码 #include #inclu