进程的描述与控制Cowerointresentation.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
进程的描述与控制Cowerointresentation

* 上次课堂内容回顾 1、PCB有哪些组织方式? 2、什么是原子操作? 3、解释下面的图。 找出撤消进程 n 的 PCB n 是执行状态? 中断 CPU ,停止执行 置重新调度标志为真 撤消n的子孙进程 归还资源(系统、父进程) 将PCB移出所在队列 归还给系统 调度标志为真 ? n 为就绪? n 为阻塞? N Y N Y 出错处理 Y N N Y 进程调度程序入口 返回 2.3.5 进程的阻塞与唤醒 1. 引起进程阻塞和唤醒的事件 请求系统服务 2) 启动某种操作 3) 新数据尚未到达 4) 无新工作可做 2.进程的阻塞过程 找出执行进程的 PCB 表 中断 CPU ,暂停执行, 保存 CPU 现场 将执行进程置为阻塞状态 将 PCB 插入该事件阻塞队列 进程调度程序人口 3.进程的唤醒过程 找出唤醒进程的 PCB 表 将 PCB 表从阻塞队列移出 将进程 PCB 表中状态置为就绪 将 PCB 表插入就绪队列 返回 2.3.6 进程的挂起与激活 前面介绍过,什么是挂起? P31 具有挂起状态的进程状态图 根据进程所处状态,挂起原语可以有三种处理: 1.完成进程从活动就绪状态到静止就绪状态的转变; 2.完成进程从活动阻塞状态到静止阻塞状态的转变; 3.若进程是执行状态,则转变为静止就绪状态。 一、进程的挂起过程 这样,我们就可以得到进程挂起实现过程如下所示 二、进程的激活过程 2.4 进程同步的基本概念 合作关系:一组进程协同完成一个任务,它们之间是合作关系。这种情况需要对于相互合作的多个进程的执行次序进行协调,这样就必须交换信息,以免出现时间上的差错。 1 、进程之间的关系 例如,一个计算进程和一个打印进程共同完成一个任务。若打印进程要打印时,而计算进程尚未计算出结果,打印进程就无法打印,但是这种要求会传达给计算进程。当计算进程计算出结果时,通知打印进程,则打印进程就可以工作了。这种“传达”与“通知”就是在交换信息。 资源共享关(竞争)关系:多个进程因为使用共享资源而产生竞争关系,在抢占使用资源时可能导致使用失败,都达不到目的,因而要有信息交换以保证各得其所。 例如,多个进程共同使用一台打印机,当一个进程打印时,其它进程不能使用,否则打印内容会混在一起。在这种情况下,就要求当前正在使用打印机的进程与其它要求打印的进程之间交换信息,才能协调对打印机的使用。 同步:多个进程在执行过程中,为了共享资源与相互合作而在执行次序上的协调,称为同步,即共享同一资源的进程和相互关联进程以通信手段来保障完成任务时保持一种固定的时间关系。 互斥:当某一进程访问某一资源时,不允许别的进程同时访问,这种限制称为互斥,即多个进程在访问某些资源(如临界资源)时,也要有一种执行次序上的协调,当一个进程访问完毕,另一个进程才能访问。所以就其本质来讲,互斥仍是一种同步。 在一个系统中,必须有相应的方法或机制来协调进程的执行次序。 2 、临界资源 一次仅允许一个进程访问的资源称为临界资源 计算机的许多硬件资源都被处理成临界资源,有哪些呢? 打印机、磁带机等 例如,若打印机允许若干用户同时打印,则打印结果会混在一起,不易分辨,给用户带来许多不便。 系统中还有许多软资源,如共享变量、表格、队列、栈等也被处理成临界资源,以避免多个进程对它们访问时出现问题。 生产者-消费者(producer-consumer)问题 有一群生产者进程在生产产品,并将这些产品提供给消费者进程去消费。生产者和消费者在这个生产和消费过程中满足下面的条件: 1、生产者进程与消费者进程能并发执行,在两者之间设置了一个具有n个缓冲区的缓冲池,生产者进程将它所生产的产品放入一个缓冲区中; 2、消费者进程可从一个缓冲区中取走产品去消费。 3、不允许消费者进程到一个空缓冲区去取产品;也不允许生产者进程向一个已装满产品且尚未被取走的缓冲区中投放产品。 我们可利用一个数组来表示上述的具有n个(0,1,…,n-1)缓冲区的缓冲池。 用输入指针in来指示下一个可投放产品的缓冲区,每当生产者进程生产并投放一个产品后,输入指针加1,表示为in∶=(in+1)mod n 用一个输出指针out来指示下一个可从中获取产品的缓冲区,每当消费者进程取走一个产品后,输出指针加1,表示为out∶=(out+1) mod n 当(in+1) mod n=out时表示缓冲池满;而in=out则表示缓冲池空。 引入了一个整型变量counter, 其初始值为0。每当生产者进程向缓冲池中投放一个产品后,使counter加1;反之,每当消费者进程从中取走一个产品时, 使counter减1。 producer: repeat  …

文档评论(0)

sunshaoying + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档