操作系统 教学课件 作者 宗大华 宗涛 第二章.pptVIP

操作系统 教学课件 作者 宗大华 宗涛 第二章.ppt

  1. 1、本文档共77页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第2章 处理机管理 计算机系统中,最宝贵的资源是CPU。为了提高它的利用率,需要引入多道程序设计的概念。当内存储器中同时有多个程序存在时,如果不对人们熟悉的“程序”概念加以扩充,就无法刻画多个程序共同运行时系统呈现出的特征。因此,在本章将给出操作系统中的重要概念:“进程”。它将是在多道程序运行环境下,系统资源分配和独立运行的基本单位。本章着重讲述四个方面的内容: (1)进程概念的引入; (2)进程的组成与管理; (3)处理机的调度算法; (4)处理机的二级调度与作业管理。 2.1 进 程 2.2 进程控制块 2.3 进程的调度与管理 2.4 作业调度 2.1 进 程 2.1.1 多道程序设计 所谓“程序”,是一个在时间上严格有序的指令集合。程序规定了完成某一任务时,计算机所需做的各种操作,以及这些操作的执行顺序。在没有引入多道程序设计的概念之前,只要一提到程序,就表明它独占使用系统中的一切资源,如处理机(指它里面的指令计数器、累加器、各种寄存器等)、内存储器、外部设备以及软件等,没有其他竞争者与它争夺与共享。 在单道程序设计环境下,系统具有如下特点: (1)资源的独占性:任何时候,位于内存中的程序可以使用系统中的一切资源,不可能有其他程序与之竞争。 (2)执行的顺序性:由于内存中每次只有一个程序,因此各个程序是按次序执行的,即做完一个以后,再做下一个。绝对不可能出现在一个程序运行过程中,又夹杂进另一个程序执行的现象存在。图2-1(a)对程序执行的顺序性做出了解释。假定有三个程序,每个程序都是前后占用CPU执行一段时间,中间要求打印输出。具体是:程序A所需时间为(4,2,3),程序B所需时间为(5,4,2),程序C所需时间为(3,3,4)。不难看出,总共需要30个时间单位,才能把它们执行完毕。从横坐标上看,在时间区间(4~6)、(14~18)以及(23~26)中,CPU为了等待打印结束,在那里空闲等待。 (3)结果的再现性:只要执行环境和初始条件相同,重复执行一个程序,获得的结果总是一样的。 在多道程序设计环境下,内存中允许有多个程序存在,它们轮流地使用着CPU。这时,上述的三个特点就都荡然无存了。 “资源的独占性”被打破了。比如,内存不再只由一个程序占用,而是被分配给若干个程序使用;又比如,原来内存中的程序进行输入/输出时,CPU就只能空转,以等待输入/输出操作的完成。现在,当程序A等待输入/输出操作完成时,就可以把CPU分配给内存中的另一个可运行的程序B去使用。这样,CPU在运行程序B,外部设备在为程序A服务。图2-1(b)中的时间区间(4~6)正好是这种情况。 “执行的顺序性”被打破了。从图2-1(b)中可以看出,时刻6程序A打印完毕,按说应该继续执行,但是CPU已经分配给了程序B,因此程序A只能等到时刻9在程序B请求打印时,才能重新获得CPU。这就是说,在程序A执行过程时,夹杂进了程序B的执行,打破了程序执行的顺序性,内存中多个程序的执行过程被交织在一起。从宏观上看,好几个程序都在运行着(比如,在时间区间4~12,程序A和程序B都在做着自己的事情;在时间区间12~17,程序B和程序C都在做着自己的事情);而从微观上看,每个时刻CPU只能为一个程序服务,因此运行着的程序都是走走停停。总之,在多道程序设计环境下,各个程序的执行已经不再可能完全依照自己的执行次序执行了。 “结果的再现性”被打破了。举例来说,为了了解某单行道的交通流量,在路口安放一个监视器,功能是有车通过该路段时,就向计算机发送一个信号。为计算机系统设计两个程序:程序A的功能是接收到监视器的信号时,就在计数单元COUNT上加1;程序B的功能是每隔半小时,将计数单元COUNT的值打印输出,然后清零。COUNT初始时为0,两个程序的描述如图2-2所示。 因为现在是多道程序设计环境,程序A和程序B同时在内存。当然,内存中可能还会有其他的程序存在。由于执行的顺序性被打破了,这些程序的执行过程被交织在一起,没有任何规律可循。为了突出,单单挑出程序A和程序B来研究。在它们之间,不排除会有这样的执行顺序发生:A1?A2?B1?B2?A1?A2?B3,即在程序B做了B1和B2后,没有直接执行B3,而是中间插入了程序A的两个操作,这就出现了问题。 假定系统在发生这一执行顺序前,情况一直正常,计数器COUNT里的值是9。现在由A1收到监视器发来的第10辆车通过的信息。于是由A2在COUNT上完成加1的操作,使得计数器COUNT取值为10。紧接着在B1延迟半小时后,由B2将COUNT中的10打印输出。这时又做A1,它此时收到的是第11辆车到达的信息,通过A2,COUNT里成为11。这时做B3,把COUNT清零

您可能关注的文档

文档评论(0)

开心农场 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档