实验3 进程间通信.doc

实验3 进程间通信.doc

ID:61499477

大小:212.50 KB

页数:6页

时间:2021-02-07

实验3 进程间通信.doc_第1页
实验3 进程间通信.doc_第2页
实验3 进程间通信.doc_第3页
实验3 进程间通信.doc_第4页
实验3 进程间通信.doc_第5页
资源描述:

《实验3 进程间通信.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、2013~2014学年第一学期操作系统实验报告实验题目:实验三进程间通信专业:计算机科学与技术班级:BU计算机111学号:姓名:于秀芳实验日期:2013年11月18日实验地点:1J2A205盐城工学院机械优集学院实验3进程间通信1、实验目的Linux系统的进程通信机构(IPC)允许在任意进程间大批量地交换数据。本实验的目的是了解和熟悉Linux支持的消息通讯机制及信息量机制,理解进程处理信号的方法,使用用户自定义的信号处理程序。分析进程竞争资源现象,学习解决进程互斥的方法。了解linux系统中进程通信的基本原理。2、实验预备内容阅读L

2、inux系统的msg.c、sem.c和shm.c等源码文件,熟悉Linux的三种机制。3、实验内容(1)编写一段程序,使其现实进程的软中断通信。要求:使用系统调用fork()创建两个子进程,再用系统调用signal()让父进程捕捉键盘上来的中断信号(即按DEL键);当捕捉到中断信号后,父进程用系统调用Kill()向两个子进程发出信号,子进程捕捉到信号后分别输出下列信息后终止:ChildProcessllisKilledbyParent!ChildProcessl2isKilledbyParent!父进程等待两个子进程终止后,输出如下的

3、信息后终止ParentProcessisKilled!<程序代码><结果>(2)进程的管道通信编制一段程序,实现进程的管理通信。使用系统调用pipe()建立一条管道线;两个子进程P1和P2分别向管道中写一句话:Child1issendingamessage!Child2issendingamessage!而父进程则从管道中读出来自于两个子进程的信息,显示在屏幕上。要求父进程先接收子进程P1发来的消息,然后再接收子进程P2发来的消息。<程序代码><结果>(3)消息通信使用系统调用msgget(),msgsnd(),msgrcv()及ms

4、gctl()编制一长度为1K的消息发送和接收的程序。〈程序设计〉a)为了便于操作和观察结果,用一个程序为“引子”,先后fork()两个子进程,SERVER和CLIENT,进行通信。b)SERVER端建立一个Key为75的消息队列,等待其他进程发来的消息。当遇到类型为1的消息,则作为结束信号,取消该队列,并退出SERVER。SERVER每接收到一个消息后显示一句“(server)received”。c)CLIENT端使用Key为75的消息队列,先后发送类型从10到1的消息,然后退出。最后的一个消息,既是SERVER端需要的结束信号。CL

5、IENT每发送一条消息后显示一句“(client)sent”。d)父进程在SERVER和CLIENT均退出后结束。<程序代码><结果>

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。