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

共享内存和信号量(进程间通信)VIP免费

共享内存和信号量(进程间通信)_第1页
1/11
共享内存和信号量(进程间通信)_第2页
2/11
共享内存和信号量(进程间通信)_第3页
3/11
实验 7 共享内存和信号量(进程间通信)邢卫 2008-11-26 修订实验目的学习并掌握 Linux 系统中的进程间通信机制,包括共享内存和信号量。实验内容1. 学习共享内存相关的系统调用shmget(), shmat(), shmdt, shmctl()2. 学习信号量(semaphore)相关的系统调用semget(), semop(), semctl()3.学习信号(signal)相关的系统调用signal(), atexit()等4.完成《边干边学》第 6.4.1 节的实验程序的编辑、编译、运行操作5.分析、学习实验程序的工作过程和原理6.选做:学习《边干边学》第 6 章,结合使用联机手册(可以从 man 2 ipc 命令开始),编程练习各种进程间通信机制实验步骤1.以 stu 帐号登录2.编辑 reader_writer1.c 程序注意:在 193 页 delete()函数中,注意改成if (mysemctl(Semid, 0, IPC_RMID, (union semun)0) == -1) {限于实验的时间,该文件已预先存放在/home/stu/.kernel/lab6 目录下,可以直接使用。但每位同学务必通读并理解该程序。登录后,使用 cd .kernel/lab6 命令进入该文件所在目录,继续以下实验步骤。3.编译 gcc reader_writer1.c -o reader_writer14.运行 ./reader_writer1注意记录下共享内存的 id 号5.使用 Alt+F2 切换到第 2 个登录窗口,再次以 stu 帐号登录可以使用 who 命令查看验证此时有两个 stu 用户已登录可以使用 ps –l 命令查看这两个 stu 用户的进程6.在第 2 个 stu 用户窗口中,输入 ./reader_writer1 共享内存的 id 号注意:此时,第 2 个 stu 用户窗口中的进程担当 writer 角色,第 1 个 stu 用户窗口中的进程担当 reader 角色。7.在第 2 个窗口中,多次输入信息;使用 Alt+F1 和 Alt+F2 在两个窗口间切换,观察你对 writer 的输入,writer 已经通过共享内存传递给了 reader。8.此时,你还可以使用 Alt+F3 切换到第 3 个登录窗口,并以 stu 帐号登录可以使用 who 命令验证有 3 个 stu 用户登录;可以经常性使用 ps –l 命令来查看另外两个窗口中的进程的状态9.切换到 writer 窗口(第 2 个窗口),通过对 writer 的问题回答“2”,退出 writer。切换到 reader 窗口(第 1 个窗口),通过 Ctrl+C 终止 reader 进程。思考题1.同样的源程序,reader 和 writer 进程是怎样各自找到自己的定位的?2.reader 和 writer 是怎样通过信号量(semphore)实现同步的?write...

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

碎片内容

共享内存和信号量(进程间通信)

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