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

《计算机操作系统进程调度》.ppt

  1. 1、本文档共72页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单道程序与多道程序的执行 单道程序执行的过程 多道程序执行的过程 进程和程序的区别和关系? 进程和程序是两个既有联系又有区别的概念,它们的区别和关系可简述如下: (1) 进程是一个动态概念,而程序则是一个静态概念。程序是指令的有序集合,没有任何执行的含义。而进程则强调执行过程,它动态地被创建,并被调度执行后消亡。 (2) 进程具有并行特征,而程序没有。由进程的定义可知,进程具有并行特征的两个方面,即独立性和异步性。也就是说,在不考虑资源共享的情况下,各进程的执行是独立的,执行速度是异步的。显然,由于程序不反映执行过程,所以不具有并行特征。 (3) 进程是竞争计算机系统资源的基本单位,从而其并行性受到系统自己的制约。这里,制约就是对进程独立性和异步性的限制。 (4) 不同的进程可以包含同一程序,只要该程序所对应的数据集不同。 如何监控程序的执行? 用各种数据结构来记录多个进程(PCB) 用状态的变迁来跟踪多个进程 用进程调度来选择控制多个进程 用并发控制来同步、协调多个进程 进程的静态描述 进程=程序+数据+进程控制块PCB 程序描述进程所要完成的功能 数据是对其进行操作的数据结构集,程序在执行时必不可少的工作区和操作对象。 进程控制块包含了有关进程的描述信息、控制信息以及资源信息,是进程动态特征的集中反映。 进程状态及转换 进程控制 进程控制,就是系统使用一些具有特定功能的程序段来创建、撤消进程以及完成进程各状态间的转换,从而达到多进程高效率并发执行和协调、实现资源共享的目的。 1.进程创建 2.进程撤销 3.进程阻塞 4.进程唤醒 5.进程切换:在某一时刻,一运行的进程被迫中断,让出CPU给指定进程。一般在进行进程上下文切换时,不保留被切换的进程上下文的正文,但保留进程执行时所使用的寄存器。 程序执行过程 程序执行过程 程序执行过程中的问题 ①②不存在资源竞争,只存在CPU调度 ③④⑤多个进程相互依赖、彼此竞争资源,既存在CPU调度,又存在同步协调,从而引入并发控制。 并发控制的实施 策略:临界资源与临界区 机制:标志、信号量 方法:加锁、P、V原语 实现:互斥和同步 进程互斥(1) 临界资源:一次仅允许一个进程使用的共享资源。每次只准许一个进程进入临界区,进入后不允许其他进程进入。对于临界资源,多个进程必须互斥地对它进行访问。 临界区:每个进程中访问临界资源的那段代码。 临界区是由属于不同并发进程的程序段共享公用数据或公用数据变量而引起的。 间接制约:由共享公有资源而造成的对并发进程执行速度的间接制约。即把这种由于共享某一公有资源而引起的在临界区内不允许并发进程交叉执行的现象。 进程互斥(2) 互斥:一组并发进程中的一个或多个程序段,因共享某一公有资源而导致它们必须以一个不允许交叉执行的单位执行。也就是说,不允许两个以上的共享该资源的并发进程同时进入临界区称为互斥。 进程互斥:一个进程正在访问临界资源,另一个要访问该资源的进程必须等待。当占用临界资源的进程退出临界区,才允许另一进程区访问此临界资源。 为了禁止两个进程同时进入临界区,需采用一定的方法来协调它们。无论方法是什么都应遵循下述准则: 空闲让出 忙则等待 让权等待 有限等待 进程互斥(3) 互斥的加锁实现 对临界区加锁以实现互斥:当某个进程进入临界区之后,它将锁上临界区,直到它退出临界区时为止。并发进程在申请进入临界区时,首先测试该临界区是否是上锁的。如果该临界区已被锁住,则该进程要等到该临界区开锁之后才有可能获得临界区。 进程互斥(4) 设临界区的类名为S。为了保证每一次临界区中只能有一个程序段被执行,又设锁定位 key[S] 。key[S]表示该锁定位属于类名为S的临界区。加锁后的临界区程序描述如下: lock(key [S]) 〈临 界 区〉 unlock(key [S]) 设key [S]=1时表示类名为S的临界区可用,key [S]=0时表示类名为S的临界区不可用。 进程互斥(5) 一种简便的实现方法是: lock (x)=begin local v repeat v←x untilv=1 x←0 end 因为当同时有几个进程调用lock(key [S])时,在x←0语句执行之前,可能已有两个以上的多个进程由于key [S]=1而进入临界区。为解决这个问题有些机器在硬件中设置了“测试与设置指令,保证第一步和第二步执行不可分离。 注意:在系统实现时锁定位key [S]总是设置在公有资源所对应的数据结构中的。 进程互斥(6) 试考虑以下进程PA和PB反复使用临界区的情况: PA A:lock(key[S]) 〈

文档评论(0)

131****9010 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档