电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

操作系统实验报告2进程间通信

操作系统实验报告2进程间通信_第1页
1/6
操作系统实验报告2进程间通信_第2页
2/6
操作系统实验报告2进程间通信_第3页
3/6
实 验 报 告 ( 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.c 运行。 程序代码 #include #include #include void waiting( ),stop( ); int wait_mark; main( ) { int p1,p2,stdout; while((p1=fork( ))= =-1); /*创建子进程p1*/ if (p1>0) { while((p2=fork( ))= =-1); /*创建子进程p2*/ if(p2>0) { wait_mark=1; signal(SIGINT,stop); /*接收到^c 信号,转 stop*/ waiting( ); 2 kill(p1,16); /*向p1 发软中断信号 16*/ kill(p2,17); /*向p2 发软中断信号 17*/ wait(0); /*同步*/ wait(0); printf("Parent process is killed!\n"); exit(0); } else { wait_mark=1; signal(17,stop); /*接收到软中断信号 17,转 stop*/ waiting( ); lockf(stdout,1,0); printf("Child process 2 is killed by pare...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

操作系统实验报告2进程间通信

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部