- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第02章 处理机管理
;2.1 多道程序设计 ;t;t;由图 2.1 可知多道下内存和处理机利用率得到显著提高。问题是内存存放程序数量是否越多越好呢?否定的!
内存的容量限制了系统可同时处理程序的数目。
物理设备的数量也是一个制约条件,如果内存中可同时运行的程序过多,这些程序之间可能会因为相互等待被其它程序占用的设备资源(如I/O设备),反而可能会影响系统效率。
程序道数过多对处理机的竞争更加激烈,可能会产生两个不利后果:;; 2.2.1 前驱图和程序执行; 2.2.1 前驱图和程序执行;假定用 I、 C和 P分别表示输入、计算和输出操作(也可以为语句),可以有图 2.3 的前驱图。 ;考虑时间上关系,可有下面示例,如图 2.4 所示。;程序顺序执行具有如下 3 个特点: ; 多道程序系统中程序执行环境的变化 ;对于图 2.4,对于任意程序,存在着 Ii→Ci→Pi 这样的前驱关系,因而对一个用户程序的输入、计算和打印这三个操作,必须顺序执行,;但在多道环境下,并不存在,或并不要求Pi→Ii+1 关系,即Ii 、 Cj 和 Pk(i≠j≠k)之间并不存在前驱关系,因而在对一批程序处理时,可使它们并发执行。这就产生了并发操作,见图 2.5 ; ; 程序内保持 Ii→Ci→Pi 程序逻辑顺序性。 ;应当说明,抛开典型的I、C、P关系,一个程序内部语句之间在并发环境下依然有并发执行的情况,如4条语句构成的程序段:
程序内部各程序段间是否具备并发执行是由它们之间依赖关系所决定。关于程序并行性挖掘属于并行研究课题。 ; 程序的并发执行 ; 在时间上来表示,并发执行是一个程序的开始是在另一个程序结束之前。如图2.7 表示: ; 间断性;程序在并发执行时,由于它们共享资源或为完成某一项任务而合作,致使在并发程序之间存在相互制约的关系。; 失去封闭性;程序在并发执行时,是多个程序共享系统中的各种资源,因而这些资源的状态将由多个程序来改变,致使程序的运行失去了封闭性。当处理机资源被其它程序占用时,有条件运行的任何程序都必须等待。 ;例1:两个程序A和B共享一个变量 N (当前值为 n)。 ;例1:两个程序A和B共享一个变量 N (当前值为 n)。 ;例2:假定一个航班售票系统运行在一个多终端分时系统上共享主机系统数据(库)资源,并在一个城市有两个终端售票机B1,B2,任意航班的座位按顺序预定,简单座位形式如图2.8所示;其中黑色部分表示已售,空白部分为未售。设定有n排,每排m个座位(n,m≥1),又假定座位按顺序预定。两个终端售票机B1、B2有下面虚线框的公共数据(库)与相同的预定程序; ;; 前面例子说明:在某些情况下,程序的并发执行使得执行结果不再具有封闭性和可再现性,且可能造成出现错误(执行结果受执行速度影响的结果,称为与时间有关的错误)。
为使并发程序执行时不出现与时间有关的错误,必须采取某些措施来制约、控制各并发程序段执行速度。
这样就有了下面的问题: ;;;如果对于语句 S1 和 S2,有
① R(S1)∩ W(S2)={ },即S1读变量不是S2 修改的变量。
② W(S1)∩ R(S2)={ },即S2读变量不是S1 修改的变量。
③ W(S1)∩ W(S2)={ },即双方都不修改相同的变量。
如有语句 c=a-b 和w =c+1,其 “读集”和“写集”分别为:
R(c=a-b)={ a,b };W(c=a-b)={ c }
R(w=c+1)={ c } ;W(w=c+1)={ w }
R(c=a-b)∩W(w=c+1)={ }
R(w=c+1)∩W(c=a-b)={ c }
所以:两条语句不能并发执行。 ; 如果并发执行的各程序段中语句或指令满足上述Bernstein 的三个条件(同时成立),则认为并发执行不会对执行结果的封闭性和可再现性产生影响(证明略)。但在一般情况下,这个条件对于软件设计(模块化)过于苛刻,系统要判定并发执行的各程序段是否满足Bernstein 条件是相当困难的。从而,如果并发执行的程序段不按照特定的规则和方法进行资源共享和竞争,则其执行结果将不可避免地失去封闭性和可再现性。;;2.2 进程的概念 ;;;进程和程序既有联系又有区别,主要区别如下: ;;;;2.3 进程控制块和状态转换 ;在进程并发执行时,由于资源共享,带来各进程之间的相互制约。为了反映这些制约关系和资源共享关系,在创建一个进程时,应首先创建其 PCB,然后才能根据PCB 中信息对进程实施有效的管理和控制。当一个进程完成其功能之后,系统则释放PCB,进程也随之消亡。 ;图2.10 进程控制块信息;图2
文档评论(0)