网站大量收购独家精品文档,联系QQ:2885784924

OS4(同步软硬件方法).pptx

  1. 1、本文档共34页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2.3 进程同步2.3.1 进程同步的基本概念2.3.2 信号量(semaphore)2.3.3 经典进程同步问题2.3.4 进程间通信操作系统进程间的合作关系合作合作司机售票员正常行车售票到站停车开车门开车关车门操作系统进程间竞争资源竞争打印进程2打印进程1获得打印数据获得打印数据打印打印操作系统合作与竞争计算进程完成数据计算打印进程竞争计算结果送到Buffer合作通知计算进程送下一个数合作Buffer通知打印进程打印从Buffer中取数竞争打印操作系统操作顺序冲突共享外设、内存(变量)等资源进程间存在两种关系相互合作司机与售票员计算者与打印者竞争资源多个打印者协调好这些关系的过程——进程的同步操作系统2.3.1 进程同步的基本概念 P48竞争资源关系——直接相互制约: 进程同步的主要任务:保证诸进程能互斥地访问临界资源相互合作关系——间接相互制约: 进程同步的主要任务:保证相互合作的诸进程在执行次序上的协调——同步。操作系统是Buffer空?否向打印进程发信号通知其从Buffer里取数否Buffer空?协调向计算进程发信号通知其向Buffer送数是计算进程与打印进程的同步计算进程打印进程完成数据计算互斥计算结果送到BufferBuffer从Buffer中取数互斥打印操作系统1.临界资源对于计算机中的有些软硬件资源,当多个进程对其进行访问时(关键是进行写入或修改),必须互斥地进行,这些一次只允许一个进程使用的资源称为临界资源(critical resource)。打印机、内存变量、指针、数组等都是临界资源。生活中的例子如:电话机等。临界资源需要采用互斥方式,实现对资源的共享。操作系统2、临界区 每个进程中访问临界资源的那段程序段称为临界区(critical section)。操作系统访问临界资源的循环进程Repeat 进入区:进入临界区之前,检查可否进入临界区的一段代码。如果可以进入临界区,通常设置相应“正在访问临界区”标志; 临界区:进程中访问临界资源的一段代码; 退出区:用于将正在访问临界区标志清除。 剩余区:代码中的其余部分。Entry sectionCritical section;Exit sectionRemainder section;Until false;操作系统改变资源状态阻塞等待资源释放释放资源进入区、退出区各部分的作用............进入区进入区临界区临界区退出区退出区............进程2进程1操作系统进程互斥互斥是针对不同进程访问同一临界资源。进程互斥进程互斥是指若干共享临界资源的进程彼此交换信息以保证排他性的进入各自的临界区,即当若干个进程都要使用某一共享资源时,任何时刻最多只允许一个进程使用该资源,其他要使用该资源的进程必须等待,直到占有资源者释放该资源进程同步所谓同步是指若干相互合作的进程彼此交换信息以保证在执行次序上的协调。进程同步:进程同步是指若干相互合作的进程在一些关键点上可能需要互相等待或互相交换信息。进程同步和互斥的关系进程同步是一般情况,互斥是同步的一种特殊情况。进程互斥可在具有一定逻辑关系的伙伴进程之间,也可在非伙伴进程之间;同步发生在相互有逻辑关系的伙伴进程之间。3、同步机制应遵循的准则空闲则入:其他进程均不处于临界区;忙则等待:已有进程处于其临界区;有限等待:等待进入临界区的进程不能死等;让权等待:不能进入临界区的进程,应释放CPU(如转换到阻塞状态)操作系统4、进程互斥的基本方法解决互斥问题既可采用软件方法,也可采用硬件方法。软件实现方法就是在进入区设置和检查一些标志来标明是否有进程在临界区中,如果已有进程在临界区中,则在进入区通过循环检查进行等待,进程离开临界区后则在退出区修改标志。 (1) 进程互斥的软件方法(补充)例如:有两个进程Pi和Pj,它们互斥的共享某个临界资源。Pi和Pj是循环进程,它们执行一个无限循环程序,每次使用该资源一个有限的时间间隔。RepeatWhile turn?i do no_opCritical section;turn:=j;remainder section;Until false;算法1:强制轮换法(单标志)对两个进程Pi, Pj,其中的Pi描述如下图设立一个公用整型变量 turn:描述允许进入临界区的进程标识在进入区检查是否允许本进程进入:turn为i时,进程Pi可进入;在退出区修改turn的值:进程Pi退出时,改turn为j;缺点: 强制轮流进入临界区,没有考虑进程的实际需要。容易造成资源利用不充分: 在Pi出让临界区之后,Pj使用临界区之前,Pi不可能再次使用临界区;操作系统以进程P0、P1为例,类C语法的伪码描述P0进程如下: int turn=0; //公共变量 进程P0:do{ while (tur

文档评论(0)

此项为空 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档