- 1、本文档共33页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2.6 进程通信;2.6.1进程通信分类;(2)高级通信分类;2、管道通信;;管道通信必需的协调能力;3、消息传递系统;2.6.2消息传递通信的实现方式1、直接通信方式 ;解决生产者一消费者问题;2、间接通信方式 ;信箱的创建和撤消;消息的发送与接收;信箱分类;私用信箱;公用信箱;共享信箱;
信箱通信时,发送进程和接收进程的关系:
一对一关系。建立一条专用的通信链路。
多对一关系。服务进程与多个用户进程之间进行交互,又称客户/服务器交互。
一对多关系。一个发送进程与多个接收进程进行交互,使发送进程可用广播形式,向接收者发送消息。
多对多关系。建立一个公用信箱,多个进程投递并取走自己的消息。;;消息缓冲队列-数据结构定义;;消息缓冲队列-接收原语接收进程调用接收原语receive(b),从自己的消息缓冲队列mq中摘下第一个消息缓冲区i,并将其中的数据复制到以b为首址的指定消息接收区内。接收原语描述如下: ;2.4.5管程机制;● Hansan为管程所下的定义是:一个管程定义了一个数据结构和能为并发进程所执行(在该数据结构上)的一组操作,这组操作能同步进程和改变管程中的数据。
●管程= 数据结构+ 操作+ 对数据结构中变量的初始化
;图2-15 管程的示意图 ;管程的基本特性:
(1)局部于管程的数据只能被局部于管程内的过程所访问。
(2)一个进程只有通过调用管程内的过程才能进入管程访问共享数据。
(3)每次仅允许一个进程在管程内执行某个内部过程。
管程是一个语言成分,所以管程的互斥访问完全由编译程序在编译时自动添加,无需程序员关注,而且保证正确。;打磕睡的理发师问题 ;waiting:对占用沙发的顾客计数,该变量将被多个顾客进程互斥地访问并修改,设mutex信号量。
同步关系:
1、如果没有顾客,理发师就打磕睡,有顾客等待,唤醒理发师。
2、理发师理发,顾客等待。理发师理完发,下一个顾客可以去。
;用信号量解决打磕睡的理发师问题;第二章总结
进程同步与通信
1、进程同步的基本概念
(1)临界资源与临界区
(2)同步:同步是进程间共同完成一项任务时直接发生相互作用的关系。
(3)互斥:互斥是并发执行的多个进程由于竞争同一资源而产生的相互排斥的关系。
(4)同步机制遵循的准则。
2.实现临界区互斥的基本方法
软件实现方法;硬件实现方法。;3.信号量
(1)整型信号量
(2)记录型信号量:利用信号量实现同步与互斥
(3)And型信号量
4.经典同步问题
(1)生产者-消费者问题;
(2)读者-写者问题;
(3)哲学家进餐问题。
5.进程通信
PV操作是低级通信方式;
高级通信:共享存储系统;消息传递系统;管道通信。
6.管程
(1)基本概念
(2)组成
(3)基本特性
?;练习题;4、在单处理机上,如果系统中有n个进程,则就绪队列中的进程个数最多是多少个? A. 1个 B. n+1个 C. n个 D. n-1个
5、在单处理机上,如果系统中有n个进程,则等待队列中的进程个数最多是多少个? A. 1个 B. n+1个 C. n个 D. n-1个
6、在单处理机上,如果系统中有n个进程,则运行队列中的进程个数最多是多少个? A. 1个 B. n+1个 C. n个 D. n-1个
7、在由9个生产者,6个消费者,共享容量为8的缓冲器组成的生产者与消费者问题中,互斥使用缓冲器的信号量的初值应该为()
? A.1 B. 6 C. 8 D. 9;B
文档评论(0)