- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
操作系统(第3章)
第3章 进程与进程管理 3.1 进程的引入 3.2 进程 3.3 进程调度 3.4 线程的基本概念 3.5 Linux的进程与进程管理 3.1 进程的引入 3.1.1 前趋图的定义 前趋图(Procedence Graph)是一个有向无循环图(DAG)。图中的每个结点可用于表示一条语句、一个程序段或进程;结点间的有向边则表示在两结点之间存在的偏序或前趋关系“→”,→={(Pi,Pj)| Pi必须在Pj开始前完成}。 Pi → Pj : Pi是Pj的前趋, Pj是Pi的直接后继。 在前趋图中,没有前趋的结点称为初始结点,没有后继的结点称为终止结点。 每个结点还具有一个权重,它可用该结点所含的程序量或结点的执行时间来计量。 3.1 进程的引入 (a) (b) 前趋图中必须不存在循环。图(b)中有着下面的前趋关系:P1 →P3, P3 →P5, P5 →P4, P4 →P1。这种前趋关系是不可能满足的。 3.1 进程的引入 3.1.2 程序顺序执行 定义 程序在执行时,必须按照某种先后次序逐个执行,仅当前一操作执行完后,才能执行后继操作。 例:程序段的执行(I:输入操作,C:计算操作,P:打印操作) 例:一个程序段中的多条语句 S1:a=x+y; S2:b=a-1; S2必须在a被赋值后才能执行 S3:c=b+8; S3也只能在b被赋值后才能执行 3.1 进程的引入 程序顺序执行的特征 程序执行的顺序性 处理机的操作严格按程序规定的顺序执行,即只有前一操作结束后才能执行后继操作 程序执行的封闭性 程序一旦开始运行,其执行结果不受外界因素的影响 程序执行结果的确定性 程序执行的结果与它的执行速度、时间无关 程序结果的可再现性 程序执行时的环境和初始条件相同,当程序多次重复 执行时,都将获得相同的结果 3.1 进程的引入 3.1.3 程序并发执行 定义 在上图中的输入程序、计算程序和打印程序三者之间,存在着Ii→Ci→Pi这样的前趋关系,以致对一个作业的输入、计算和打印三个操作必须顺序执行,但并不存在Pi→Ii+1关系,因而在对一批程序进行处理时,可使它们并发执行。 3.1 进程的引入 上图存在的前趋关系: Ii →Ci, Ii →Ii+1, Ci →Pi, Ci →Ci+1, Pi →Pi+1 Ii+1和Ci及Pi-1是重叠的,亦即Pi-1和Ci以及Ii+1可以并发执行。 3.1 进程的引入 程序并发执行特征 程序执行的间断性 程序执行的相互制约将导致并发程序具有“执行—暂停执行—执行”这种间断性的活动规律 例如:上图中,当计算程序完成Ci-1的计算后,如果输入程序I尚未完成Ii的处理,则计算程序就无法进行Ci处理,致使计算程序暂停运行。 程序执行失去封闭性 因多个程序共享系统中的资源,所以某程序在执行时必然会受到其他程序的影响 3.1 进程的引入 程序执行结果的不可再现性 由于失去了封闭性,也将导致失去其可再现性。 例如: 有两个循环程序A和B,它们共享一个变量n。 程序A每执行一次时,都要做n++操作; 程序B每执行一次时,都要执行coutn操作,然后再将n置为0。 可能出现以下3种情况(假定某时刻变量n的值为c): ① n++在coutn和n=0之前,此时得到的n值分别为c+1,c+1,0。 ② n++在coutn和n=0之后,此时得到的n值分别为c,0,1。 ③ n++在coutn和n=0之间,此时得到的n值分别为c,c+1,0。 3.1 进程的引入 程序和计算不再一一对应 程序和计算是两个不同的概念。“程序”是指令的有序集合,是静态的概念;“计算”是指令序列在处理机上的执行过程和处理机按照程序的规定执行操作的过程,是动态的概念。 在程序并发执行中一个共享程序可对应多个“计算”,程序与“计算”已不再一一对应。 例如:在分时系统中,一个编译程序副本同时为几个用户作业编译时,该编译程序便对应了几个“计算”。 3.1 进程的引入 3.1.4 多道程序设计 定义 在采用多道程序设计的计算机系统中,允许多个程序同时进入一个计算机
文档评论(0)