chap10-进程通信题稿.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
10.4 共享存储区通信技术 特点:通信速度快。 共享存储区概念 用FIFO文件可以传递信息,但代价大: Write---将数据从内存复制到缓存中 Read---将数据从缓存中复制到内存中 操作过程复杂,时间耗费长。 若某进程使用的数据区也希望其他进程了解的话,允许其他进程访问该区,将会减少中间环节。这个区域称为——共享存储区。 2.共享存储区设立机制 1) 共享存储区是用户内存的一部分,不依赖于某个进程。 2) 该区有特定的名字表征,称为关键字。 3) 该区有特殊的拥有者及访问权限描述。 4) 每个进程都可设置对该区的访问指针,将其映射成自己的虚存空间。 3.使用共享存储区进行通信的特点 进程通信时,需交互的数据不发生移动 需要通信的进程通过对共享区访问实现信息交互 该区中的数据随着访问操作可能会被更新 对共享区管理要由通信程序控制,如建立加锁机制等 * 第八章 UNIX进程通信 * 第十章 UNIX进程的通信 进程是在特定的环境中执行的 进程执行中需要进行进程间的协调 进程间的协调机制是进程通信 本章描述UNIX进程通信的机制和方法 10.1 进程通信基本概念 进程通信随其技术发展,复杂化度不断增加、灵活性不断提高. 1.进程通信分类 控制信息传递--用于进程控制的少量字节 大批量数据信息传递--用于进程间程序或数据的批量交换.   2.进程间通信(IPC)的意义 实现多个进程间协调 早期只支持单机系统内进程间通信 后发展为可支持网络中进程间通信 进程通信机制与OS绑定 3.进程通信实现方式 主从式-----通信进程间有主从之分 会话式-----用请求/服务方式完成通信 邮箱机制-----通过邮箱完成信息传递 消息队列式-----通信双方地位平等,通过消息队列完成通信 信号量方式-----双方建立通报机制,实现产生、传递、接收、处理信号量,达到通信目的。 1、 概念 IPC(Inter process Commuaction) 是运行在多任务操作系统或网络计算机上的程序和进程使用的一组技术。 IPC大的可分为两类: 1)本地过程调用(LPC),它们允许并发运行的任务能彼此对话。LPC能共享内存空间、同步任务并相互发送消息,管道及信号通信属于此类。 2)远程过程调用(RPC),RPC类似于LPC,但却工作在网络上。RPC首先出现在运行UNIX操作系统的SUN微系统公司和HP公司的计算机上。 10.2 UNIX基本进程通信技术 2、UNIX进程通信大约包括三种类型 基本通信——用于传递进程间的控制信息; 管道通信——将管道文件作为通信的介质,传递进程间的信息; 复杂IPC——可传递大批量信息的通信方式。 3、 锁文件通信   通信进程双方将某个文件的建立与撤消作为一个锁标志,即约定:在某个指定目录中(通常会是/tmp目录)查找是否有一个双方约定好的锁文件存在。 存在时完成一种处理 不存在时完成另一种操作 例: 两进程P1和P2试图访问一个不能同时进入的临界资源打印机时,设定一个锁文件,执行中: P1查询锁文件是否存在,若不存在P1创建锁文件lock_file,然后使用该资源; 使用完后释放该资源并删除lock_file; 如锁文件存在,P1等待一个时间再进行锁文件的查询。 P2也执行与P1相似动作达到对共享临界资源的访问。 可以用系统调用creat、unlink及库函数sleep实现. 4、 用记录/文件锁定进行通信 通过对文件或文件中的记录锁定实现通信,在UNIX中有一些加锁的系统调用和函数,实现: 建议型锁定-----文件/记录可被锁定,进程执行时访问判断锁定的位置,决定是否能执行相应的访问。 例:多个进程对某文件都具有访问权,通过对文件锁定位置的判别,实现进程间的合作,并访问文件内容。 这种锁对rogue(诬赖)进程没有控制。 强制型锁定-----确定一个锁协议,提供附加的安全性。即对文件做每一个read及write系统调用时检测锁信息,满足时访问,否则不能访问(包括rogue 进程)。 例: 如某文本文件x.dat(不可执行),它对某进程组ID=12的进程开放,同时用chmod关闭进程组ID=12的执行位,构成强制型锁定。 通过系统调用fcntl及库函数lockf可完成文件中记录的锁定。 系统调用fcntl: 功能:对文件或文件中部分内容进行锁定。 头文件:sys/types.h, fcntl.h 调用方式:int fcntl(int fid, int cmd, [*arg*]…); 参数说明: fid——有效的整数,表示已打开的文件描述符 cmd——整数值,说明fcntl完成的行为,在头文件fcntl.h中 *arg*——选项,若采用锁时引用

文档评论(0)

希望之星 + 关注
实名认证
文档贡献者

我是一名原创力文库的爱好者!从事自由职业!

1亿VIP精品文档

相关文档