




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第3章章 进程的描述与控制进程的描述与控制引言引言31 程序执行方式程序执行方式32 进程描述进程描述33进程状态进程状态34 进程控制进程控制35 线程线程36 Linux进程管理进程管理37 Windows的进程管理的进程管理引言引言 进程进程是操作系统中最重要的概念之一,简单地说,是操作系统中最重要的概念之一,简单地说,进程就是程序的执行过程。具体的说,进程是系统进进程就是程序的执行过程。具体的说,进程是系统进行行资源分配的基本单位资源分配的基本单位,同时也是,同时也是处理器调度和运行处理器调度和运行的基本单位的基本单位。现代操作系统的四大特征均基于进程而。现代操作系统的四大特征均基于
2、进程而形成。因此,进程是操作系统中最基本、最重要的概形成。因此,进程是操作系统中最基本、最重要的概念。念。 31程序执行方式程序执行方式 程序的执行方式分为程序的执行方式分为顺序执行方式顺序执行方式和和并发执行并发执行方式方式两种。在早期的系统中,只有当一个程序执行完两种。在早期的系统中,只有当一个程序执行完后,另一个程序才可执行,这是程序的顺序执行方式;后,另一个程序才可执行,这是程序的顺序执行方式;而在而在多道程序环境多道程序环境下,多个程序同时进入内存,程序下,多个程序同时进入内存,程序的执行方式是并发执行方式。程序的这两种执行方式的执行方式是并发执行方式。程序的这两种执行方式有着明显的
3、不同。正是程序并发执行的原因,引入了有着明显的不同。正是程序并发执行的原因,引入了进程的概念。进程的概念。 311 程序顺序执行程序顺序执行 n程序的顺序执行:程序的顺序执行:各道程序顺序进入内存,只有前一道程序运行结束退出内存,后一道程序方可进入内存运行。n程序顺序执行示意图:(例一般的计算程序)程序顺序执行示意图:(例一般的计算程序) I1C1P1I2C2P2前趋图前趋图311 程序顺序执行程序顺序执行 n程序顺序执行时的特征:程序顺序执行时的特征:u顺序性:顺序性:程序的执行总是按照程序结构所指定的程序的执行总是按照程序结构所指定的次序顺序连续进行。次序顺序连续进行。只有前一个操作结束才
4、能执只有前一个操作结束才能执行后继操作行后继操作。除了人为干预造成机器暂停之外,。除了人为干预造成机器暂停之外,否则,前一个操作的结束就意味着后一个操作的否则,前一个操作的结束就意味着后一个操作的开始。开始。u封闭性:封闭性:封闭性包含两方面含义:封闭性包含两方面含义: p资源封闭性:资源封闭性:程序在执行期间,全部程序在执行期间,全部系统资系统资源为该程序所独占源为该程序所独占,除了资源的初始状态由,除了资源的初始状态由操作系统设定之外,程序一旦进入系统,则操作系统设定之外,程序一旦进入系统,则资源的状态不受外界因素影响,完全由该程资源的状态不受外界因素影响,完全由该程序所控制,只有该程序才
5、能改变它。序所控制,只有该程序才能改变它。311 程序顺序执行程序顺序执行 p结果封闭性:结果封闭性:程序的执行结果与执行速度无程序的执行结果与执行速度无关关。换言之,程序无论是从头到尾不停顿地。换言之,程序无论是从头到尾不停顿地执行,还是断断续续地间断执行,其最终结执行,还是断断续续地间断执行,其最终结果都是唯一确定的。果都是唯一确定的。u可再现性:可再现性:只要程序执行时的环境和初始条件相只要程序执行时的环境和初始条件相同同,当程序多次重复执行时,无论它是从头到尾,当程序多次重复执行时,无论它是从头到尾不停顿地执行,还是不停顿地执行,还是“停停走走停停走走”地执行,都将地执行,都将获得相同
6、的结果获得相同的结果。如程序中存在错误,则错误也。如程序中存在错误,则错误也能够再现。能够再现。程序顺序执行时的特性,将为程序员检测和校正程序程序顺序执行时的特性,将为程序员检测和校正程序的错误,带来极大的方便的错误,带来极大的方便312 程序并发执行程序并发执行n程序的并发执行:程序的并发执行:指在逻辑上相互独立的一组程序指在逻辑上相互独立的一组程序在执行时间上的相互重叠,即一个程序段的执行尚在执行时间上的相互重叠,即一个程序段的执行尚未结束,另一程序段的执行已经开始。未结束,另一程序段的执行已经开始。 n程序并发执行的条件:程序并发执行的条件:u从硬件角度:从硬件角度:中断中断机构的设立使
7、得多种硬件部件机构的设立使得多种硬件部件能同时操作,即硬件具有了并行操作能力,而能同时操作,即硬件具有了并行操作能力,而通通道技术道技术的出现则使处理器与输入输出设备之间可的出现则使处理器与输入输出设备之间可以并行工作。以并行工作。u从操作系统角度:从操作系统角度:多道程序设计技术多道程序设计技术的引入,使的引入,使得内存中可同时驻留一道以上的程序,它们同时得内存中可同时驻留一道以上的程序,它们同时活动在不同硬件部件上,硬件的并行性能得到进活动在不同硬件部件上,硬件的并行性能得到进一步发挥。一步发挥。 312 程序并发执行程序并发执行n程序的并发执行示意图:程序的并发执行示意图:I1C1P1.
8、312 程序并发执行程序并发执行 n 程序并发执行时的特征:程序并发执行时的特征:u间断性:间断性:并发执行的程序,由于相互之间的依赖和制约关并发执行的程序,由于相互之间的依赖和制约关系,将不是连续执行而是处于系,将不是连续执行而是处于“执行执行暂停暂停再执行再执行”的的活动规律中,即它有时处于执行状态,有时又由于某种原活动规律中,即它有时处于执行状态,有时又由于某种原因而暂停执行,当这种原因消失又恢复至执行状态。因此,因而暂停执行,当这种原因消失又恢复至执行状态。因此,程序中前一个动作的结束并不一定意味着后一个动作的开程序中前一个动作的结束并不一定意味着后一个动作的开始,程序的执行失去连续性
9、而呈现出间断性特征。始,程序的执行失去连续性而呈现出间断性特征。u失去封闭性:失去封闭性:程序在并发执行时,程序在并发执行时,多道程序共享系统的各多道程序共享系统的各类资源类资源,由于资源数量有限,必然导致并发程序对资源的,由于资源数量有限,必然导致并发程序对资源的竞争从而改变程序执行的速度。这样,竞争从而改变程序执行的速度。这样,每个程序的执行都每个程序的执行都会受到其它程序的影响会受到其它程序的影响,并发程序的执行结果与其执行的并发程序的执行结果与其执行的相对速度有关,相对速度有关,程序的执行程序的执行将不可避免地失去封闭性。将不可避免地失去封闭性。312 程序并发执行程序并发执行 【例例
10、3-13-1】假设在一条单向行驶的公路上经常有假设在一条单向行驶的公路上经常有卡车通过,卡车通过,观察者和报告者观察者和报告者并发工作。观察者不断并发工作。观察者不断观察并对通过的卡车计数,报告者定时地将观察者观察并对通过的卡车计数,报告者定时地将观察者的计数值打印出来,然后将计数器清零。观察者和的计数值打印出来,然后将计数器清零。观察者和报告者并发执行的程序如下报告者并发执行的程序如下, ,试分析试分析n n可能的计算结可能的计算结果果(主程序(主程序mainmain中的中的parbeginparbegin表示多个程序可以并表示多个程序可以并发执行)发执行) 312 程序并发执行程序并发执行
11、 int n=0; void observer(void) while(1) n+; remainder of observer; void reporter (void) while(1) print(n); n=0; remainder of reporter void main ( ) parbegin(observer( ),reporter( ); 312 程序并发执行程序并发执行 【分析分析】由于观察者和报告者各自独立地并发工作,由于观察者和报告者各自独立地并发工作,所以所以n+n+操作既可以在报告者的操作既可以在报告者的print(n)print(n)和和n=0n=0操作之前,操
12、作之前,也可以在其后,还可以在也可以在其后,还可以在print(n)print(n)和和n=0n=0之间,之间,假设在假设在开始某个循环之前开始某个循环之前n n的值为的值为m m,即可能出现以下三种执行,即可能出现以下三种执行序列序列 1n+;print(n);n=0。此时得到的。此时得到的n值分别是值分别是m+1,m+1,0。 2print(n);n=0;n+。此时得到的。此时得到的n值分别是值分别是m, 0,1。 3print(n);n+;n=0。此时得到的。此时得到的n值分别是值分别是m,m+1,0。 由此可见,当并发程序共享了某个共用变量后,由此可见,当并发程序共享了某个共用变量后,
13、程程序不同的推进速度将对共用变量产生出不同的操作序列,序不同的推进速度将对共用变量产生出不同的操作序列,从而导致不同的运行结果从而导致不同的运行结果。也即程序在并发执行时,程。也即程序在并发执行时,程序的执行结果与程序的执行速度有关,程序的执行已丧序的执行结果与程序的执行速度有关,程序的执行已丧失了顺序执行时的失了顺序执行时的封闭性封闭性特征。特征。 312 程序并发执行程序并发执行 u失去可再现性:失去可再现性:由于程序并发执行时,其封闭性由于程序并发执行时,其封闭性特征不再成立,程序以不同速度推进将产生不同特征不再成立,程序以不同速度推进将产生不同的运行结果。因此程序的多次执行不一定获得唯
14、的运行结果。因此程序的多次执行不一定获得唯一结果,程序的执行结果丧失了原有的可重复特一结果,程序的执行结果丧失了原有的可重复特征。征。 u程序与程序的执行不再一一对应程序与程序的执行不再一一对应 :p程序与程序执行的不同:程序与程序执行的不同:程序与程序的执行程序与程序的执行是两个不同的概念,前者是指指令的有序集是两个不同的概念,前者是指指令的有序集合,是合,是静态静态的概念;后者是指指令序列在处的概念;后者是指指令序列在处理器上的执行过程,是理器上的执行过程,是动态动态的概念。的概念。 312 程序并发执行程序并发执行 p“可再入可再入”的概念:的概念:所谓所谓“可再入程序可再入程序”是是指
15、能被多个程序同时调用的程序指能被多个程序同时调用的程序。它具有以。它具有以下性质:它是下性质:它是纯代码纯代码的,即它在执行过程中的,即它在执行过程中不改变自身代码,通常由指令和常量等程序不改变自身代码,通常由指令和常量等程序逻辑中的不变部分组成;逻辑中的不变部分组成;调用它的各程序应调用它的各程序应提供工作区提供工作区,用以存放随着程序执行将发生,用以存放随着程序执行将发生变化的部分。显然,由于可再入程序的纯代变化的部分。显然,由于可再入程序的纯代码特征,它可以被多个程序以交替方式执行码特征,它可以被多个程序以交替方式执行而不会发生执行错误。而不会发生执行错误。 “可再入可再入” 程序举例程
16、序举例 编译程序编译程序P P编译源程序甲,从编译源程序甲,从A A点开始工作,点开始工作,执行到执行到B B点时需将信息记到磁盘上,且程序点时需将信息记到磁盘上,且程序P P在在B B点等待磁盘传输。点等待磁盘传输。 为提高系统效率,利用编译程序的为提高系统效率,利用编译程序的“可再入可再入”性,让编译程序性,让编译程序P P再为源程序乙进行编译,仍再为源程序乙进行编译,仍从从A A点开始工作。点开始工作。“可再入可再入” 程序举例程序举例 编译程序编译程序P(P的入口的入口,处理源程处理源程序乙序乙)(P把源程序甲把源程序甲的信息记盘等的信息记盘等磁盘完成磁盘完成)AB源程源程序甲序甲源程
17、源程序乙序乙“可再入可再入” 程序举例程序举例 现在怎样来描述编译程序现在怎样来描述编译程序P的状态呢的状态呢? 称它为在称它为在B点等待磁盘传输状态,还是称它点等待磁盘传输状态,还是称它为正在从为正在从A点开始执行的状态点开始执行的状态? 312 程序并发执行程序并发执行 p程序与程序执行失去一一对应的关系:程序与程序执行失去一一对应的关系:在多在多道程序系统中,编译程序常是道程序系统中,编译程序常是“可再入程可再入程序序”,因此它可以同时编译若干个源程序。,因此它可以同时编译若干个源程序。由此可见,程序和程序和执行失去了一一对由此可见,程序和程序和执行失去了一一对应的关系。应的关系。 32
18、 进程描述进程描述 由于程序的并发执行,仅用程序的概念来描述由于程序的并发执行,仅用程序的概念来描述程序的执行是不准确的。为此,人们引入了程序的执行是不准确的。为此,人们引入了“进程进程”的概念来描述程序的执行。的概念来描述程序的执行。进程引入是为了更好地描述程序并发执行的动态特征进程引入是为了更好地描述程序并发执行的动态特征321 进程定义进程定义 “进程是进程是一个一个具有一定独立功能的具有一定独立功能的程序程序关于某关于某个个数据集合的一次运行活动数据集合的一次运行活动,进程是系统进行资源,进程是系统进行资源分配和调度的一个独立单位。分配和调度的一个独立单位。”(19781978年全国操
19、作年全国操作系统会议)。系统会议)。 把编译程序把编译程序P P,与服务对象联系起来,与服务对象联系起来,P P为甲服务就说构为甲服务就说构成进程成进程P P甲,甲,P P为乙服务则构成进程为乙服务则构成进程P P乙。两个进程虽共乙。两个进程虽共享程序享程序P P,但它们可同时执行且彼此按各自的速度独立,但它们可同时执行且彼此按各自的速度独立执行。可见程序与计算执行。可见程序与计算( (程序的执行程序的执行) )不再一一对应不再一一对应 322 进程特性进程特性动态性并发性独立性异步性结构性322 进程特性进程特性n动态性:动态性:(1 1)强调:是一个程序的一次执行过程)强调:是一个程序的一
20、次执行过程 (2 2)有一定生命期:创建)有一定生命期:创建 执行执行 暂停暂停 消亡消亡 (3 3)在不同状态之间转换)在不同状态之间转换 动态性是进程的最基本特征,它是程序执行过程,它动态性是进程的最基本特征,它是程序执行过程,它是有一定的生命期。它由创建而产生、由调度而执行,是有一定的生命期。它由创建而产生、由调度而执行,因得不到资源而暂仃,并由撤消而死亡。而程序是静态因得不到资源而暂仃,并由撤消而死亡。而程序是静态的,它是存放在介质上(外存、软盘、光盘)一组有序的,它是存放在介质上(外存、软盘、光盘)一组有序指令的集合,无运动的含义。指令的集合,无运动的含义。 一个程序一个程序-多个进
21、程多个进程。322 进程特性进程特性n并发性:并发性:并发性是进程的重要特征,同时也是并发性是进程的重要特征,同时也是OS的重要特征。并发性指多个进程实体同存于内的重要特征。并发性指多个进程实体同存于内存中,能在存中,能在一段时间内同时运行一段时间内同时运行。而程序是不能。而程序是不能并发执行。并发执行。 322 进程特性进程特性n独立性:独立性:进程的独立性体现在两方面,即进程既是进程的独立性体现在两方面,即进程既是一个一个能独立运行的单位能独立运行的单位,又是一个系统进行,又是一个系统进行资源分资源分配和调度的独立单位配和调度的独立单位。而程序不作为独立单位参加。而程序不作为独立单位参加运
22、行,必须通过建立进程才能运行运行,必须通过建立进程才能运行n异步性:异步性:各个进程按照各自独立的、各个进程按照各自独立的、不可预知不可预知的速的速度异步向前推进。即进程按异步方式执行。度异步向前推进。即进程按异步方式执行。导致程序执行的不可再现性,因此导致程序执行的不可再现性,因此OS必须采用某种必须采用某种措施来限制各进程推进序列以保证各程序间正常协措施来限制各进程推进序列以保证各程序间正常协调运行。调运行。 322 进程特性进程特性n结构性:结构性:操作系统为方便对操作系统为方便对进程的管理和控制进程的管理和控制,操,操作系统必须为每个进程建立一个作系统必须为每个进程建立一个进程控制块进
23、程控制块(Process Control BlockProcess Control Block,PCBPCB),用以描述进程),用以描述进程的控制和管理信息。这样,从结构上看,进程实体的控制和管理信息。这样,从结构上看,进程实体就由就由程序、数据及进程控制块程序、数据及进程控制块三部分组成。其中,三部分组成。其中,进程的程序部分描述进程所要完成的功能,而数据进程的程序部分描述进程所要完成的功能,而数据结构集是进程在执行时必不可少的工作区和操作对结构集是进程在执行时必不可少的工作区和操作对象,这两部分是进程完成所需功能的物质基础。进象,这两部分是进程完成所需功能的物质基础。进程控制块是系统为实施
24、对进程的有效管理和控制所程控制块是系统为实施对进程的有效管理和控制所创建的系统数据结构。创建的系统数据结构。 323 进程与程序的区别进程与程序的区别n进程的动态性:进程的动态性:进程是动态的,而程序是静态的。进程是动态的,而程序是静态的。程序是代码的集合。进程是程序的执行过程,即使程序是代码的集合。进程是程序的执行过程,即使对于同一段程序来讲,由于执行环境的改变,执行对于同一段程序来讲,由于执行环境的改变,执行参数的调整,都会产生不同的进程。参数的调整,都会产生不同的进程。n进程的暂时性:进程的暂时性:进程是暂时的,而程序是永久的。进程是暂时的,而程序是永久的。进程是一个程序执行中状态变化的
25、过程,它会随着进程是一个程序执行中状态变化的过程,它会随着系统需要而生成,也会随着任务完成而结束,但程系统需要而生成,也会随着任务完成而结束,但程序是可以长久保存下来的。序是可以长久保存下来的。 323 进程与程序的区别进程与程序的区别n进程的结构性:进程的结构性:进程与程序的组成结构不同。进程进程与程序的组成结构不同。进程的组成包含的组成包含程序、数据和进程控制块程序、数据和进程控制块,这些不仅记,这些不仅记录了进程的执行内容,同时也包含了进程的执行状录了进程的执行内容,同时也包含了进程的执行状态信息。而程序是由算法策略、指令语句及执行数态信息。而程序是由算法策略、指令语句及执行数据构成,其
26、中主要描述的是执行逻辑问题,并不包据构成,其中主要描述的是执行逻辑问题,并不包含程序执行中的过程问题。含程序执行中的过程问题。 324 进程控制块进程控制块进程由程序,相应的数据集合,进程控制块三部分组成进程由程序,相应的数据集合,进程控制块三部分组成进程的程序进程的程序 静态文本,描述进程所要完成的功能。静态文本,描述进程所要完成的功能。数数 据据 集集 合合 程序运行时所需的数据和工作区。程序运行时所需的数据和工作区。 动态描述动态描述 进程控制块进程控制块PCB(Process Control Block)记录和描记录和描述进程的动态特性,描述进程的执行情况和状态变化。述进程的动态特性,
27、描述进程的执行情况和状态变化。324 进程控制块进程控制块PCB 块包含的信息块包含的信息进程标识信息进程标识信息处理机状态信息处理机状态信息进程调度信息进程调度信息进程控制信息进程控制信息324 进程控制块进程控制块u进程标识符信息:进程标识符信息:p外部标识符:外部标识符:由创建者提供,通常是由字母、由创建者提供,通常是由字母、数字所组成,往往是由数字所组成,往往是由用户(进程)命名用户(进程)命名并并在访问该进程时使用。外部标识符便于记忆,在访问该进程时使用。外部标识符便于记忆,如计算进程、打印进程、发送进程、接收进如计算进程、打印进程、发送进程、接收进程等。程等。p内部标识符:内部标识
28、符:这是为了方便系统使用而设置这是为了方便系统使用而设置的。在所有操作系统中,都为每一个进程赋的。在所有操作系统中,都为每一个进程赋予一个予一个唯一的整数唯一的整数,作为内部标识符。它通,作为内部标识符。它通常就是一个进程的序号。常就是一个进程的序号。 324 进程控制块进程控制块u处理器状态信息:处理器状态信息:处理器状态信息处理器状态信息由处理器的各种寄存器中的内容组成,由处理器的各种寄存器中的内容组成,当处理器被中断时,所有这些信息当处理器被中断时,所有这些信息被保存在被保存在PCBPCB中中p通用寄存器:通用寄存器:这里指用户可以使用的数据或地址寄存这里指用户可以使用的数据或地址寄存器
29、,一般有几十个,甚至上百个。器,一般有几十个,甚至上百个。p指令计数器:指令计数器:其中存放要访问的下一条指令地址。其中存放要访问的下一条指令地址。p程序状态字程序状态字PSW:存放进程执行时所需的状态信息,存放进程执行时所需的状态信息,如条件码、执行方式、中断屏蔽标志等。如条件码、执行方式、中断屏蔽标志等。p栈指针:栈指针:每个用户进程有一个或若干个与之相关的系每个用户进程有一个或若干个与之相关的系统栈,栈中保存了过程调用、系统调用的参数及调用统栈,栈中保存了过程调用、系统调用的参数及调用地址以及中断时的现场信息。栈指针指向该栈的栈顶。地址以及中断时的现场信息。栈指针指向该栈的栈顶。 324
30、 进程控制块进程控制块u进程调度信息:进程调度信息:p进程状态:进程状态:指明进程当前所处的状态,是进指明进程当前所处的状态,是进程调度和对换时的依据。程调度和对换时的依据。p进程优先级:进程优先级:进程优先级是选取进程占有处进程优先级是选取进程占有处理器的重要依据,优先级高的进程应优先获理器的重要依据,优先级高的进程应优先获得处理器。得处理器。p事件:事件:指进程因为等待某种事件而由运行状指进程因为等待某种事件而由运行状态转变为阻塞状态,即阻塞原因。态转变为阻塞状态,即阻塞原因。p其它信息:其它信息:它们与所采用的进程调度算法有它们与所采用的进程调度算法有关。比如,进程已等待关。比如,进程已
31、等待CPUCPU的时间总和,进程的时间总和,进程已执行的时间总和等。已执行的时间总和等。 324 进程控制块进程控制块u进程控制信息:进程控制信息:p程序和数据的起始地址:程序和数据的起始地址:指明该进程的程序和数据在指明该进程的程序和数据在内存和外存中的地址,以便调度该进程时能从中找到内存和外存中的地址,以便调度该进程时能从中找到其程序和数据。其程序和数据。p进程间通信信息:进程间通信信息:它是指实现进程同步和进程通信所它是指实现进程同步和进程通信所必须的机制,如消息队列指针、信号量等。必须的机制,如消息队列指针、信号量等。p资源列表:资源列表:也称资源清单,列出了除也称资源清单,列出了除C
32、PUCPU外进程所需的外进程所需的全部资源及已经分配给该进程的资源,如进程打开的全部资源及已经分配给该进程的资源,如进程打开的文件、有关存储器的信息、使用输入文件、有关存储器的信息、使用输入/ /输出设备的信息输出设备的信息等。等。p链接信息:链接信息:进程可以链接到一个进程队列中或相关的进程可以链接到一个进程队列中或相关的其它进程中。例如,同一状态的进程被链接成一个队其它进程中。例如,同一状态的进程被链接成一个队列,一个进程可以链接它的父子进程,列,一个进程可以链接它的父子进程,PCBPCB中需要有这中需要有这样一些指针域满足操作系统对同类、同簇进程的访问样一些指针域满足操作系统对同类、同簇
33、进程的访问要求。要求。33进程状态进程状态 进程从创建直到终止,在其生命期中一直处于进程从创建直到终止,在其生命期中一直处于一个不断变化的过程。为了刻画进程的这一状态变一个不断变化的过程。为了刻画进程的这一状态变迁,操作系统常将进程的活动分成若干种稳定的离迁,操作系统常将进程的活动分成若干种稳定的离散状态加以描述,并约定各种状态间的转换条件。散状态加以描述,并约定各种状态间的转换条件。对进程状态的刻画也经历了一个不断精确细化的过对进程状态的刻画也经历了一个不断精确细化的过程。程。 331 进程执行进程执行 在多道并行处理环境中,在多道并行处理环境中,每一时刻系统中都会每一时刻系统中都会有若干个
34、进程交替执行有若干个进程交替执行。 每当一个正在执行的进程由于某种原因而让出每当一个正在执行的进程由于某种原因而让出处理器时,处理器时,进程调度程序都要按某种算法进程调度程序都要按某种算法,从具备,从具备执行条件的进程中挑选一个进程占具处理器而执行。执行条件的进程中挑选一个进程占具处理器而执行。 进程在多道环境中运行时,其进程在多道环境中运行时,其活动状态会表现活动状态会表现出多样性出多样性。操作系统所完成的不同并发需求会产生。操作系统所完成的不同并发需求会产生不同的进程状态模型,根据进程的状态模型,操作不同的进程状态模型,根据进程的状态模型,操作系统会形成不同的并发管理方式系统会形成不同的并
35、发管理方式 。332 进程的基本状态进程的基本状态n就绪态(就绪态(ReadyReady):):就绪态是指就绪态是指进程已经分配到除进程已经分配到除CPUCPU之外的一切所需资源,一旦获得之外的一切所需资源,一旦获得CPUCPU便可立即投便可立即投入运行的状态入运行的状态。在一个系统中,可以有多个进程同。在一个系统中,可以有多个进程同时处于就绪状态,通常把这些进程排成一个或多个时处于就绪状态,通常把这些进程排成一个或多个队列,称这些队列为队列,称这些队列为就绪队列就绪队列(Ready ListReady List)。)。n执行态(执行态(RunningRunning):):执行态特指执行态特指
36、进程正占据着进程正占据着CPUCPU向前推进的状态向前推进的状态。只有就绪进程经过进程调度获得。只有就绪进程经过进程调度获得CPUCPU后方可转入执行态。在单后方可转入执行态。在单CPUCPU系统中,任一时刻系统中,任一时刻处于执行态的进程最多只能有一个。在没有其它进处于执行态的进程最多只能有一个。在没有其它进程可以运行时(如所有进程都处于阻塞态),通常程可以运行时(如所有进程都处于阻塞态),通常会自动执行系统的空闲进程。会自动执行系统的空闲进程。332 进程的基本状态进程的基本状态n阻塞态(阻塞态(BlockedBlocked):):阻塞态是指阻塞态是指进程因等待某事件进程因等待某事件(如请
37、求(如请求I/OI/O、请求调页、申请缓冲区等)的发生而、请求调页、申请缓冲区等)的发生而暂停执行的状态暂停执行的状态。进程在等待该事件发生的过程中。进程在等待该事件发生的过程中自动放弃自动放弃CPUCPU进入等待状态,因此也将进入等待状态,因此也将“阻塞阻塞”状态状态称为称为“等待等待”状态或状态或“睡眠睡眠”状态。一旦进程等待状态。一旦进程等待的事件发生,导致进程等待的原因消失,该进程将的事件发生,导致进程等待的原因消失,该进程将由由“阻塞阻塞”状态转变为状态转变为“就绪就绪”状态。某一时刻,状态。某一时刻,系统中可能会有多个进程因为不同的阻塞原因而陷系统中可能会有多个进程因为不同的阻塞原
38、因而陷入等待,为便于管理通常将这些进程按照不同的阻入等待,为便于管理通常将这些进程按照不同的阻塞原因链接成多个队列,称这些队列为塞原因链接成多个队列,称这些队列为阻塞队列阻塞队列。332 进程的基本状态进程的基本状态n进程状态转换图进程状态转换图时间片到或被抢占时间片到或被抢占进程调度进程调度I/O完成或事完成或事件发生件发生I/O请求或等请求或等待事件发生待事件发生结束结束332 进程的基本状态进程的基本状态n进程状态的转换:进程状态的转换:u就绪态就绪态执行态:执行态:处于就绪态的进程,当进程调处于就绪态的进程,当进程调度程序为之分配了处理器后,该进程便由就绪态度程序为之分配了处理器后,该
39、进程便由就绪态转换成执行态转换成执行态u执行态执行态就绪态:就绪态:处于执行态的进程在其执行过处于执行态的进程在其执行过程中,因分配给它的一个时间片已用完或被更高程中,因分配给它的一个时间片已用完或被更高优先级的进程抢占而不得不让出处理器,于是进优先级的进程抢占而不得不让出处理器,于是进程从执行态转换成就绪态。这时,原来占有处理程从执行态转换成就绪态。这时,原来占有处理器的进程将被中断。器的进程将被中断。 332 进程的基本状态进程的基本状态u执行态执行态阻塞态:阻塞态:正在执行的进程因等待某种事正在执行的进程因等待某种事件发生但尚未发生,或等待某个件发生但尚未发生,或等待某个I/OI/O完成
40、但尚未完成但尚未完成而无法继续执行时,便从执行态变成阻塞态。完成而无法继续执行时,便从执行态变成阻塞态。进程由执行态转换为阻塞态是进程自行启动的。进程由执行态转换为阻塞态是进程自行启动的。u阻塞态阻塞态就绪态:就绪态:处于阻塞态的进程,若其等待处于阻塞态的进程,若其等待的事件已经发生或的事件已经发生或I/OI/O已经完成,则进程由阻塞已经完成,则进程由阻塞态变为就绪态,称为态变为就绪态,称为“唤醒唤醒”。处于阻塞态的进处于阻塞态的进程是不能自己唤醒自己的,唤醒一定是由其它进程是不能自己唤醒自己的,唤醒一定是由其它进程启动的。程启动的。333 进程的挂起进程的挂起n进程的挂起:进程的挂起:挂起(
41、挂起(SuspendSuspend)是指使)是指使被挂起进程暂被挂起进程暂停活动的过程停活动的过程。 (1 1)若对一个当前执行进程实施挂起,则该进程将)若对一个当前执行进程实施挂起,则该进程将释放出释放出CPUCPU而暂停执行,并不能参与争夺而暂停执行,并不能参与争夺CPUCPU。 (2 2)若对一个处于就绪状态进程实施挂起,则该进)若对一个处于就绪状态进程实施挂起,则该进程将不能参与争夺程将不能参与争夺CPUCPU。 (3 3)若对一个处于阻塞状态进程实施挂起,则该进)若对一个处于阻塞状态进程实施挂起,则该进程不能直接进入就绪队列参与争夺程不能直接进入就绪队列参与争夺CPUCPU。 由此可
42、见,由此可见,被挂起的进程处于静止状态被挂起的进程处于静止状态,相应地,相应地,未未挂起进程处于活跃状态挂起进程处于活跃状态。进程一旦被挂起,一切活。进程一旦被挂起,一切活动都暂停,直到另一进程将其激活(动都暂停,直到另一进程将其激活(ActiveActive),该),该进程才能重新处于活跃状态。进程才能重新处于活跃状态。 333 进程的挂起进程的挂起n进程挂起的原因:进程挂起的原因:u系统有时可能系统有时可能出现故障或某些功能受到破坏出现故障或某些功能受到破坏。这时需。这时需要暂时挂起系统中的一些较为重要的进程,以便故障要暂时挂起系统中的一些较为重要的进程,以便故障消除后再将它们恢复到原来状
43、态。消除后再将它们恢复到原来状态。u一个交互式一个交互式用户对其进程的中间结果产生怀疑用户对其进程的中间结果产生怀疑,这时,这时用户可挂起他的进程,以便进行检查和改正;或用户用户可挂起他的进程,以便进行检查和改正;或用户为协调各子进程的活动而挂起某些子进程。为协调各子进程的活动而挂起某些子进程。u系统中有时系统中有时负荷过重,进程数量过多负荷过重,进程数量过多,资源数量相对,资源数量相对不足。此时需要不足。此时需要挂起一部分不太紧迫的进程挂起一部分不太紧迫的进程以便调整以便调整系统负荷,待系统中负荷减轻后再恢复被挂起进程的系统负荷,待系统中负荷减轻后再恢复被挂起进程的运行。运行。u为支持进程对
44、换,缓解内存紧张状况,可挂起一些暂为支持进程对换,缓解内存紧张状况,可挂起一些暂不具备运行条件的进程不具备运行条件的进程并将它们对换至外存上。并将它们对换至外存上。333 进程的挂起进程的挂起n具有挂起功能的进程状态转换图:具有挂起功能的进程状态转换图:创建创建激活激活挂起挂起挂起挂起挂起挂起激活激活唤醒唤醒调度调度终止终止请求请求I/O唤醒唤醒时间片到或被抢占时间片到或被抢占34 进程控制进程控制 进程控制的主要任务是对进程生命周期全过进程控制的主要任务是对进程生命周期全过程进行控制,实现进程状态的转换。程进行控制,实现进程状态的转换。进程控制由操进程控制由操作系统内核中的相应程序来实现作系
45、统内核中的相应程序来实现。为此,我们首先。为此,我们首先介绍操作系统内核,然后介绍操作系统内核为进程介绍操作系统内核,然后介绍操作系统内核为进程控制提供的原语。控制提供的原语。341 内核内核n 内核:内核:现代操作系统中,通常将现代操作系统中,通常将与硬件紧密相关的功与硬件紧密相关的功能模块能模块(诸如中断处理程序、各种常用设备的驱动程(诸如中断处理程序、各种常用设备的驱动程序等)、序等)、运行频率高的功能模块运行频率高的功能模块(诸如时钟管理、进(诸如时钟管理、进程调度等)以及程调度等)以及许多模块公用的一些基本操作许多模块公用的一些基本操作(诸如(诸如进进/ /出队列操作、进出队列操作、
46、进/ /出栈操作等)安排在靠近硬件的出栈操作等)安排在靠近硬件的低层次中,并使它们常驻内存以便提高操作系统的运低层次中,并使它们常驻内存以便提高操作系统的运行效率,且对它们加以特殊保护。通常将行效率,且对它们加以特殊保护。通常将操作系统的操作系统的这一常驻内存部分称为操作系统内核这一常驻内存部分称为操作系统内核。(。(KernelKernel)。)。341 内核内核n 内核支撑功能:内核支撑功能:u中断处理:中断处理:中断处理是操作系统内核提供的最基中断处理是操作系统内核提供的最基本的支撑功能。从根本上说,中断是操作系统运本的支撑功能。从根本上说,中断是操作系统运行的基础,操作系统的一切活动最
47、终都要依赖于行的基础,操作系统的一切活动最终都要依赖于中断处理的支撑,例如,中断处理的支撑,例如,进程调度、设备驱动、进程调度、设备驱动、I/OI/O过程控制、文件控制等都将基于中断处理才能过程控制、文件控制等都将基于中断处理才能实现。实现。u时钟管理:时钟管理:操作系统的许多活动都需要提供准确操作系统的许多活动都需要提供准确的时间,因此时钟管理也是必要的,它是操作系的时间,因此时钟管理也是必要的,它是操作系统内核提供的另一个支撑功能。例如,统内核提供的另一个支撑功能。例如,在典型的在典型的分时系统中,需要把握精确的时间;一个进程在分时系统中,需要把握精确的时间;一个进程在执行时,每用完一个时
48、间片,时钟管理将产生一执行时,每用完一个时间片,时钟管理将产生一个中断信号,重新启动进程调度。个中断信号,重新启动进程调度。341 内核内核u原语操作:原语操作:内核在执行某些基本操作时,为保证内核在执行某些基本操作时,为保证操作的效率和可靠性,往往利用原语操作来实现。操作的效率和可靠性,往往利用原语操作来实现。一般地,一般地,把在核心态下执行的某些具有特定功能把在核心态下执行的某些具有特定功能的程序段称为原语的程序段称为原语。其与一般过程的区别在于:。其与一般过程的区别在于:原语是原语是“原子操作原子操作”(Atomic OperationAtomic Operation)。即)。即原语中的
49、所有动作,要么全做,要么全不做。也原语中的所有动作,要么全做,要么全不做。也即即原语的执行具有不可分割性,作为原语的程序原语的执行具有不可分割性,作为原语的程序段不允许并发执行段不允许并发执行。342 微内核微内核n 微内核:微内核:在现代操作系统设计中在现代操作系统设计中一个突出的思想一个突出的思想是把是把操作系统中更多的代码放到更高层次操作系统中更多的代码放到更高层次用户层中。用户层中。通过对传统的内核模块进行分析,从中剥离出与硬件通过对传统的内核模块进行分析,从中剥离出与硬件无关的代码,从而使大部分操作系统成分和功能放到无关的代码,从而使大部分操作系统成分和功能放到用户模式中去运行,用户
50、模式中去运行,只留下完成操作系统最基本功能只留下完成操作系统最基本功能的小的内核的小的内核,其它功能均放到核外,通过调用小内核,其它功能均放到核外,通过调用小内核来实现,这一技术称为微内核(来实现,这一技术称为微内核(MicrokernelMicrokernel)技术。)技术。 342 微内核微内核n 微内核提供的服务:微内核提供的服务:u中断和异常处理机制;中断和异常处理机制;u进程间通信机制;进程间通信机制;u处理器调度机制;处理器调度机制;u有关服务功能的基本机制。有关服务功能的基本机制。 342 微内核微内核n 微内核的优点:微内核的优点:u简化了代码维护工作简化了代码维护工作 ;u减
51、少了系统崩溃的风险减少了系统崩溃的风险 ;u具有良好的兼容性具有良好的兼容性 ;u系统灵活性较好系统灵活性较好 。343 进程控制进程控制 进程控制由操作系统内核实现进程控制由操作系统内核实现 内核提供了内核提供了控制原语控制原语实现进程状态的转换,并实现进程状态的转换,并用用进程家族树进程家族树将多个进程组织在一起将多个进程组织在一起343 进程控制进程控制n 进程家族树:进程家族树:进程家族树是一种用于描述进程家族关进程家族树是一种用于描述进程家族关系的有向树,也称进程图(系的有向树,也称进程图(Process GraphProcess Graph)。343 进程控制进程控制n 进程控制原
52、语:进程控制原语:进程控制原语是对进程生命期和进程进程控制原语是对进程生命期和进程状态转换控制的原语。进程控制原语包括:状态转换控制的原语。进程控制原语包括:创建原语、创建原语、撤销原语、阻塞原语、唤醒原语、挂起原语、激活原撤销原语、阻塞原语、唤醒原语、挂起原语、激活原语等语等,它们控制进程从一种状态到另一种状态的转换。,它们控制进程从一种状态到另一种状态的转换。u创建原语:创建原语:一个进程在需要时可以建立一个新的一个进程在需要时可以建立一个新的进程。被创建的进程称为子进程,而建立者进程进程。被创建的进程称为子进程,而建立者进程称为父进程。称为父进程。进程只能由其父进程建立进程只能由其父进程
53、建立。 创建原语的主要功能是为创建原语的主要功能是为被创建进程创建一被创建进程创建一个个PCBPCB,并填入相应的初始值,并填入相应的初始值。返回进程内部标识号返回进程内部标识号 创建原语流图343 进程控制进程控制u撤销原语:撤销原语:当一个进程完成任务后,应将其撤当一个进程完成任务后,应将其撤消,以便及时释放它所占据的资源。消,以便及时释放它所占据的资源。撤消原语撤消原语是由其父进程发出的是由其父进程发出的,用以撤消它的一个子进,用以撤消它的一个子进程及该子进程的所有子孙进程。被撤消进程的程及该子进程的所有子孙进程。被撤消进程的所有系统资源(内存、外设)应全部释放出来所有系统资源(内存、外
54、设)应全部释放出来归还给系统,并将它们从所有队列中移出。如归还给系统,并将它们从所有队列中移出。如果被撤消进程正在处理器上运行,则要调用进果被撤消进程正在处理器上运行,则要调用进程调度程序将处理器分配给其它进程。程调度程序将处理器分配给其它进程。 撤消原语流图撤消原语流图343 进程控制进程控制u阻塞原语:阻塞原语:当前进程因请求某事件而不能继续当前进程因请求某事件而不能继续运行时,该进程将调用阻塞原语阻塞自己,暂运行时,该进程将调用阻塞原语阻塞自己,暂时放弃时放弃CPUCPU。进程阻塞是进程的自身行为进程阻塞是进程的自身行为。 算法步骤:算法步骤:1.1. 中断中断CPUCPU执行,将执行,
55、将CPUCPU的当前状态保存到的当前状态保存到PCBPCB的现场信的现场信息。息。 2. 2. 将进程的当前状态置为阻塞状态;将进程的当前状态置为阻塞状态;3. 3. 将进程的将进程的PCBPCB插入到该事件的阻塞队列中。插入到该事件的阻塞队列中。343 进程控制进程控制u唤醒原语:唤醒原语:当被阻塞进程所期待的事件发生时,当被阻塞进程所期待的事件发生时,则由则由相关进程相关进程调用唤醒原语,将等待该事件的调用唤醒原语,将等待该事件的进程唤醒。进程唤醒。u唤醒:唤醒:由系统进程或事件发生进程唤醒由系统进程或事件发生进程唤醒 算法步骤:算法步骤: 1. 1. 在阻塞队列中找到该进程,将其在阻塞队
56、列中找到该进程,将其P P的当前状的当前状态置为就绪;态置为就绪; 2. 2. 将进程从阻塞队列中撤消,并插入到就绪队列中。将进程从阻塞队列中撤消,并插入到就绪队列中。343 进程控制进程控制u挂起原语:挂起原语:当需要把某种进程置于挂起状态时可当需要把某种进程置于挂起状态时可调用挂起原语。调用挂起原语的进程调用挂起原语。调用挂起原语的进程只能挂起它只能挂起它自己或它的子孙进程自己或它的子孙进程,而不能挂起其它族系的进,而不能挂起其它族系的进程。程。算法步骤:算法步骤: 1. 1. 根据外部标识检索根据外部标识检索PCBPCB集,找到要挂起的集,找到要挂起的PCBPCB块;块; 2. 2. 检
57、查被挂进程的当前状态:检查被挂进程的当前状态: 执执 行行 态态 静止就绪,并转调度程序,重新调度。静止就绪,并转调度程序,重新调度。 活动就绪活动就绪 静止就绪静止就绪 活动阻塞活动阻塞 静止阻塞静止阻塞 343 进程控制进程控制u激活原语:激活原语:调用激活原语来恢复一个进程的活调用激活原语来恢复一个进程的活动状态是比较简单的。动状态是比较简单的。一个进程只能激活自己一个进程只能激活自己的子孙进程,的子孙进程,而不能激活别的族系的进程。而不能激活别的族系的进程。 算法步骤:算法步骤: 1. 1. 检查被挂进程的当前状态:检查被挂进程的当前状态: 2. 2. 将进程从相应的静止状态将进程从相
58、应的静止状态 活动状态。活动状态。35 线程线程 线程(线程(threadthread)是近年来在操作系统领域出)是近年来在操作系统领域出现的一个非常重要的技术,其重要性一点也不亚现的一个非常重要的技术,其重要性一点也不亚于进程。线程机制带来了于进程。线程机制带来了提高系统执行效率提高系统执行效率、改改善并发度、减少处理器空转时间善并发度、减少处理器空转时间等诸多好处,所等诸多好处,所以当代操作系统,如以当代操作系统,如WindowsWindows、MachintoshMachintosh、LinuxLinux、UNIXUNIX、Sun OS 4.xSun OS 4.x等,均支持线程机制。等,
59、均支持线程机制。351 线程引入线程引入n 进程的基本属性:进程的基本属性:u进程是一个拥有资源的独立单位进程是一个拥有资源的独立单位 :这导致在创建、这导致在创建、撤消进程时,需要撤消进程时,需要花费大量的花费大量的CPUCPU时间为其分配和时间为其分配和回收资源回收资源,系统为之需付出较大的时空开销。,系统为之需付出较大的时空开销。u进程是一个可以独立调度和分派的基本单位进程是一个可以独立调度和分派的基本单位 :每每个进程都个进程都拥有自己私有的虚地址空间和大量的拥有自己私有的虚地址空间和大量的CPUCPU现场现场,不但寄存器和堆栈是独有的,静态数据区,不但寄存器和堆栈是独有的,静态数据区
60、和程序代码也相互独立。这不仅使得进程间的耦和程序代码也相互独立。这不仅使得进程间的耦合关系差,并发粒度过于粗糙,也导致合关系差,并发粒度过于粗糙,也导致进程切换进程切换时为保存这些运行环境要花费大量的时空开销。时为保存这些运行环境要花费大量的时空开销。351 线程引入线程引入n 引入线程的原因:引入线程的原因:基于进程的两个基本属性可知,系基于进程的两个基本属性可知,系统管理和控制进程的开销较大。也正因为如此,在系统管理和控制进程的开销较大。也正因为如此,在系统中设置的统中设置的进程数目不宜过多,进程切换的频率也不进程数目不宜过多,进程切换的频率也不宜过高宜过高,但这也就限制了系统并发程度的进
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 个人生活隐秘信息保护承诺书(4篇)
- 健康管理团队专业保证承诺书8篇
- 湖北省云学名校联盟2024-2025学年高二上学期10月月考地理试题(解析版)
- 人力资源招聘面试流程及问题清单
- 2025内蒙古赤峰穆香源肉类食品有限公司招聘考前自测高频考点模拟试题及一套答案详解
- 2025广西大岭乡储备村“两委”后备人才80人模拟试卷及答案详解(必刷)
- 2025江苏无锡市宜兴市教育系统招聘事业编制乡村教师定向师范生60人考前自测高频考点模拟试题及答案详解(名校卷)
- 租房培训用电知识课件
- 2025广东深圳长虹聚和源科技有限公司招聘业务经理岗位人员模拟试卷(含答案详解)
- 2025年甘肃庆阳庆城县事业单位引进高层次和急需紧缺人才(第三批)考前自测高频考点模拟试题及1套完整答案详解
- 血常规检验质量控制和注意事项
- zippo稀有品系列图鉴
- SGS公司MSA模板 五性分析
- 硬笔书法课讲义课件
- 工程公司“十四五”发展战略规划(专业完整模板)
- GB/T 5013.3-2008额定电压450/750V及以下橡皮绝缘电缆第3部分:耐热硅橡胶绝缘电缆
- GB/T 25728-2010粮油机械气压磨粉机
- UPW系统介绍(培训学习资料)解析课件
- 轮机英语(新版)
- 后的英雄-中国远征军
- 不宁腿综合征诊断与治疗
评论
0/150
提交评论