- 1、本文档共102页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
cha3进程同步与通信
本章基础要点 进程间的同步是指进程间在逻辑上的相互制约关系。 在进程中访问临界资源的代码称为临界区。为保证进程互斥访问临界资源,应在进程的临界区前设置进入区,在临界区后设置退出区。 进程间的相互制约关系有直接制约关系和间接制约关系。 临界区是一段程序。 本章基础要点 并发进程之间的基本关系是合作或共享资源,其中共享资源是指进程之间的一种间接关系。 访问临界资源应遵循的准则是:空闲让进、忙则等待、有限等待、让权等待。 如果信号量的当前值为-4,则表示 系统中在该信号量上有4个等待进程。 本章基础要点 在操作系统中,Wait、Signal原语是一种低级进程通信原语。 除初值外,信号量的值只能通过Wait、Signal操作来改变。 对于两个并发进程,设互斥信号量为 mutex ,若mutex=0 则表示: 有一个进程进入临界区。 用Wait、Signal操作管理临界区时,任何一个进程在进入临界区之前应调用Wait操作,退出临界区时应调用Signal操作。 本章基础要点 信号量的物理意义是: 当信号量值大于0时表示可用资源的数目;当信号量值小于0时,其绝对值为在该信号量上等待的进程个数。 信箱通信是一种间接通信方式。 利用消息机制实现通信时,应有发送原语和接收原语。 进程通信是指进程之间的信息交换。 第三章 作业 1、有一单向行驶公路桥,每次只允许一辆汽车通过。当汽车到达桥头时,若桥上无车,便可上桥;否则需等待,直到桥上的汽车下桥为止。若每一辆汽车为一个进程,请用p,v操作保证汽车按要求过桥。 第三章 作业 Semaphore S=1; Pass() {到达桥头; P(S); 上桥行驶; 到达桥的另一端; V(S); } 第三章 作业 2、有3个并发进程R、M、P,它们共享一个循环使用的缓冲区B,缓冲区B共有N个单元。进程R负责从输入设备读信息,每读一个字符后,把它存入到缓冲区B的一个单元中;进程M负责处理读入的字符,若发现读入的字符中有空格符,则把它改成“,”;进程P负责把处理后的字符取出并打印输出。当缓冲区单元中的字符被进程P取出后,则又可用来存放下一次读入的字符。请用PV操作写出它们正确并发执行的程序。 提示 1、这是一个三进程同步问题,需要考虑该问题中临界资源有哪些; 2、三个进程制约关系构成一个循环,其中控制关系(同步)需要用信号量来实现; empty full check 初始值是多少? 变化范围是多少? 另外,需要设置变量控制指针位置:in out1 out2 第三章 作业 R() {while(true) {char x; 读入下一条字符到x; p(empty); p(mutex); buffer[in]=x; in=(in+1)%N; v(mutex); v(full1); }} M() {char x; while(true) {p(full1); p(mutex); x=buffer[out1]; if(x==“”){x=‘,’; Buffer[out1]=x;} out1=(out1+1)%N; v(mutex); v(full2);}} p() {while(true) {p(full2); p(mutex); x=buffer[out2]; out2=(out2+1)%N; v(mutex); v(full1); 输出字符x; }} 第三章 作业 3、把学生和监考老师都看作进程,学生有N人,教师1人。考场门口每次只能进出一个人,进考场原则是先来先进。当N个学生都进入考场后,教师才能发卷子。学生交卷后可以离开考场, 教师要等收上来全部卷子并封装卷子后才能离开考场。 第三章 作业 信号量: semaphore S_Door; // 能否进出门,初值1 semaphore S_StudentReady; // 学生是否到齐,初值为0 semaphore S_ExamBegin; // 开始考试,初值为0 semaphore S_ExamOver; // 考试结束,初值为0 int nStudentNum = 0; // 学生数目 semaphore S_Mutex1 //互斥信号量,初值为1 int nPaperNum = 0; // 已交的卷子数目 semaphore S_Mutex2 //互斥信号量,初值为1 试用P、V操作解决上述问题中的同步和互斥关系 第三章 作业 void student( ) { P(S_Door); 进门; V(S_Door) ;(
您可能关注的文档
- ch4_4IIR数字滤波器的40.ppt
- ch3 凹函数与非线性规划.ppt
- ch4_1IIR数字滤波器的1.ppt
- CH3 地震作用与抗震验算.ppt
- CH4-集成运算放大电路.pptx
- ch4决策中的收益损失与效用.ppt
- Ch5-4电机学课件第五章第四节.ppt
- ch4组合逻辑电路(4.1-4.3).ppt
- ch5 直流-直流变流电路电力电子.ppt
- ch5 (机械系统弹性动力学).ppt
- 半导体材料性能提升技术突破与应用案例分析报告.docx
- 半导体设备国产化政策支持下的关键技术突破与应用前景报告.docx
- 剧本杀市场2025年区域扩张策略研究报告.docx
- 剧本杀行业2025人才培训体系构建中的市场需求与供给分析.docx
- 剧本杀行业2025年人才培训行业人才培养模式创新与探索.docx
- 剧本杀行业2025年内容创作人才需求报告.docx
- 剧本杀行业2025年区域市场区域剧本市场消费者满意度与市场竞争力研究报告.docx
- 剧本杀市场2025年区域竞争态势下的区域合作策略分析报告.docx
- 剧本杀行业2025人才培训与行业人才培养模式创新.docx
- 剧本杀行业剧本创作人才心理素质培养报告.docx
文档评论(0)