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

Ch2进程和其管理.ppt

  1. 1、本文档共62页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 本讲结束 * 何时发生进程切换?中断(时钟中断、I/O中断、内存失效)、陷阱(视情况可能不发生切换进程)、系统调用。 模式切换仅做上下文记录和模式改变的记录开销小,但进程切换则除了保存上下文和更新当前进程状态和PCB中的相关信息外,要将该PCB加入相应队列,选择另一个进程执行并更新新调试进程的PCB信息,恢复其上下文以便运行。 * 并补充硬件解决方案 本讲结束 * 并补充硬件解决方案 本讲结束 * * 本讲结束(1学时) 2.4 进程管理 “撤销进程”操作流程图 2.4 进程管理 “阻塞进程”操作流程图 “唤醒进程”操作流程图 2.5 ★ 进程同步与通信 一、进程互斥与同步 互斥是一种特殊的同步关系,由于各进程要共享资源而有些资源往往要求排它性地使用,或者说是互斥地使用。因此进程间往往要互相竞争的使用这些互斥的资源。 临界资源CR( Critical Resources ):就是一次只允许一个进程使用的资源。 临界区:进程中访问临界资源的那段代码。 所谓互斥(mutual exclusion),指的是多个进程之间要排它地使用临界资源。 2.5 进程同步与通信 临界资源分为:硬临界资源和软临界资源两类。 硬临界资源如:输入机、打印机、磁带机等。 软临界资源如:系统内许多由多个进程共享的 变量、数据、表格、队列等。 同步:指两个事件的发生有着某种时序上的关 系。 进程间的同步关系:是指系统中往往有几个 进程共同完成一个任务,因此它们之间必须协 同配合。甚至需要交换信息进行进程间的通信。 2.5 进程同步与通信 二、临界区及其三准则 无论用什么方法解决临界区问题,必须满足下列准则: (1)每次至多只允许一个进程处于临界区之中。 (2)若有多个进程同时要求进入它们的临界区时应在有限的时间内让其中之一进入临界段而不应相互阻塞以致于各进程都进不去临界段。 (3)进程只应在临界段内逗留有限时间。 2.5 进程同步与通信 三:临界区处理方案 1. 简单标记法: 为临界区设个标志字gate,其值为1表示已有进程处于临界区中,值为0表示临界区尚无进程占用。 缺点:处理过程常常出现滞后,若进程1进入临界区后没来得及标志gate就被系统转道运行进程2,则进程2同样进入临界区,当进程1恢复运行后继续执行临界区代码,则两个进程同时处于临界区,发生矛盾。 结论:简单标记法不能够实现临界区。 2.5 进程同步与通信 2. Dekker算法: 在简单标记法基础上,再增加一个优待标记。 有两个并发进程P0和P1,互斥地共享单个资源。此问题的解决方案如下: 用标志位FLAG[0]来标示进程0是否要求进入临界段或已在临界段中执行,当FLAG[0]为真时,则表示它正在执行临界段。反之不在临界段中执行。另外还设置了一个优待标记turn,用以指出应该由哪一个进程进入临界段;若turn=0则应该由进程P0进入临界段。 缺点:若进程无法进入临界区,则在临界区外等待,当进程较多时,这种等待将造成时间的大量消耗。 2.5 进程同步与通信 3. 上锁与解锁指令: 设置一个锁字节x,若x=0,则资源可用;x=1表示资源已经在使用。每个进程在对资源进行操作之前,必须完成上锁操作lock(x). (1)考察锁字节x的值(是0还是1) (2)若x=0,将锁字节x置1. (3)如果原来的值为1,则返回第一步。 (4)进程使用资源完毕,则执行解锁操作,将x置0. 缺点:仍然还是忙等待的。 2.5 进程同步与通信 4. ★信号量与P、V操作 1. 信号量: (1)信号量(信号灯)是一个仅能由同步原语对其进行操作的整型变量。信号量由内存中相邻的两个单元组成。用以描述某种资源的可用程度,其中一个单元为信号量的值,代表该资源的可用数量。另一个单元是在该资源上等待的进程队列指针。 按用途可分: 1)二元信号量或叫互斥信号量:它仅允许取值“0”与“1”, 主要用作互斥变量 2)一般信号量或叫同步信号量:它允许取值为整数,主要用于进程间的一般同步问题。 2.5 进程同步与通信 1)p操作? void p(semaphore s) { s.count--; ? ???? if (s.count0?) ???????????wait(s);? } ????? ???? 2)v操作 ?void v(semaphore s) ?{???s.count++;?????? ????if(s=0)? ?????????signal(s); } 从定义可知,P操作代表进程对资源的申请,有资源则占有,没有资源则等待,进入阻塞状态;V操作代表对资源的释放,同时考察是否有在等待队列上等待的进程,如果有则唤醒一个,使其进入就绪队列。 2. P

文档评论(0)

xuefei111 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档