操作系统 第3章讲解.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
操作系统 第3章讲解

第3章 进程管理;3.1 进程的概念 现代操作系统的重要特点: 程序的并发执行、资源共享、用户随机地使用。 1.程序的顺序执行 程序的顺序执行:程序独占处理机直至最终结束的过程。 程序的顺序执行具有如下特点: (1) 顺序性 程序顺序执行时,其执行过程可看作一系列严格按程序规定的状态转移过程。 (2) 封闭性 程序执行得到的最终结果由给定的初始条件决定,不受外界因素的影响。;(3) 可再现性 只要输入的初始条件相同,则无论何时重复执行该程序都会得到相同的结果。 2. 多道程序系统中程序执行环境的变化 多道程序执行的系统环境具有下述三个特点: (1) 独立性 每道程序都是逻辑上独立的,它们之间不存在逻辑上的制约关系。 (2) 随机性 在多道程序环境下,特别是在多用户环境下,程序和数据的输入与执行开始时间都是随机的。 (3) 资源共享 资源共享将导???对进程执行速度的制约。;3. 程序的并发执行 (1) 什么是程序的并发执行 并发执行:即一道程序的执行尚未结束;另一道程序的执行已经开始的执行方式。是为了增强计算机系统的处理能力和提高资源利用率所采取的一种同时操作技术。程序的并发执行可进一步分为两种:第一种是多道程序系统的程序执行环境变化所引起的多道程序的并发执行。微观上仍是顺序执行,尽管多道程序的并发执行在宏观上是同时进行的。第二种并发执行是在某道程序的几个程序段中(例如几个程序),包含着一部分可以同时执行或顺序颠倒执行的代码。例如语句:; read (a) ; read (b) ; 它们既可以同时执行,也可颠倒次序执行。对于这样的语句,同时执行不会改变顺序程序所具有的逻辑性质。因此,可以采用并发执行来充分利用系统资源以提高计算机的处理能力。 程序的并发执行可总结为:一组在逻辑上互相独立的程序或程序段在执行过程中,其执行时间在客观上互相重叠,即一个程序段的执行尚未结束,另一个程序段的执行已经开始的这种执行方式。 程序的并发执行不同于程序的并行执行。程序的并行执行是指一组程序按独立的、异步的速度执行。并行执行不等于时间上的重叠。可以将并发执行过程描述为:; S0 Cobegin P1;P2;... Pn Coend Sn 这里,S0,Sn分别表示并发程序段P1,P2,…,Pn开始执行前和并发执行结束后的语句。P1,2,…,Pn也可以由同一程序段中的不同语句组成。1966年Bernstein 提出了两相邻语句S1,S2可以并发执行的条件: 将程序中任一语句Si划分为两个变量的集合R(Si)和W(Si)。其中R(Si)={a1 a2 … am},aj(j=1,…,m) 是语句Si在执行期间必须对其进行读操作的变量;; W(Si)={b1 b2 … bn},bj(j=1,…,n) 是语句Si在执行期间必须对其进行写操作的变量; 如果对于两相邻语句S1和S2,有 ① R(S1)∩ W(S2)={∮}, ② W(S1)∩ R(S2)={∮}, ③ W(S1)∩ W(S2)={∮} 同时成立,则语句S1和S2是可以并发执行的。 ;多道执行与单道执行有何优点:;多道环境下:总的运行时间5t,输入设备占用3t,输出设备占用3t。 C P U 利用率=3t/5t=3/5=60% 输入设备利用率=3t/5t=3/5=60% 输出设备利用率=3t/5t=3/5=60%;(2) 程序的并发执行所带来的影响 程序的并发执行充分地利用了系统资源,从而提高了系统的处理能力,这是并发执行好的一方面。但是,正如前面所提到的那样,由于系统资源有限,程序的并发执行必然导致资源共享和资源竞争,从而改变程序的执行速度。如果并发执行的各程序段中语句或指令满足上述Bernstein 的三个条件,则认为并发执行不会对执行结果的封闭性和可再现性产生影响。但在一般情况下,系统要判定并发执行的各程序段是否满足Bernstein 条件是相当困难的。从而,如果并发执行的程序段不按照特定的规则和方法进行资源共享和竞争,则其执行结果将不可避免地失去封闭性和可再现性。下面的例子说明了这一点。;堆栈的取数和存数过程图;例:设有堆栈S,栈指针top,栈中存放内存中相应数据块地址(如图3.1(a))设有两个程序段getaddr(top)和reladdr(blk),其中getaddr(top)从给定的top所指栈中取出相应的内存数据块地址,而reladdr(blk)则将内存数据块地址blk放入堆栈S中。getaddr(top)和reladdr(blk)可分别描述为: procedure getaddr(top) begin local r r ←(top) top ← top-1 return(r) end p

文档评论(0)

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

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

1亿VIP精品文档

相关文档