- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
进程间的相互作用 进程间的联系 进程的同步机制──信号量及P.V操作(解决进程同步互斥问题) 进程间的联系 相交进程与无关进程 相交进程:指多个并发进程在逻辑上有某种联系 无关进程(不相交进程):在逻辑上无任何联系的进程 直接作用和间接作用 直接作用: 进程间的相互联系是有意识的安排的,直接作用只发生在相交进程间 间接作用: 进程间要通过某种中介发生联系,是无意识安排的,可发生在相交进程之间,也可发生在无关进程之间 进程的同步(直接作用) 进程的同步:synchronism 指系统中多个进程中发生的事件存在某种时序关系,需要相互合作,共同完成一项任务。具体说,一个进程运行到某一点时要求另一伙伴进程为它提供消息,在未获得消息之前,该进程处于等待状态,获得消息后被唤醒进入就绪态。 进程的互斥(间接作用) mutual exclusion 由于各进程要求共享资源,而有些资源需要互斥使用,因此各进程间竞争使用这些资源,进程的这种关系为进程的互斥 临界资源(Critical resource):系统中某些资源一次只允许一个进程使用,这样的资源称为临界资源或互斥资源或共享变量。 临界区(Critical region):把不允许多个并发进程交叉执行的一段程序称为临界区或临界部分。 临界区就是访问公用数据的那段程序。 例如堆栈操作中的get(top)和rel(blk)程序。 使用互斥区的原则: 空闲让进:当无进程在互斥区时,任何有权使用互斥区的进程可进入 忙则等待:不允许两个以上的进程同时进入互斥区 有限等待:任何进入互斥区的要求应在有限的时间内得到满足 让权等待:处于等待状态的进程应放弃占用CPU,以使其他进程有机会得到CPU的使用权 进程互斥的软件方法 通过平等协商方式实现进程互斥的最初方法是软件方法 。其基本思路是在进入区检查和设置一些标志,如果已有进程在临界区,则在进入区通过循环检查进行等待;在退出区修改标志。 其中的主要问题是设置什么标志和如何检查标志。 设有两个计算进程PA、PB共享内存MS。其中MS分为三个领域,即系统区、进程工作区和数据区。这里数据区被划分大小相等的块,每个块中既可能放有数据,也有可能未放有数据。系统区主要是堆栈S,其中存放那些空数据块的地址。 如图所示: getspace() {?? int g;???????????? g?stack[top]; ?top?top-1; } 执行getspace就是获取一个空数据 release(ad) { ?top?top+1?;????????????????? stack[top]?ad?; }????? release(ad)就是释放一个地址为ad的数据块 ???? 信号量:semaphore 是一个数据结构 定义如下: struct semaphore { int value; pointer_PCB queue; } 信号量说明: semaphore s; P、V操作 P(s) { s.value = s.value --; if (s.value 0) { 该进程状态置为等待状态; 将该进程的PCB插入相应的等待队列末尾s.queue; } } V操作 V(s) { s.value = s.value ++; if (s.value = 0) { 唤醒相应等待队列s.queue中等待的一个进程; 改变其状态为就绪态 并将其插入就绪队列; } } P、V操作为原语操作 原语:primitive or atomic action 是由若干多机器指令构成的完成某种特定功能的一段程序,具有不可分割性 即原语的执行必须是连续的,在执行过程中不允许被中断 实现:开关中断 信号量的使用: 必须置一次且只能置一次初值 初值不能为负数 只能执行P、V操作 用P、V操作解决进程间互斥问题 互斥例子 三个进程共用两个I/O缓冲区。 解:设用信号量S表示共享资源,S初始值为2 例:用信号量及P、V原语实现两个并发进程Pa和Pb互斥。两进程都想进入临界区S。 解: 1)设sem为互斥信号量,表示临界区是否可进入 2)设sem的初始值为1,表示临界区可用 3)描述: Pa: Pb: P(sem) P(sem) S S V(sem)
您可能关注的文档
最近下载
- 人教版(PEP)小学六年级英语上册第四单元Unit 4 A Let’s talk精品课件.pptx VIP
- 2025中级保育师资格考试题库资料及答案(浓缩400题).pdf VIP
- 革命圣地西柏坡七言诗句.docx VIP
- (必会)中级保育师资格近年考试真题题库汇总(300题).docx VIP
- FSSC22000 V6食品安全管理体系管理手册 .pdf VIP
- 建筑工程图集 16J914-1:公用建筑卫生间.pdf VIP
- 外研版(2021)中职英语基础模块1 Unit 5 We Have Only One Earth For Better Performance 教案.docx VIP
- 07J912-1变配电所图集.pdf VIP
- 耳鼻咽喉科专科护士授权理论考试试题.docx VIP
- 工程项目保修期的工作安排措施.doc VIP
文档评论(0)