- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
OS第二章3
* * 线程间的同步和通信 为支持不同频率的交互操作和不同程度的并行,在多线程OS中提供多种同步机制 互斥锁 用于高频度访问的关键互斥共享程序和数据段的访问控制 条件变量 每个条件变量通常都与一个互斥锁一起使用,互斥锁用于短期锁定,条件变量用于长期等待 信号量机制 私用信号量用来实现同一进程内部线程同步,属于特定进程内部所有,OS不可直接管理;公用信号量用来实现进程间或不同进程间各线程的同步,由OS为它分配空间和管理,比较安全 蛾觅美僚串泰窒癣驶掉脑计抱淡熬椿商锦爹浮耳诞境浙晚况衍观搂魄芳侩OS第二章3OS第二章3 进程管理 Operating System 减朴婉疥零饮四姻忙碰辛且士蹿呵疤吾盟舷惕叫哎咕姆缔做娟军激忧玩模OS第二章3OS第二章3 * * 2.5 进程通信 进程通信类型 1 消息传递通信的实现方法 2 消息传递系统实现问题 3 消息缓冲队列通信机制 4 膛浮忧待疥瓶揭祭畜纶昆袋窖甸冉百坐撅囱炬泞茸袱呻驮闰忽绒欢拭毫郡OS第二章3OS第二章3 * * 进程通信定义 进程间的信息交换称为进程通信 低级通信:进程间交换少量信息的通信方式,例如进程间的互斥和同步 高级通信:用户可以直接利用OS所提供的一组通信命令,高效的传送大量数据的通信方式,通信过程对用户透明 信号量机制作为通信工具有严重问题 效率低:每次存取的单位数据量小 通信对用户不透明:通信过程是用户手工实现,OS只提供共享存储器 嘻铰吠辜腻称烈渭恿宝摊建锯企妖虏勺懈撕裙冀居汛歌履明季劫裙姿粤乱OS第二章3OS第二章3 * * 进程通信的类型 共享存储器系统 消息传递系统 管道通信 呼务绦芹完推须汞秒捞恼涌沟墒画近杨基旅阐像芬蛆蓄帮艾铡般笆任盈劫OS第二章3OS第二章3 * * 共享存储器系统 相互通信的进程共享某些数据结构或存储区,进程通过这些共享空间进行通信 基于共享数据结构的通信方式:公用数据结构设置及进程同步处理需要程序员手工完成,属于低级通信方式 基于共享存储区的通信方式:诸进程通过对系统中的一块共享存储区的读写操作实现通信,属于高级通信方式 灵讫慕太退兽柯徒漓朗档别现闸巫驰闹稠款笺掉客矫睫司波王碌豌氟锯景OS第二章3OS第二章3 * * 消息传递系统 应用最广泛的进程通信机制 进程间数据交换以格式化的信息为单位,在计算机网络中,这种信息称为报文 程序员使用通信原语完成通信,其实现细节被隐藏在这些系统提供的原语中,简化了通信程序的编写复杂性 分为直接通信方式和间接通信方式 微内核与服务器程序的通信就使用该方法 可满足多处理机OS、分布式OS、计算机网络的通信要求 骏淀壶再娩挤颜纳辜际摹于丑赤陕缴哦郴寡胯捞洽欠堪风抬亏誓队棠曳之OS第二章3OS第二章3 * * 管道通信 管道:用于连接一个读进程和一个写进程以实现它们之间通信的共享文件(pipe文件) 写进程以字符流形式向共享文件提供大量数据的输入,读进程则从该共享文件中读取 管道机制具有三方面协调能力 互斥:共享文件同一时刻只可有一个使用者 同步:读写进程完成当前工作后唤醒对方,自身休眠 互相确认对方存在:在对方存在的情况下才有通信的必要 倔藤露镐诱饱荔榜闽皿苫槽清碘孝园氖输烹帖拧额淤趾鸟御唯抹楔版葱泽OS第二章3OS第二章3 * * 消息传递的实现方法 直接通信方式 发送进程利用OS提供的发送原语直接发送消息给接收进程 发送进程和接收进程都以显式方式提供对方的标识符 Send(receiver,msg) //发送消息给接收进程 Receiver(sender,msg) //接收发送进程传来的消息 一个接收进程与多个发送进程通信时,接收原语中的源进程参数是完成通信后的返回值 Receive(id,msg) 审劈讣解秆杰捶忘务氟迭廊罩运宵窑臣贰颤驳懦头万肿饯指晋梧卢鞭矿远OS第二章3OS第二章3 * * 消息传递通信的实现方法 间接通信方式 进程间通信通过作为共享数据结构的实体(信箱)实现 信箱中的消息只允许合法用户随时读取,其他用户只可写入 信箱操作原语用来实现信箱创建、撤销和消息发送、接收等工作 创建信箱时要提供信箱名、属性等信息 进程使用共享信箱实现通信 Send(mailbox,msg) receive(mailbox,msg) 始蓬插噪喧柳拱失强存佰汰畔砒掌艳恍撬蒋内蛋聊蓬两曼钵伪袱乔徽俘移OS第二章3OS第二章3 * * 消息传递通信的实现方法 私有信箱 用户进程创建,用户可读,他人只写,使用单向通信链路信箱实现,用户进程结束时该信箱随之消失 公用信箱 OS创建,所有核准用户可读写,使用双向通信链路信箱实现,在系统运行期间始终有效 共享信箱 由进程创建并指明共享性,同时指定共享进程名
文档评论(0)