第二章 进程管理汇编
- 格式:doc
- 大小:497.00 KB
- 文档页数:36
2.1.1程序的顺序执行及特征
1. 基本概念
程序:一个在时间上按严格次序、顺序执行的操作序列。
程序的顺序执行:一个具有独立功能的程序独占处理机,直至得到最终结果的过程 。
操作:数据处理的一种规则,一经启动就需要在有限时间内完成 。
计算:若干操作严格顺序执行的集合 。
2.程序的顺序执行
在计算机系统中只有一个程序在运行,这个程序独占系统中所有资源,其执行不受外界影响。通常一个程序可分成若干个程序段,它们必须按照某种先后次序执行,仅当前一操作执行后,才能执行后继操作。
例如:进行计算。I:输入操作 C:计算操作 P:打印操作。在进行计算时,总是先输入用户的程序和数据,然后进行计算,最后将结果打印出来。
3.语句的顺序执行
S1:a:=x+y
S2:b:=a-5
S3:c:=b+1
如下图,语句S2必须在a被赋值后才能执行;S3也只能在b被赋值后才能执行。
4.程序的顺序执行的特征
顺序性:一个程序的各个部分的执行,严格地按照某种先后次序执行;
封闭性:程序在封闭的环境下运行,即程序运行时独占全部系统资源;
可再现性:只要程序执行时的环境和初始条件相同,当程序重复执行时,不论它是从头到尾不停顿地执行,还是“停停走走”地执行,都将获得相同的结果。
程序顺序执行的特性,为程序员检测和校正程序的错误带来很大方便。
2.1.2.前趋图
为了描述一个程序的各部分( 程序段或语句) 间的依赖关系,或者是一个大的计算的各个子任务间的因果关系 ,我们常常采用前趋图方式。
前趋图(续)
P1为初始结点,P9为终止结点每个结点还具有一个重量。
该前趋图,存在下面的前趋关系: P1→P2,P1→P3,P1→P4,P2→P5,P3→P5,P4→P6,P4→P7,P5→P8,P6→P8,P7→P9,P8→P9;或表示为:
P={P1,P2,P3,P4,P5,P6,P7,P8,P9}
={(P1,P2),(P1,P3),(P1,P4),
(P2,P5),(P3,P5),(P4,P6),
(P4,P7),(P5,P8),(P6,P8),
(P7,P9),(P8,P9)}
前趋图(续)
前趋图中的每个结点可以表示一条语句、一个程序段或进程,结点间的有向边表示两个结点之间存在的偏序(Partial_Order)或前趋关系(Precedence_Relation)“→”={(Pi,Pj)|在Pj开始前Pi必须完成}如果(Pi,Pj)∈→,可写成Pi→Pj,Pi是Pj的直接前趋,Pj是Pi的直接后继。前趋图中必须不存在循环,如下图不是前趋图。
2.1.3 程序并发执行及特征
1.并发环境:
在一定时间内物理机器上有两个或两个以上的程序同处于开始运行但尚未结束的状态,并且次序不是事先确定的
2. 程序的并发执行
在对一批程序进行处理时,可以并发执行。
例如,输入、计算、打印三个程序对一批作业进行处理时,存在以下的前趋关系:
Ii→Ci,Ii→Ii+1,Ci→Pi,Ci→Ci+1,Pi→Pi+1
3.程序的并发执行的特征
间断性:程序并发执行时,由于它们共享资源或程序之间相互合作完成一项共同任务,因而使程序之间相互制约。
失去封闭性:多个程序共享资源,则其状态受多个程序改变。
不可再现性:由于程序的并发执行,打破了由另一程序独占系统资源的封闭性,因而破坏了可再现性。
3.程序的并发执行的特征
程序执行是为了对输入信息进行处理,并得到相应的处理结果。为此,程序在并发执行时必须保持封闭性和可再现性。
由于并发执行失去封闭性的原因是共享资源的影响,因此现在的工作就是去掉这种影响。
3.程序的并发执行的特征
1966年,Bernstein给出了程序并发执行的条件。注意:他所给出的条件并没有考虑执行速度的影响。假设程序P(i)所访问的共享变量的读集和写集分别为R(i)和W(i),则任意两个程序P(i)和P(j)可以并发执行的条件有以下三条:
① R(S1)∩ W(S2)={∮}
② W(S1)∩ R(S2)={∮}
③ W(S1)∩ W(S2)={∮}
3.程序的并发执行的特征
只要同时满足三个条件,并发执行的程序就可保持封闭性和可再现性。但这并没有解决所有问题,在实际的程序执行过程中很难对这三个条件进行检查。
下面我们讨论如何通过操作系统的有效管理来保证并发执行程序的封闭性和可再现性。
2.1.4 进程的特征与状态
2.进程的特征
动态性:进程的实质是程序的一次执行过程,
进程是动态产生,动态消亡的,进程在其生命周期内,在三种基本状态之间转换
并发性:任何进程都可以同其他进程一起向前推进
独立性:进程是一个能独立运行的基本单位,同时也是系统分配资源和调度的独立单位;
异步性:由于进程间的相互制约,使进程具有执行的间断性,即进程按各自独立的、不可预知的速度向前推进
结构特征:为了控制和管理进程,系统为每个进程设立一个进程控制块- PCB。
3.进程的概念
进程与程序的区别 程序是静态的,进程是动态的;
进程更能真实地描述并发,而程序不能;
进程有生命周期,有诞生有消亡,短暂的;而程序是相对长久的;
程序可作为软件资源长期保存,进程只是一次执行过程,是暂时的;
进程是系统分配调度的独立单位,能与其他进程并发执行;
进程可创建其他进程,而程序并不能形成新的程序。
2 进程3种状态
当进程已分配到除CPU以外的所有必要资源时,它便处于就绪状态,一旦获得CPU,便立即执行。
已获得CPU的进程进入执行状态。
正在执行的进程,由于发生某个事件而暂时无法执行时,便放弃处理机而进入阻塞状态。
由于执行的进程变为阻塞状态后,调度程序立即把处理机分配给另一个就绪进程;因此,阻塞进程的事件消失后,进程不会立即恢复到执行状态,而转变为就绪状态,重新等待处理机。
进程状态转换条件
在进程运行过程中,由于自身进展情况及外界环境的变化,这三种基本状态可以依据一定的条件相互转换:
就绪 --> 运行
调度程序选择一个新的进程运行
运行 --> 就绪
运行进程用完了时间片
运行进程被中断,因为一高优先级进程处于就绪状态
进程状态转换条件
运行 --> 阻塞
当一进程因发生某事件,使进程的执行受阻,必须等待时
OS尚未完成服务
对一资源的访问尚不能进行
I/O 请求
等待某一进程提供输入 (IPC)
等待 --> 就绪
当所等待的事件发生时
挂起状态
创建状态 终止状态
挂起状态
挂起(suspend):把一个进程从内存转到外存
引入挂起状态的原因:
终端用户的请求
使正在执行的进程暂停
使处于就绪状态的进程暂不接受调度
父进程的请求
负荷调节
操作系统的需要
挂起状态
在挂起进程模型中增加了就绪挂起和阻塞挂起两个状态。这时,原来的就绪状态和阻塞状态的意义也发生了一些变化。
1)就绪状态(ready):进程在内存且可立即进入运行状态。
2)阻塞状态(blocked):进程在内存并等待某事件的出现。
3)阻塞挂起状态(blocked,suspend):进程在外存并等待某事件的出现。
4)就绪挂起状态(ready,suspend):进程在外存,但只要进入内存,即可运行。
挂起状态
挂起可能有以下几种情况:
·阻塞到阻塞挂起:没有进程处于就绪状态或就绪进程要求更多内存资源时,会进行这种转换,以提交新进程或运行就绪进程。
·就绪到就绪挂起:当有高优先级阻塞(系统认为会很快就绪的)进程和低优先级就绪进程时,系统会选择挂起低优先级就绪进程。
·运行到就绪挂起:对抢先式分时系统,当有高优先级阻塞挂起进程因事件出现而进入就绪挂起时,系统可能会把运行进程转到就绪挂起状态。
阻塞挂起到就绪挂起:针对外存进程的事件出现。
创建( 新new)状态
OS 已完成为创建一进程所必要的工作
已构造了进程标识符 已创建了管理进程所需的表格
但还没有完成创建工作,进程未转入就绪状态
因为资源有限,一般是指进程还未进入内存
终止(退出exit)状态
终止后进程移入该状态
它不能再执行
表格和其它信息暂时由辅助程序保留
当数据不再需要后,进程(和它的表格)被删除
具有挂起操作的进程状态转换图
五状态进程模型
准备退出:父进程可中止子进程
七状态进程模型 执行
活动就绪 静止就绪
活动阻塞 静止阻塞 请求I/O
释放
激活
挂起 激活
挂起
释放 调度 挂起
新状态转换
阻塞 -->阻塞挂起
当所有进程都阻塞,OS会安排空间让一就绪进程进入内存
阻塞挂起 --> 就绪挂起
当等待的事件发生时 (状态信息已在OS中)
就绪挂起-->就绪
当内存中没有就绪进程时
就绪-->就绪挂起 (较少见)
当没有被阻塞的进程,而为了性能上的考虑,必须释放一些内存时
2.1.5 进程控制块(PCB)
系统为了管理进程设置的一个专门的数据结构,存放了用于描述该进程情况和控制进程运行所需的全部信息。
系统利用PCB来控制和管理进程,所以PCB是系统感知进程存在的唯一标志
进程与PCB是一一对应的
PCB应常驻内存
进程控制块的内容
进程标识符:内部标识、外部标识