计算机操作系统(第四版)第二章进程的概念教学课件_第1页
计算机操作系统(第四版)第二章进程的概念教学课件_第2页
计算机操作系统(第四版)第二章进程的概念教学课件_第3页
计算机操作系统(第四版)第二章进程的概念教学课件_第4页
计算机操作系统(第四版)第二章进程的概念教学课件_第5页
已阅读5页,还剩66页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 4 1.程序的顺序执行程序的顺序执行 一个复杂的程序一般均含一个复杂的程序一般均含若干个程序段若干个程序段,并按,并按一定先一定先 后顺序执行后顺序执行,每个操作必须在下一个操作开始之前结束。,每个操作必须在下一个操作开始之前结束。 也即仅当前一个操作结束之后,后继操作才开始执行,此也即仅当前一个操作结束之后,后继操作才开始执行,此 即即程序的顺序执行性。程序的顺序执行性。 例如一般程序包括输入例如一般程序包括输入(I)、计算、计算(C)、输出、输出(P)三部分,而三部分,而 计算计算须在须在输入输入完成方可开始。完成方可开始。 进程概念的引入-程序的顺序执行和并发执行 5 2.程序顺序执行

2、时的特征程序顺序执行时的特征 1) 顺序性:顺序性: 处理机的操作处理机的操作是严格是严格按照程序所规定的顺序按照程序所规定的顺序 执行的,每一操作开始都不得先于前一操作执行的,每一操作开始都不得先于前一操作 的结束。的结束。 2) 封闭性:封闭性:程序一旦开始执行,其执行结果程序一旦开始执行,其执行结果不受外界因不受外界因 素影响素影响。 3) 确定性、可再现性:确定性、可再现性:程序重复执行将获得相同结果。程序重复执行将获得相同结果。 l程序的顺序执行:一个具有独立功能的程序独占处理机直 至得到最终结果的过程称为程序的顺序执行。 S1: a:=x+y; S2: b:=a-5;/s2必须是s

3、1执行后再执行 S3: c:=b+1;/s3必须是s2执行后再执行 lS1 、S2、 S3必须按照顺序依次执行。 优点:有利于程序的编制和调试; 缺点:资源的独占性,使得系统利用率很低。 6 说明说明 l顺序执行是顺序执行是单道批处理系统单道批处理系统的执行方式的执行方式 l在单道程序工作环境中,我们把一个在单道程序工作环境中,我们把一个“程序程序”理解理解 为为“一个在时间上按严格次序前后相继的操作序列一个在时间上按严格次序前后相继的操作序列” l由于各类软件的出现及日益复杂化,使得程序设计由于各类软件的出现及日益复杂化,使得程序设计 的概念和方法有了很大的发展的概念和方法有了很大的发展 7

4、 前趋图前趋图 l前趋图是一个有向无循环图,记为DAG (Drected Acyclic Graph),前趋图用来描述程序各部分间的依赖 关系或一个大的计算各子部之间的因果关系。 l前趋图中的元素: u 结 点:表示一个语句、程序段、进程; u 有向边: 表示结点间的偏序关系(前趋关系) l =(Pi , Pj)|Pi must complete before Pj may start l 若(Pi , Pj) ,可写成 Pi Pj,称 Pi是 Pj的直接前 趋,而 Pj是Pi的直接后继。 8 前趋图示例前趋图示例 P2 P3 P1 P6 P7 P4 P5 前趋关系前趋关系 在前趋图中,把没有

5、前趋 的结点称为初始结点(Initial Node),把没有后继的结 点称为终止结点(Final Node)。每个结点还具有 一个重量(Weight),用于 表示该结点所含有的程序 量或结点的执行时间。 前趋图中能否有循环存在?前趋图中能否有循环存在? 9 具有循环的图具有循环的图 S1S2S3 S2 must complete before S3 may start S3S2 S3 must complete before S2 may start 10 例:下述四条语句的程序段画出前趋图例:下述四条语句的程序段画出前趋图 S1: a:x+2 S2: b:y4 S3: c:ab S4: d:

6、c6 S1 S2 S4S3 11 程序的并发执行及其特征程序的并发执行及其特征 1.程序的并发执行程序的并发执行 一组一组逻辑上相互独立逻辑上相互独立的程序或程序段在执行过程中,的程序或程序段在执行过程中, 其其执行时间执行时间在客观上在客观上相互重叠相互重叠,即一个程序段的执行,尚,即一个程序段的执行,尚 未结束,另一个程序段的执行已经开始的这种执行方式。未结束,另一个程序段的执行已经开始的这种执行方式。 程序的并发执行可分为两种程序的并发执行可分为两种: : (1) (1) 在计算机系统支持并行操作时,如采用多道程序在计算机系统支持并行操作时,如采用多道程序 设计技术,则内存中多道程序处于

7、并发执行状态。设计技术,则内存中多道程序处于并发执行状态。 12 2.1.2程序间并发执行程序间并发执行 I1 P3 t1t2t3t4t5 I2 C1 I3 C2 P1 C3 P2 13 程序的并发执行及其特征程序的并发执行及其特征 (2) (2) 并发执行是在某道程序的几个程序段中包含着一部分并发执行是在某道程序的几个程序段中包含着一部分 可以同时执行或顺序颠倒执行的代码可以同时执行或顺序颠倒执行的代码. . 如如: read(a); read(b);: read(a); read(b); 可以同时执行可以同时执行, ,也可颠倒次序执行。对于这样的语句也可颠倒次序执行。对于这样的语句, ,

8、同时执行不会改变顺序程序所具有的逻辑性质同时执行不会改变顺序程序所具有的逻辑性质. . 总结总结: :一组在逻辑上互相独立的程序或程序段在执行过程一组在逻辑上互相独立的程序或程序段在执行过程 中其执行时间在客观上互相重叠中其执行时间在客观上互相重叠, ,即一个程序的执行尚即一个程序的执行尚 未结束未结束, ,另一个程序的执行已经开始的执行方式另一个程序的执行已经开始的执行方式. . 14 2.程序并发执行时的特征程序并发执行时的特征 1) 1) 间断性间断性: :程序在并发执行时,由于它们程序在并发执行时,由于它们共享资源共享资源或为完或为完 成某一项任务而合作,致使成某一项任务而合作,致使在

9、并发程序之间存在相互制约在并发程序之间存在相互制约 的关系。的关系。 2) 2) 失去封闭性失去封闭性: :程序在并发执行时,是多个程序共享系统程序在并发执行时,是多个程序共享系统 中的各种资源,因而中的各种资源,因而这些资源的状态这些资源的状态将由将由多个程序来改变多个程序来改变, 致使程序的运行失去了封闭性。致使程序的运行失去了封闭性。 3) 3) 不可再现性不可再现性: : 程序在并发执行时,由于失去了封闭性,程序在并发执行时,由于失去了封闭性, 也导致失去了可再现性。也导致失去了可再现性。 15 例如:有两个循环程序例如:有两个循环程序A A和和B B,它们共享一个变量,它们共享一个变

10、量N N。程序。程序A A 每执行一次时都要做每执行一次时都要做N N:N N1 1操作;程序操作;程序B B每执行一次时,每执行一次时, 都要做都要做printprint(N N)操作,然后再操作,然后再将将N N置成置成“0 0”,程序,程序A A和和B B以不以不 同的速度运行。(假定某时刻变量同的速度运行。(假定某时刻变量N N的值为的值为n n) (1 1)N N:N N1 1在在printprint(N N)和)和N N:0 0之前,此时得到的之前,此时得到的N N值值 分别为:分别为: n n1 1, n n1 1, 0 0 (2 2)N N:N N1 1在在printprint

11、(N N)和)和N N:0 0之后,此时得到的之后,此时得到的N N值值 分别为:分别为: n n, 0 0, 1 1 (3 3)N N:N N1 1在在 printprint(N N)和)和N N:0 0之间,此时得到的之间,此时得到的N N 值分别为:值分别为: n n, n n1 1, 0 0 16 例:观察者例:观察者/ /报告者报告者 观察者:观察者: 报告者:报告者: begin begin repeat repeat wait a car go through delay a time N=N+1; Print N ; N=0 ; until until end end 初始初始

12、N=n时不同执行序列:时不同执行序列: N=N+1; Print N; Print N ; Print N ; N=0 ; N=N+1 ; N=0 ; N=N+1 ; N=0 ; 结果各不相同结果各不相同: : 打印打印n+1n+1,N=0N=0; 打印打印n n,N=1N=1;打印;打印n n ,N=0N=0; 17 l程序的并发执行程序的并发执行:人们在硬件上引入了:人们在硬件上引入了通道通道和和中断中断 技术,使得技术,使得处理器和外部设备处理器和外部设备、外部设备外部设备和和外部设外部设 备备之间可以并行工作。从而使系统的多个程序同时之间可以并行工作。从而使系统的多个程序同时 活动,并

13、由统一的操作系统来管理,这就是活动,并由统一的操作系统来管理,这就是多道程多道程 序系统序系统。 l在单道系统中可以用程序代表顺序执行过程,但在多道系统 中,程序并行、制约等特征使程序这个静态的概念已不能描 述系统的运行情况了,为此操作系统引入了一个新的概念进 程。 18 进程的特征与状态进程的特征与状态 1.进程的定义和特征进程的定义和特征 进程进程:是指在系统中能是指在系统中能独立运行独立运行并作为并作为资源分配资源分配的基本的基本 单位,单位,是一个活动实体。是一个活动实体。 简单的理解为,进程是简单的理解为,进程是程序程序在在数据集合数据集合上的上的一次运行一次运行 过程过程,是系统进

14、行,是系统进行资源分配和调度的资源分配和调度的基本单位。基本单位。 进程是一个进程是一个动态的概念,动态的概念,是一个运行过程。它不同于程是一个运行过程。它不同于程 序,但又序,但又依赖于程序依赖于程序。对不同的数据集合,依照一定的程。对不同的数据集合,依照一定的程 序运行处理的每一个过程是序运行处理的每一个过程是不同的进程不同的进程。 19 进程的特征进程的特征 1)1)结构特征结构特征 从结构上看,进程是由程序段、数据段及进程 控制块三部分组成。 2)动态性动态性 程序是指令的集合,进程是指令的执行过程。 动态性是进程最基本的特征。 PCB 程序段程序段( (正文段正文段) )数据段数据段

15、( (数据集合数据集合) ) 20 3)并发性并发性 这是指多个进程实体,同存于内存中,能在一段时间 内同时运行。并发性是进程的重要特征,同时也成为OS的 重要特征。引入进程的目的也是为了使该进程的程序能和 其它进程的程序并发执行。 4)独立性独立性 进程实体是一个能独立运行的基本单位,同时也是系 统中独立获得资源和独立调度的基本单位。没有建立进程 的程序,不能作为一个独立的单位参加运行。 5)异步性异步性 各进程按其各自独立的,各进程按其各自独立的,不可预知的速度不可预知的速度向前推进。向前推进。 进程的特征 进程的特征 21 思考?思考? 进程与程序的区别? 22 作业和进程的关系作业和进

16、程的关系 作业是用户需要计算机完成某项任务时要求计算机所做的工 作的集合。一个作业的完成要经过作业提交、作业后备、作 业执行和作业完成四个阶段。 进程是对已提交完毕程序的执行过程的描述,是资源分配的 基本单位。他们主要区别和关联如下: (1)作业是用户向计算机提交任务的实体,而进程是完成 用户任务的实体; (2)一个作业可由多个进程组成,且必须至少由一个进程 组成。 (3)作业的概念主要用在批处理操作系统中,而进程的概 念则几乎用在所有的多道程序操作系统中。 23 2.进程的三种基本状态进程的三种基本状态 1)就绪就绪(Ready)状态状态 当进程当进程已经分配已经分配到到除除CPUCPU以外

17、以外的的所有必要的资源所有必要的资源后,只后,只 要能要能获得处理机获得处理机,就可以,就可以立即执行立即执行。这时的进程的状态称。这时的进程的状态称 为就绪状态。为就绪状态。 2)执行状态执行状态(Running)(运行状态)(运行状态) 指进程指进程已获得处理机已获得处理机,其程序正在执行。在,其程序正在执行。在单处理机单处理机 系统中,系统中,只能有一个进程只能有一个进程处于执行状态。(在多处理机中,处于执行状态。(在多处理机中, 可能有多个进程处于执行状态。)可能有多个进程处于执行状态。) 24 3)阻塞状态阻塞状态(Block) (等待状态等待状态) 进程进程因发生某个事件因发生某个

18、事件而而暂停执行暂停执行时的状态(如:请求时的状态(如:请求 I/OI/O、申请缓冲空间等),也就是说,、申请缓冲空间等),也就是说,进程受到阻塞进程受到阻塞,所以,所以 称这种暂停状态为称这种暂停状态为阻塞状态阻塞状态,有时也称,有时也称“等待等待”状态状态或或“ 睡眠睡眠”状态。状态。 25 进程的特征与状态进程的特征与状态 处于就绪态进程处于就绪态进程: :一般处于就绪态的进程一般处于就绪态的进程按照一定的算法按照一定的算法 (如先来的进程排在前面,或采用优先权高的进程排在前(如先来的进程排在前面,或采用优先权高的进程排在前 面)排成一个面)排成一个就绪队列就绪队列。 处于运行态进程处于

19、运行态进程: :如系统有如系统有一个处理机一个处理机,则在任何一时刻,则在任何一时刻, 最多只有一个进程最多只有一个进程处于运行态。处于运行态。 处于等待态进程处于等待态进程: :处于处于等待等待态的进程排在态的进程排在等待等待队列中。由队列中。由 于于等待事件原因等待事件原因不同,不同,等待等待队列也按队列也按事件原因事件原因可分成几个可分成几个 队列。队列。 26 进程的基本状态转换 注意的三点:注意的三点: 1 1)进程从阻塞态到执行态,必须经过就绪态;)进程从阻塞态到执行态,必须经过就绪态; 2 2)进程从执行态到阻塞态,一般由进程自己主动提出的;)进程从执行态到阻塞态,一般由进程自己

20、主动提出的; 3 3)一个进程由执行到就绪态总是由外界事件引起的,而不是该进程自己)一个进程由执行到就绪态总是由外界事件引起的,而不是该进程自己 引起的。引起的。 27 进程状态间的转换进程状态间的转换 就绪就绪执行:执行:调度调度 执行执行等待:等待:等待某个事件发生而睡眠等待某个事件发生而睡眠 等待等待就绪:就绪:因等待的事件结束而唤醒因等待的事件结束而唤醒 执行执行就绪:就绪:时间片用完时间片用完 练习:练习: 1 1、如果系统中有、如果系统中有n n个进程,则就绪队列中进程的个数最多个进程,则就绪队列中进程的个数最多 为(为( )。)。 A A、n+1 Bn+1 B、 n Cn C、

21、n-1 Dn-1 D、1 1 2 2、设系统中有关、设系统中有关n(n2)n(n2)个进程,且当前不在执行进程调度个进程,且当前不在执行进程调度 程序,试考虑下述四种情况:程序,试考虑下述四种情况: A A、没有运行进程,有、没有运行进程,有2 2个就绪进程,个就绪进程,n n个进程处于等待状态。个进程处于等待状态。 B B、有、有1 1个运行进程,没有就绪进程,个运行进程,没有就绪进程,n-1n-1个进程处于等待状态。个进程处于等待状态。 C C、有、有1 1个运行进程,有个运行进程,有1 1个就绪进程,个就绪进程,n-2n-2个进程处于等待状态。个进程处于等待状态。 D D、有、有1 1个

22、运行进程,个运行进程,n-1n-1个就绪进程,没有进程处于等待状态。个就绪进程,没有进程处于等待状态。 上述情况中,不可能发生的情况是(上述情况中,不可能发生的情况是( )。)。 C C A A 28 进程的状态进程的状态 u3 创建状态和终止状态 1.创建状态创建状态 是一个进程刚刚建立,但还没有将它 送入就绪队列时的状态 2.终止状态终止状态 当一个进程已经正常结束或异常结束, OS已经将它从就绪队列中移出,但还没 有将它撤消时的状态。 29 30 31 事件事件动作动作 32 4.挂起状态挂起状态 1.1.挂起状态的引入挂起状态的引入 1)1)终端用户的需要终端用户的需要 当终端用户在自

23、己的程序运行期间,发现当终端用户在自己的程序运行期间,发现有可疑问题有可疑问题时,时, 往往希望暂时使自己的往往希望暂时使自己的进程静止下来进程静止下来。也就是说,如果进。也就是说,如果进 程处于程处于执行状态,则暂停执行执行状态,则暂停执行;如果进程处于;如果进程处于就绪状态,就绪状态, 则暂时不接受调度则暂时不接受调度,以便,以便研究其执行情况研究其执行情况或对或对程序进行修程序进行修 改改。我们把这种静止状态称为。我们把这种静止状态称为挂起状态挂起状态。 33 2)2)父进程的需求父进程的需求 父进程常常希望父进程常常希望考察考察和和修改子进程修改子进程,或者当要,或者当要协调各子协调各

24、子 进程进程间的活动时,间的活动时,要挂起自己的子进程。要挂起自己的子进程。 3)3)负荷调节的需要负荷调节的需要 当当实时系统实时系统中的工作负荷较重,可能影响到对实时任务中的工作负荷较重,可能影响到对实时任务 的控制时,可由系统把的控制时,可由系统把一些不重要或不紧迫的进程一些不重要或不紧迫的进程挂起,挂起, 以保证系统仍然能正常运行。以保证系统仍然能正常运行。 4)4)操作系统的需要操作系统的需要 操作系统有时需要挂起某些进程,检查运行中操作系统有时需要挂起某些进程,检查运行中资源的使资源的使 用情况及进行记帐用情况及进行记帐,以便改善系统的运行性能。,以便改善系统的运行性能。 34 2

25、.2.进程状态的转换进程状态的转换 在引入挂起状态后,又将增加从在引入挂起状态后,又将增加从挂起状态(又称静止挂起状态(又称静止 状态状态)到)到非挂起状态(又称活动状态非挂起状态(又称活动状态)的转换。或者相反,)的转换。或者相反, 可以有以下几种情况:可以有以下几种情况: 1) 1) 活动就绪活动就绪 静止就绪静止就绪 当进程处于未被挂起的当进程处于未被挂起的就绪状态就绪状态时,称此为时,称此为活动就绪状活动就绪状 态态,表示为,表示为Readya。当用挂起原语。当用挂起原语SuspendSuspend将该进程挂起将该进程挂起 后,该进程便转变为后,该进程便转变为静止就绪状态静止就绪状态。

26、表示为表示为Readys(处(处 在在Readys状态的进程,状态的进程,不再被调度执行。不再被调度执行。) 35 2) 2) 活动阻塞活动阻塞 静止阻塞静止阻塞 当进程处于当进程处于未被挂起的阻塞状态未被挂起的阻塞状态时,称为它处在时,称为它处在活活 动阻塞状态动阻塞状态(表示为(表示为Blockeda)。当)。当SuspendSuspend原语将原语将 它挂起后,进程便转变为它挂起后,进程便转变为静止阻塞状态静止阻塞状态(表示为(表示为 Blockeds)。处于该状态的进程,在其)。处于该状态的进程,在其所期待的事所期待的事 件出现件出现以后,他将从以后,他将从静止阻塞静止阻塞变为变为静止

27、就绪静止就绪。 36 3) 3) 静止就绪静止就绪 活动就绪活动就绪 处于处于ReadysReadys状态的进程,若用激活原语状态的进程,若用激活原语ActiveActive激活激活 后,该进程将转变为后,该进程将转变为ReadyaReadya状态。状态。 4) 4) 静止阻塞静止阻塞 活动阻塞活动阻塞 处于处于BlockedsBlockeds状态的进程,若用激活原语状态的进程,若用激活原语ActiveActive激激 活后,进程将转变为活后,进程将转变为BlockedaBlockeda状态。状态。 37 挂起挂起 执行执行 活动就绪活动就绪 活动阻塞活动阻塞 静止就绪静止就绪 静止阻塞静止阻

28、塞 等待事件等待事件 激活激活 事件发生事件发生 挂起挂起 事件发生事件发生 激活激活 挂起挂起 具有挂起状态的进程状态图具有挂起状态的进程状态图 被调度被调度 时间片用完时间片用完 创建创建 许可许可 许可许可 终止终止 释放释放 38 正在执行的进程由于时间片用完而被暂停执正在执行的进程由于时间片用完而被暂停执 行,此时进程应从执行状态变为行,此时进程应从执行状态变为_状态;状态; 处于静止阻塞状态的进程,在进程等待事件处于静止阻塞状态的进程,在进程等待事件 出现后,应转变为出现后,应转变为_状态;状态; 若进程正处于执行状态时,应终端的请求而若进程正处于执行状态时,应终端的请求而 暂停下

29、来以便研究其运行情况,这时进程应转变暂停下来以便研究其运行情况,这时进程应转变 为为_状态,若进程已处于阻塞状态,则此时应状态,若进程已处于阻塞状态,则此时应 转变为转变为_状态。状态。 - -:A.A.静止阻塞静止阻塞 B.B.活动阻塞活动阻塞 C.C.静止就绪静止就绪 D.D.活动就绪活动就绪 E.E.执行执行 练习:练习: D D C C C C A A 39 【思考题思考题】 1如果系统中有N个进程,运行的进程最多几个, 最少几个;就绪进程最多几个最少几个;等待 进程最多几个,最少几个? 2. 有没有这样的状态转换,为什么? 等待运行; 就绪等待 3. 一个状态转换的发生,是否一定导致

30、另一个 转换发生,列出所有的可能 40 由三部分组成由三部分组成PCB、有关、有关程序段程序段和该程序段对其进行和该程序段对其进行 操作的操作的数据数据集合。集合。 1) 进程控制块进程控制块:用于用于描述进程情况描述进程情况及及控制进程运行控制进程运行所需的全所需的全 部信息。部信息。 2) 程序段程序段:是进程中能被是进程中能被进程调度程序进程调度程序在在CPUCPU上执行的上执行的程序程序 代码段。代码段。 3) 数据段数据段:一个进程的数据段,可以是进程对应的程序加一个进程的数据段,可以是进程对应的程序加 工处理的工处理的原始数据原始数据,也可以是程序执行后产生的,也可以是程序执行后产

31、生的中间或最中间或最 终数据。终数据。 进程的结构进程的结构 41 1.进程控制块的作用进程控制块的作用 进程控制块是操作系统用于记录和刻画进程状态及进程控制块是操作系统用于记录和刻画进程状态及 有关信息的有关信息的数据结构数据结构。 进程控制块是进程控制块是进程存在的唯一标志进程存在的唯一标志,当系统或父进,当系统或父进 程程创建一个进程创建一个进程时,实际上就是为其时,实际上就是为其建立一个进程控建立一个进程控 制块。制块。 进程控制块进程控制块既能标识进程的存在既能标识进程的存在,又能刻画出,又能刻画出进程进程 的动态特征的动态特征,它是一个进程仅有的被系统真正感知的,它是一个进程仅有的

32、被系统真正感知的 部分。对操作系统而言,所有部分。对操作系统而言,所有PCBPCB将构成将构成并发执行控制并发执行控制 和和维护系统工作维护系统工作的依据。的依据。 进程控制块进程控制块 42 PCB 程序段程序段( (正文段正文段) )数据段数据段( (数据集合数据集合) ) 处理机状态处理机状态 进程调度信息进程调度信息 2.2.进程控制块中的信息进程控制块中的信息 内内/ /外部标识符外部标识符 通用寄存器通用寄存器 指令计数器指令计数器 程序状态字程序状态字PSWPSW 用户栈指针用户栈指针 进程状态进程状态 进程优先级进程优先级 其它信息其它信息/ /事件事件 程序和数据的地址程序和

33、数据的地址 进程同步和通信机制进程同步和通信机制 PCBPCB中的信息中的信息 进程标识符进程标识符 进程控制信息进程控制信息 资源清单资源清单 链接指针链接指针 43 为了方便管理为了方便管理,把处于相同状态的进程链接在一把处于相同状态的进程链接在一 起,称为起,称为“进程队列进程队列”。 常用的组织方式有两种:常用的组织方式有两种:链接方式(单链接方式(单/ /双向)双向)、索引方式索引方式。 3. 3. 进程控制块的组织方式进程控制块的组织方式 1 1、链接方式、链接方式 具有相同状态的具有相同状态的PCBPCB,用其中的链接字,链接成一个队,用其中的链接字,链接成一个队 列。这样就可以

34、形成列。这样就可以形成就绪队列就绪队列、若干个阻塞队列若干个阻塞队列和和空白队列空白队列 等。对其中的就绪队列常按照进程优先权的大小排列,把优等。对其中的就绪队列常按照进程优先权的大小排列,把优 先权高的进程的先权高的进程的PCBPCB排在队列前面。排在队列前面。 进程队列进程队列:不同状态进程分别组成就绪队列、:不同状态进程分别组成就绪队列、 等待队列、空白队列。等待队列、空白队列。 44 执行指针 就绪队列指针 阻塞队列指针 空闲队列指针 PCB1 PCB2 PCB3 PCB4 PCB5 PCB6 PCB7 PCB8 PCB9 4 3 0 8 7 9 0 10 PCB链接队列示意图链接队列

35、示意图 45 (a)等待队列分开等待队列分开 PCB5 执行队列 就绪队列 阻塞队列1 阻塞队列2 队列表头队列表头 PCB8PCB1PCB4 PCB3PCB2 PCB7 46 (b)等待队列不分开等待队列不分开 就绪队列 阻塞队列 PCB1 PCB7PCB2PCB3 PCB8 PCB4 47 队首指针队首指针 进程进程A A进程进程B B进程进程E E . 0 0 PCBPCBA APCBPCBB BPCBPCBE E 单向链接单向链接 队首指针队首指针 0 0 0 0 PCBPCBA APCBPCBB BPCBPCBE E 进程进程A A 进程进程B B进程进程E E . 双向链接双向链接

36、 48 2.索引方式索引方式 系统根据所有进程的状态,建立几张索引表。 例如:就绪索引表、阻塞索引表。并把各索引表在 内存的首地址记录在内存中的一些专用单元中。每 个索引表的表目中,记录具有相同状态的某个PCB 在PCB表中的地址。 49 执行指针 就绪索引表 等待索引表 PCB3 PCB4 PCB5 PCB7 PCB6 PCB2 PCB1 按索引方式组织按索引方式组织PCB 就绪索引表 等待索引表 50 u当事件当事件n n发生,对应队列移进就绪队列发生,对应队列移进就绪队列 51 进程控制块是进程存在的标志,当系统或父进程 创建一个进程时,实际上就是为其建立一个进程 控制块。 进程控制块既

37、能标识进程的存在,又能刻画出进 程的动态特征,它是一个进程仅有的被系统真正 感知的部分。对操作系统而言,所有进程控制块 将构成并发执行控制和维护系统工作的依据。 总结总结控制块的作用:控制块的作用: 52 进程控制进程控制 为了防止操作系统及关键数据受到破坏,通常将处理为了防止操作系统及关键数据受到破坏,通常将处理 机的状态分为机的状态分为管态管态(系统态)系统态)和和目态目态(用户态)用户态)。 管态:又叫管态:又叫特权态特权态、系统态系统态或或核心态核心态。CPUCPU在管态下可以在管态下可以 执行指令系统的全集。通常,执行指令系统的全集。通常,操作系统在管态操作系统在管态下运行。下运行。

38、 目态:又叫目态:又叫常态常态或或用户态用户态。机器处于目态时,程序。机器处于目态时,程序只能执只能执 行非特权指令行非特权指令。用户程序。用户程序只能在目态下运行只能在目态下运行,如果用户程,如果用户程 序在目态下执行特权指令,硬件将发生中断,由操作系统序在目态下执行特权指令,硬件将发生中断,由操作系统 获得控制,特权指令执行被禁止,这样可以获得控制,特权指令执行被禁止,这样可以防止用户程序防止用户程序 有意或无意的破坏系统有意或无意的破坏系统。从目态转换为管态的唯一途径是。从目态转换为管态的唯一途径是 中断中断。 53 OSOS内核内核:通常将一些通常将一些与硬件紧密相关与硬件紧密相关的模

39、块(中断处理程的模块(中断处理程 序),各种序),各种常用设备的驱动程序常用设备的驱动程序,以及,以及运行频率较高运行频率较高的模的模 块(时钟管理、进程调度)都安排在紧靠硬件的软件层次块(时钟管理、进程调度)都安排在紧靠硬件的软件层次 中,使它们中,使它们常驻内存常驻内存,以便提高,以便提高OSOS的运行效率,并对它们的运行效率,并对它们 加以加以特殊的保护特殊的保护, ,把这一部分称为把这一部分称为OSOS内核。内核。 OSOS内核通常是运行在内核通常是运行在系统态系统态的,进程控制是由的,进程控制是由OSOS内核内核 中的原语来中的原语来实现的。实现的。 进程控制进程控制:进程控制的任务

40、就是:进程控制的任务就是为作业创建进程为作业创建进程,撤消已撤消已 结束的进程结束的进程,以及,以及控制进程控制进程在运行过程中的在运行过程中的状态转换状态转换。 54 原语原语 在操作系统中,某些被进程调用的操作,一旦开始执行就在操作系统中,某些被进程调用的操作,一旦开始执行就 不能被中断不能被中断,否则否则就会出现就会出现操作错误操作错误,造成系统混乱。原语,造成系统混乱。原语 就是为实现这些操作而设置的。就是为实现这些操作而设置的。 原语:系统状态下执行的某些具有特定功能的原语:系统状态下执行的某些具有特定功能的程序段程序段。 (原语也是由(原语也是由若干条指令构成若干条指令构成的,用于

41、完成一定功能的过程。的,用于完成一定功能的过程。 原子操作在原子操作在管态管态下执行,下执行,常驻内存常驻内存。)。) 原语操作:一个操作中的动作原语操作:一个操作中的动作要么全做,要么全不做要么全做,要么全不做。 在操作系统中,通常把进程控制用程序段在操作系统中,通常把进程控制用程序段做成原语做成原语。用于。用于 进程控制的原语有:进程控制的原语有:创建原语、撤销原语、阻塞原语、唤醒创建原语、撤销原语、阻塞原语、唤醒 原语等。原语等。 55 进程的创建进程的创建 1 进程图进程图: :进程图是用来进程图是用来描述进程家族关系描述进程家族关系的的有向树。有向树。 系统初启时,首先创建一个系统初

42、启时,首先创建一个系统总控进程系统总控进程,再由,再由 该总控进程该总控进程创建其他系统进程创建其他系统进程,这些系统进程一旦,这些系统进程一旦 创建便永无休止地创建便永无休止地参与并发运行参与并发运行,为所有的用户进,为所有的用户进 程程提供服务提供服务,直至系统终止。,直至系统终止。 56 子进程子进程可以继承可以继承父进程的所有资源父进程的所有资源,当子进程,当子进程被撤消被撤消时,时, 应将从父进程那里获得的资源应将从父进程那里获得的资源归还给父进程归还给父进程。撤消父进程撤消父进程 时也必须同时时也必须同时撤消其所有的子进程撤消其所有的子进程。 A BC D M E IJ H GF

43、LK 57 2 引起创建进程的事件引起创建进程的事件 1) 1) 用户登录用户登录:在:在分时系统分时系统中,用户在终端键入登录命令后,若中,用户在终端键入登录命令后,若 是是合法用户合法用户,系统,系统建立一个进程建立一个进程,并插入,并插入就绪队列就绪队列。 2) 2) 作业调度作业调度:批处理系统批处理系统中,作业调度程序中,作业调度程序调度到某个作业调度到某个作业以以 后,就把这个作业后,就把这个作业装入内存,装入内存,并并分配必要的资源分配必要的资源,创建进程,创建进程, 插入插入就绪队列。就绪队列。 3) 3) 提供服务提供服务:运行中的用户向系统提出请求后,系统专门建立:运行中的

44、用户向系统提出请求后,系统专门建立 一个进程为用户服务。(打印请求)一个进程为用户服务。(打印请求) 由操作系统核心(系统程序模块)创建由操作系统核心(系统程序模块)创建 4)4) 应用请求:应用请求:应用进程的需要,由它应用进程的需要,由它自己创建一个新进程自己创建一个新进程,使,使 新进程新进程以并发运行方式以并发运行方式完成特定任务。(完成特定任务。(输入数据输入数据并将并将处理处理 结果结果输出到表格上)输出到表格上) 由父进程创建由父进程创建 58 1 1 申请空白的申请空白的PCBPCB为新进程为新进程分配唯一的数字标识符,分配唯一的数字标识符,并从并从PCBPCB 集合中集合中索

45、取一个空白的索取一个空白的PCBPCB 2 2 为新建立的进程分配资源为新建立的进程分配资源为新进程的为新进程的程序程序和和数据数据,以及,以及用用 户栈、分配必要的内存空间。户栈、分配必要的内存空间。 3 3 初始化进程控制块初始化进程控制块 初始化标识符信息初始化标识符信息: :将将系统中分配的标识符、父进程标识系统中分配的标识符、父进程标识 符符填入新填入新PCBPCB中。初始化处理机状态信息。使程序计数器指中。初始化处理机状态信息。使程序计数器指 向向程序的入口地址,程序的入口地址,栈指针指向栈指针指向栈顶栈顶。 初始化处理机控制信息初始化处理机控制信息: :将进程的状态设置为将进程的

46、状态设置为就绪状态就绪状态或或 静止就绪状态静止就绪状态。 4 4 将新进程插入就绪队列将新进程插入就绪队列 3 进程的创建过程(进程的创建过程(creat) 59 入口 查PCB链表 有同名? 将PCB入就绪队列 将PCB入总链 将入口信息填入PCB相应项 向系统申请一个空的PCB结构 返回 出错 有 创建原语流程图 无 有空PCB? 出错 无 有 60 1 引起进程终止的事件引起进程终止的事件 1) 1) 正常结束:正常结束:计算机系统中,都有一个表示计算机系统中,都有一个表示进程已经运进程已经运 行完成的指示行完成的指示。(批处理,。(批处理,HaltHalt。分时系统中,。分时系统中,

47、Logs OffLogs Off) 2) 2) 异常结束异常结束: : 越界错误、保护错、特权指令错、越界错误、保护错、特权指令错、 非法指非法指 令错、令错、 运行超时、等待超时、算术运算错、运行超时、等待超时、算术运算错、 I/OI/O故障故障 3) 3) 外界干预外界干预: : 操作员或操作系统干预、父进程请求、父操作员或操作系统干预、父进程请求、父 进程终止进程终止 进程的终止(撤销进程)进程的终止(撤销进程) 61 2 进程终止过程进程终止过程 1 1 根据被终止进程的根据被终止进程的标识符标识符,从,从PCBPCB集合中集合中检索出该进程的检索出该进程的 PCBPCB,从中,从中读

48、出读出该该进程的状态进程的状态 2 2 若被终止进程处于若被终止进程处于执行态执行态,应立即,应立即终止该进程的执行终止该进程的执行,并,并 设置设置调度标志为真调度标志为真(用于指示该进程被终止时应重新调(用于指示该进程被终止时应重新调 度),然后度),然后再选择一个进程,分配处理机再选择一个进程,分配处理机给它。给它。 3 3 如果该进程如果该进程还有子孙进程还有子孙进程,还应,还应将将它的它的所有子孙进程终止所有子孙进程终止, 以防它们成为不可控的。以防它们成为不可控的。 4 4 将该进程所拥有的将该进程所拥有的全部资源全部资源,或者,或者归还归还给它的给它的父进程父进程,或,或 者归还

49、给者归还给系统系统。 5 5 将将被终止进程(被终止进程(PCBPCB)从所在队列(链表)中)从所在队列(链表)中移出移出。 62 入口 返回 查进程链表或进程家族 有此PCB吗? 该PCB有子进程吗? 释放该进程所占有的资源 释放该PCB结构本身 出错处理 有 无 有 无 63 1 引起进程阻塞和唤醒的事件引起进程阻塞和唤醒的事件 1) 请求系统服务请求系统服务: :正在执行的程序正在执行的程序请求操作系统服务请求操作系统服务,但,但 是由于某种原因操作系统是由于某种原因操作系统没有立即满足没有立即满足该进程的要求,该进该进程的要求,该进 程只能程只能转变为阻塞状态转变为阻塞状态来等待。来等待。 2) 启动某操作启动某操作: :当进程启动某种操作后,如果该进程必须当进程启动某种操作后,如果该进程必须 在该操作完成之后才能继续执行,则在该操作完成之后才能继续执行,则必须先必须先使使

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论