您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 操作系统第三次实验报告
西安邮电大学(计算机学院)课内实验报告实验名称:进程间通信专业名称:网络工程班级:学生姓名:学号(8位):指导教师:任东陕实验日期:2014年5月29日一.实验目的及实验环境实验目的Linux系统的进程通信机构(IPC)允许在任意进程间大批量地交换数据。本实验的目的是了解和熟悉Linux支持的消息通讯机制及信息量机制。实验环境:Window7、Linux环境下二.实验内容(1)消息的创建,发送和接收。①使用系统调用msgget(),msgsnd(),msgrev(),及msgctl()编制一长度为1k的消息的发送和接收程序。②观察上面的程序,说明控制消息队列系统调用msgctl()在此起什么作用?(2)共享存储区的创建、附接和段接。使用系统调用shmget(),shmat(),sgmdt(),shmctl(),编制一个与上述功能相同的程序。(3)比较上述(1),(2)两种消息通信机制中数据传输的时间。三.方案设计(1)消息的创建,发送和接收。①使用系统调用msgget(),msgsnd(),msgrev(),及msgctl()编制一长度为1k的消息的发送和接收程序。②观察上面的程序,说明控制消息队列系统调用msgctl()在此起什么作用?(2)共享存储区的创建、附接和段接。使用系统调用shmget(),shmat(),sgmdt(),shmctl(),编制一个与上述功能相同的程序。(3)比较上述(1),(2)两种消息通信机制中数据传输的时间。2.共享存储区的创建,附接和断接(1)为了便于操作和观察结果,用一个程序为“引子”,先后fork()两个子进程,SERVER和CLIENT,进行通信。(2)SERVER端建立一个KEY为75的共享区,并将第一个字节置为-1.作为数据空的标志.等待其他进程发来的消息.当该字节的值发生变化时,表示收到了该消息,进行处理.然后再次把它的值设为-1.如果遇到的值为0,则视为结束信号,取消该队列,并退出SERVER.SERVER每接收到一次数据后显示”(server)received”.(3)CLIENT端建立一个为75的共享区,当共享取得第一个字节为-1时,Server端空闲,可发送请求.CLIENT随即填入9到0.期间等待Server端再次空闲.进行完这些操作后,CLIENT退出.CLIENT每发送一次数据后显示”(client)sent”.(4)父进程在SERVER和CLIENT均退出后结束.四.测试数据及运行结果(1)消息的创建,发送和接收:正常测试及运行结果:(2)共享存储区的创建,附接和断接正常测试及运行结果:五.总结1.实验过程中遇到的问题:对于调用的函数,看的不太懂解决办法:请教同学,查资料,最终得以解决2.对设计及调试过程的心得体会。此次试验,我明白了进程间的通信是怎么回事,当结果出来时,感觉挺神奇的,我觉得,不过是写代码还是其他,兴趣很重要,对自己兴趣的培养也很重要,以后会用心学习这门课程
本文标题:操作系统第三次实验报告
链接地址:https://www.777doc.com/doc-2381694 .html