《OS3处理机管理》由会员分享,可在线阅读,更多相关《OS3处理机管理(90页珍藏版)》请在金锄头文库上搜索。
1、操作系统Operating System第第3章章处理机管理处理机管理本章重点q进程的概念、特征进程的概念、特征q进程控制、进程调度、进程同步与互斥进程控制、进程调度、进程同步与互斥q死锁问题死锁问题主要内容主要内容q3.1进程的定义和特征进程的定义和特征q3.2进程的描述进程的描述q3.3进进程程控控制制q3.4进程调度进程调度q3.5进程的同步与互斥进程的同步与互斥q3.6线线程程q3.7死死锁锁问问题题q处理器处理器(CPU)是程序的执行机构,用户要求计算是程序的执行机构,用户要求计算机完成一项作业,首先必须将作业程序调入内存,机完成一项作业,首先必须将作业程序调入内存,再由处理器逐条执
2、行程序指令再由处理器逐条执行程序指令q处理器管理就是要处理器管理就是要解决用户提交的作业何时调入解决用户提交的作业何时调入内存,在调入内存的各个作业程序间如何分配处内存,在调入内存的各个作业程序间如何分配处理器,以达到各道程序能协调一致运行,而系统理器,以达到各道程序能协调一致运行,而系统资源又能得到最大程度的利用资源又能得到最大程度的利用.3.1 进程的定义和特征 q3.3.1.进程的引入进程的引入1)多道程序系统)多道程序系统中允许多道程序存放在内存中,中允许多道程序存放在内存中,并在系统中同时处于运行状态。这些并行执行的程并在系统中同时处于运行状态。这些并行执行的程序之间存在着相互依赖、
3、相互制约的关系。序之间存在着相互依赖、相互制约的关系。另外,不论是系统程序还是用户程序,由于它另外,不论是系统程序还是用户程序,由于它们并行地在着系统中运行,并且有着各种复杂的制们并行地在着系统中运行,并且有着各种复杂的制约关系,所以它们在系统内部所处的状态不断发生约关系,所以它们在系统内部所处的状态不断发生变化,变化,时而在时而在CPU上执行,时而因某种原因被暂停上执行,时而因某种原因被暂停执行。执行。由于在这样一个多道程序系统所带来的复杂由于在这样一个多道程序系统所带来的复杂环境中,使程序具有了并行、制约和动态的特性,环境中,使程序具有了并行、制约和动态的特性,使得原来的程序难以刻划和反映
4、系统中的每一瞬间使得原来的程序难以刻划和反映系统中的每一瞬间的状况。因此,需要引进一个新的概念的状况。因此,需要引进一个新的概念进程进程。q2 2)程序和机器执行程序的活动是两个概念。程序)程序和机器执行程序的活动是两个概念。程序是指令的有序集合,是是指令的有序集合,是静态静态的概念,而机器执行的概念,而机器执行程序的活动是指指令序列在处理机上的执行过程,程序的活动是指指令序列在处理机上的执行过程,或处理机按照程序执行指令序列的过程。而且由或处理机按照程序执行指令序列的过程。而且由于竞争资源等其他因素,程序执行时走走停停,于竞争资源等其他因素,程序执行时走走停停,具有具有“执行执行暂停暂停执行
5、执行”的活动规律。的活动规律。所以就所以就无法用无法用“程序程序”这个静态的概念来描述程序运行这个静态的概念来描述程序运行的过程,为此,引入了一个新的一个动态的概念的过程,为此,引入了一个新的一个动态的概念“进程进程”q2 2进程的定义进程的定义(1) (1) 进程是程序的一次执行。进程是程序的一次执行。(2) (2) 进程是可以和别的计算并发执行的计算。进程是可以和别的计算并发执行的计算。(3) (3) 进进程程是是一一个个具具有有一一定定独独立立功功能能的的程程序序在在某某个个数数据据集集上上的的一一次执行活动,它可以和同样的其它程序共行。次执行活动,它可以和同样的其它程序共行。(4) (
6、4) 进进程程是是一一个个程程序序及及数数据据在在处处理理机机上上顺顺序序执执行行时时所所发发生生的的活活动。动。(5) (5) 进进程程是是程程序序在在一一个个数数据据集集上上的的运运行行过过程程,是是系系统统可可调调度度的的实体。实体。据据此此,我我们们可可把把“进进程程”定定义义为为“可可与与其其它它程程序序并并发发执执行行的的程序在一个数据集上的执行过程程序在一个数据集上的执行过程”。q3进程的特征进程的特征(1)动态性动态性进程是进程实体的执行过程,因此,动态性是进程的最基本进程是进程实体的执行过程,因此,动态性是进程的最基本特征。动态性还表现为进程由创建而产生,由调度而执行,特征。
7、动态性还表现为进程由创建而产生,由调度而执行,因得不到资源而暂停,因撤消而消亡。可见,进程是有生命因得不到资源而暂停,因撤消而消亡。可见,进程是有生命期的。而程序只是存放在某种介质上的一组有序指令的集合,期的。而程序只是存放在某种介质上的一组有序指令的集合,本身并无运动的含意,程序只是个静态实体。本身并无运动的含意,程序只是个静态实体。(2)并发性并发性这是指多个进程实体同时存在于系统中,并能在一段时间内这是指多个进程实体同时存在于系统中,并能在一段时间内同时执行,并发性是进程最重要的特征,同时也是操作系统同时执行,并发性是进程最重要的特征,同时也是操作系统的重要特征。的重要特征。(3)独立性
8、独立性这是指进程实体是一个能够独立运行的基本单位,同时也这是指进程实体是一个能够独立运行的基本单位,同时也是系统中独立获得资源和独立调度的基本单位。是系统中独立获得资源和独立调度的基本单位。(4)异步性异步性这是指进程按各自独立的不可预知的速度向前推进,或者这是指进程按各自独立的不可预知的速度向前推进,或者说,进程按异步方式运行。这是由于进程间共享资源和协说,进程按异步方式运行。这是由于进程间共享资源和协同合作时带来了相互间制约的关系,造成进程执行的间断同合作时带来了相互间制约的关系,造成进程执行的间断性。性。(5)结构特性结构特性从结构上看,进程实体是由程序段、数据段及进程控制块从结构上看,
9、进程实体是由程序段、数据段及进程控制块3部分组成,也可把这部分组成,也可把这3部分称为部分称为“进程映象进程映象”。返回本节返回本节进程与程序的区别与联系q进程是程序的一次执行,是一个进程是程序的一次执行,是一个动态动态的概念,程的概念,程序是完成某个特定功能的指令的有序序列,是一序是完成某个特定功能的指令的有序序列,是一个个静态静态的概念的概念q进程和程序不再是一一对应关系。进程和程序不再是一一对应关系。q进程是系统进行资源分配和调度的一个独立单位,进程是系统进行资源分配和调度的一个独立单位,程序则不是程序则不是q程序可以作为一种软件资源长期保存,而进程是程序可以作为一种软件资源长期保存,而
10、进程是程序的一次执行过程,它是临时的,有生命期的程序的一次执行过程,它是临时的,有生命期的q进程是具有结构的进程是具有结构的3.2进程的描述进程的描述q3.2.1.进程的表示进程的表示(1)进程实体的进程实体的组成组成(2)进程控制块进程控制块(PCB)为描述进程的动态变化,为描述进程的动态变化,便于系统对进程进行有便于系统对进程进行有效地控制和管理,系统效地控制和管理,系统中为每一进程设置了一个进程控制块。进程控制中为每一进程设置了一个进程控制块。进程控制块是进程存在的唯一标志。创建一个进程就是为块是进程存在的唯一标志。创建一个进程就是为其建立一个其建立一个PCB,当进程被撤消时,系统就回收
11、,当进程被撤消时,系统就回收它的它的PCB。PCB程序段数据集内容回顾q进程的引入进程的引入程序的并发执行使得程序之间相互制约,程序程序的并发执行使得程序之间相互制约,程序的执行并不是一气呵成,而是以一种的执行并不是一气呵成,而是以一种“执行执行-暂停暂停-执行执行”的状态执行。对于这种动态的执行状态,的状态执行。对于这种动态的执行状态,用已不能用程序这一静态的概念来描述其具体执用已不能用程序这一静态的概念来描述其具体执行过程,因此引入新的概念行过程,因此引入新的概念进程。进程。q进程的定义进程的定义 可与其它程序并发执行的程序在一个数据集上可与其它程序并发执行的程序在一个数据集上的执行过程的
12、执行过程q进程的特点:进程的特点:动态、并发、独立、异步、结构特征动态、并发、独立、异步、结构特征(1)进程的基本调度状态进程的基本调度状态进程有进程有3种基本调度状态,具体说明如下。种基本调度状态,具体说明如下。执行状态执行状态(executing)。进程已获得必要的资源,并已占。进程已获得必要的资源,并已占有处理机,在其上执行该进程的程序。有处理机,在其上执行该进程的程序。就绪状态就绪状态(ready)。进程本身已具备了执行条件,即已获。进程本身已具备了执行条件,即已获得除得除CPU之外其它所必需的资源,而正在之外其它所必需的资源,而正在等待分配处理机等待分配处理机。有时也称此状态为可执行
13、状态。有时也称此状态为可执行状态。阻塞状态阻塞状态(blocked)。进程因等待资源或等待某一事件。进程因等待资源或等待某一事件(如如某一某一I/O操作完成操作完成)而处于不可执行的状态,也可以说,进而处于不可执行的状态,也可以说,进程本身的程本身的执行条件不满足执行条件不满足,即使为它分配,即使为它分配CPU也不能在其也不能在其上执行。上执行。3.2.2. 进程的基本调度状态及其转换q(2)进程状态间的转换进程状态间的转换图图3. .5进程状态的转换进程状态的转换创建创建就绪就绪阻塞阻塞执行执行终止终止进程创建进程创建I/O完成或事件发生完成或事件发生进程调度进程调度抢占抢占进程完成进程完成
14、I/O请求或等待某事件请求或等待某事件(时间片用完)(时间片用完)返回本节返回本节进程调度状态转换就绪就绪运行运行阻塞阻塞作业管理作业管理进程调度进程调度I/O要求要求I/O完成完成时间到时间到完成完成q在单处理器系统中,任何时刻只有一个在单处理器系统中,任何时刻只有一个进程处于运行状态,其他进程分别处于进程处于运行状态,其他进程分别处于就绪或阻塞状态就绪或阻塞状态q为了调度方便,通常将处于就绪进程的为了调度方便,通常将处于就绪进程的PCB(进程控制块)(进程控制块)构成一就绪队列构成一就绪队列q按各种阻塞原因的按各种阻塞原因的PCB构成多个阻塞构成多个阻塞队列队列(三个基本状态之间可能转换和
15、转换原因如下:三个基本状态之间可能转换和转换原因如下:l就绪态就绪态执行态执行态:当处理机空闲时,进程调:当处理机空闲时,进程调度程序必将处理机分配给一个处于就绪态的进程度程序必将处理机分配给一个处于就绪态的进程 ,该进程便由就绪态转换为执行态。,该进程便由就绪态转换为执行态。l执行态执行态阻塞态阻塞态:处于执行态的进程在运行:处于执行态的进程在运行过程中需要等待某一事件发生后(例如因过程中需要等待某一事件发生后(例如因I IO O请请求等待求等待I IO O完成后),才能继续运行,则该进程完成后),才能继续运行,则该进程放弃处理机,从执行态转换为阻塞态。放弃处理机,从执行态转换为阻塞态。返回
16、本节目录返回本节目录l阻塞态阻塞态就绪态就绪态:处于阻塞态的进程,若其等待的:处于阻塞态的进程,若其等待的事件已经发生,于是进程由阻塞态转换为就绪态。事件已经发生,于是进程由阻塞态转换为就绪态。l执行态执行态就绪态就绪态:处于执行状态的进程在其运行过:处于执行状态的进程在其运行过程中,因分给它的处理机时间片已用完,而不得不让出程中,因分给它的处理机时间片已用完,而不得不让出(被抢占)处理机,于是进程由执行态转换为就绪态。(被抢占)处理机,于是进程由执行态转换为就绪态。q而而阻塞态阻塞态执行态和就绪态执行态和就绪态阻塞态阻塞态这二种状这二种状态转换不可能发生。态转换不可能发生。q处于执行态进程处
17、于执行态进程: :如系统有一个处理机,则在任何一时如系统有一个处理机,则在任何一时刻,最多只有一个进程处于执行态。刻,最多只有一个进程处于执行态。q处于就绪态进程处于就绪态进程: :一般处于就绪态的进程按照一定的算一般处于就绪态的进程按照一定的算法(如先来的进程排在前面,或采用优先权高的进程排法(如先来的进程排在前面,或采用优先权高的进程排在前面)排成一个就绪队列。在前面)排成一个就绪队列。q处于阻塞态进程处于阻塞态进程: :处于阻塞态的进程排在阻塞队列中。处于阻塞态的进程排在阻塞队列中。由于等待事件原因不同,阻塞队列也按事件分成几个队由于等待事件原因不同,阻塞队列也按事件分成几个队列。列。(
18、例:一个只有一个处理机的系统中,例:一个只有一个处理机的系统中,OSOS的进程有执行、的进程有执行、就绪、阻塞三个基本状态。假如某时刻该系统中有就绪、阻塞三个基本状态。假如某时刻该系统中有1010个个进程并发执行,在略去调度程序所占用时间情况下试问:进程并发执行,在略去调度程序所占用时间情况下试问:这时刻系统中处于执行态的进程数最多有几个?最少这时刻系统中处于执行态的进程数最多有几个?最少有几个?有几个?这时刻系统中处于就绪态的进程数最多有几个?最少这时刻系统中处于就绪态的进程数最多有几个?最少有几个?有几个?这时刻系统中处于阻塞态的进程数最多有几个?最少这时刻系统中处于阻塞态的进程数最多有几
19、个?最少有几个?有几个?q解:因为系统中只有一个处理机,所以某时刻处于执行解:因为系统中只有一个处理机,所以某时刻处于执行态的进程数最多只有一个。而最少可能为态的进程数最多只有一个。而最少可能为0 0,此时其它,此时其它1010个进程一定全部排在各阻塞队列中,在就绪队列中没个进程一定全部排在各阻塞队列中,在就绪队列中没有进程。而某时刻处于就绪态的进程数最多只有有进程。而某时刻处于就绪态的进程数最多只有9 9个,个,不可能出现不可能出现1010个情况,因为一旦个情况,因为一旦CPUCPU有空,调度程序马有空,调度程序马上调度,当然这是在略去调度程序调度时间时考虑。处上调度,当然这是在略去调度程序
20、调度时间时考虑。处于阻塞态的进程数最少是于阻塞态的进程数最少是0 0个。个。3.3进进程程控控制制q进程控制的作用进程控制的作用是对系统中的全部进程实是对系统中的全部进程实行有效的管理,主要表现在对一个进程进行创行有效的管理,主要表现在对一个进程进行创建、撤消以及在某些进程状态间的转换控制。建、撤消以及在某些进程状态间的转换控制。返回本章首页返回本章首页q通常允许一个进程创建和控制另一个进程,前者通常允许一个进程创建和控制另一个进程,前者称为父进程,后者称为子进程。创建父进程的进称为父进程,后者称为子进程。创建父进程的进程称为祖父进程。子进程又可创建孙进程,从而程称为祖父进程。子进程又可创建孙
21、进程,从而形成一个形成一个树型结构的进程家族树型结构的进程家族,如图,如图3.7所示。所示。q 作业管理进程作业管理进程用户作业进程用户作业进程输入进程输入进程用户进程用户进程用户进程用户进程用户进程用户进程输出进程输出进程图图3. .7进程家族示例进程家族示例q在操作系统中,进程之间的控制就是通过在操作系统中,进程之间的控制就是通过进程控进程控制原语制原语来实现的。来实现的。q原语原语:原语通常由若干条指令所组成,用来实现:原语通常由若干条指令所组成,用来实现某个特定的操作。通过一段某个特定的操作。通过一段不可分割不可分割的或的或不可中不可中断断的程序实现其功能。的程序实现其功能。进程控制原
22、语(了解)1创建原语创建原语按按调用者提供的参数,构成该进程的调用者提供的参数,构成该进程的PCB2阻塞原语阻塞原语中断该进程的运行,把中断该进程的运行,把PCB中的转态改为阻塞状态。中的转态改为阻塞状态。3激活原语激活原语把某阻塞进程置为就绪状态,等待分配把某阻塞进程置为就绪状态,等待分配CPU。4。撤消原语。撤消原语停停止止该该进进程程的的运运行行,释释放放它它所所占占有有的的所所有有资资源源,删删除除该该进进程程的的PCB内容回顾q进程的基本状态进程的基本状态q进程状态之间的转换进程状态之间的转换q原语原语:若干条指令所组成,用来实现某个特定的操作。若干条指令所组成,用来实现某个特定的操
23、作。抢占抢占就绪就绪阻塞阻塞执行执行I/O完成或事件发生完成或事件发生进程调度进程调度I/O请求或等待某事件请求或等待某事件(时间片用完)(时间片用完)习题习题1.在操作系统中进程是一个具有一定独立功能的程序在某个数据在操作系统中进程是一个具有一定独立功能的程序在某个数据集合上的一次集合上的一次A A,进程是一个进程是一个B B概念,而程序概念,而程序是一个是一个C C的概念。在一单处理机中,若有的概念。在一单处理机中,若有5 5个用户进程,个用户进程,在某一时刻,处于就绪状态的用户进程最多有在某一时刻,处于就绪状态的用户进程最多有D D个,个,最少有最少有E E个。个。 A A:(1)(1)
24、并发活动;并发活动;(2)(2)运行活动;运行活动;(3)(3)单独操作;单独操作;(4)(4)关联操作。关联操作。 B B,C C:(1)(1)组合态;组合态;(2)(2)关联态;关联态;(3)(3)运行态;运行态;(4)(4)等待态;等待态;(5)(5)静静态;态;(6)(6)动态。动态。 D D,E E:(1)1(1)1;(2)2(2)2;(3)3(3)3;(4)4(4)4;(5)5(5)5;(6)0(6)0。习题习题-22. .从从静静态态角角度度看看,进进程程由由A A、B B和和C C三三部部分分组组成成,用用户户可可通通过过D D建建立立和和撤撤消消进进程程,通通常常用用户户进进
25、程程被被建建立立后后,变变处处于于E E状态。状态。 A A:(1)JCB(1)JCB;(2)DCB(2)DCB;(3)PCB(3)PCB;(4)PMT(4)PMT。 B: (1) B: (1)程序段;程序段;(2)(2)文件体;文件体;(3)(3)I/OI/O;(4)(4)子程序。子程序。 C C:(1)(1)文件描述块;文件描述块;(2)(2)数据;数据;(3)(3)EOFEOF;(4)I/O(4)I/O缓冲缓冲区。区。 D D:(1) (1) 函数调用;函数调用;(2)(2)宏指令;宏指令;(3)(3)原语;原语;(4)(4)过程过程调用。调用。 E: (1)E: (1)运行状态运行状态
26、(2)(2)就绪状态就绪状态(3)(3)阻塞状态阻塞状态3.4进程调度进程调度q进程调度的基本概念进程调度的基本概念进程调度也可被称为处理机调度,它进程调度也可被称为处理机调度,它协调和控制协调和控制各进程对各进程对CPU的使用的使用。相应的进程调度程序叫分。相应的进程调度程序叫分派程序或低级调度程序。一旦作业调度程序选择派程序或低级调度程序。一旦作业调度程序选择了一个作业集合来运行,系统就要为作业建立起了一个作业集合来运行,系统就要为作业建立起一组进程,这组进程协同运行,以便共同完成该一组进程,这组进程协同运行,以便共同完成该作业的计算任务。这样,在系统中就存在许多进作业的计算任务。这样,在
27、系统中就存在许多进程,而这些进程具有获得使用处理机的可能性,程,而这些进程具有获得使用处理机的可能性,它们同时在等待获得处理机的执行时间,进程调它们同时在等待获得处理机的执行时间,进程调度的职能度的职能就是动态且合理地把处理机分配给就绪就是动态且合理地把处理机分配给就绪队列中的某一进程,并使该进程投入运行队列中的某一进程,并使该进程投入运行。进程调度程序的职能:进程调度程序的职能:(1)记录系统中所有进程的有关情况。)记录系统中所有进程的有关情况。(2)确定分配处理机的原则。)确定分配处理机的原则。(3)分配处理机给进程。)分配处理机给进程。(4)从进程收回处理机。)从进程收回处理机。返回本节
28、目录返回本节目录 PCBPCB的组织形式的组织形式 方法有三:方法有三: (1 1)线性表:简单,但进程多时查找速度慢!)线性表:简单,但进程多时查找速度慢! (2 2)链接表:相同状态的进程)链接表:相同状态的进程PCBPCB按优先数排成一按优先数排成一个或多个队列,如就绪队列,不同事件的阻塞队列个或多个队列,如就绪队列,不同事件的阻塞队列3.4.2进程调度所用的主要数据结构进程调度所用的主要数据结构 链接表组织方式进程调度的方式q调度类型:调度类型:1.高级调度(作业调度)高级调度(作业调度)2.低级调度(进程调度)低级调度(进程调度)q进程调度的方式:进程调度的方式:剥夺式调度剥夺式调度
29、:当系统按照某种原则发现一个比现运:当系统按照某种原则发现一个比现运行行进程更合适、更应该占有进程更合适、更应该占有CPU的进程时,系统将的进程时,系统将强迫处于运行状态的进程将强迫处于运行状态的进程将CPU的使用权交给这个的使用权交给这个更适合的进程。更适合的进程。非剥夺式调度非剥夺式调度:一旦某个进程占用了:一旦某个进程占用了CPU,除非是除非是由于它自身原因自动放弃由于它自身原因自动放弃CPU,否则它将一直运行否则它将一直运行下去直到完成下去直到完成1先来先服务First-Come-First-Served (FCFS) 这这种种调调度度算算法法按按照照进进程程进进入入就就绪绪队队列列的
30、的先先后后顺顺序序来来调调度度进进程程,到到达达得得越越早早,其其优优先先数数越越高高。获获得得处处理理机机的的进进程程,未未遇遇到到其其他他情情况况时时,一一直直运运行行下下去去,系系统统只只需需具具备备一一个个先先进进先先出出的的队队列列,在在管管理理优优先先数数的的就就绪绪队队列列时时,这这种种方方法法是是一一种种最最常常见见策策略略,并并且且在在没没有有其其他他信信息息时时,也也是是一一种最合理的策略。种最合理的策略。下一页下一页3.4.4 进程调度算法2轮转调度轮转调度先先来来先先服服务务的的一一个个重重要要变变形形,就就是是轮轮转转规规则则。轮轮转转调调度度算算法法是是系系统统把把
31、所所有有就就绪绪进进程程按按先先后后次次序序排排队队,处处理理机机总总是是优优先先分分配配给给就就绪绪队队列列中中的的第第一一个个就就绪绪进进程程,并并分分配配它它一一个个固固定定的的时时间间片片(如如100毫毫秒秒)。当当该该运运行行进进程程用用完完规规定定的的时时间间片片时时,被被迫迫释释放放处处理理机机给给下下一一个个处处于于就就绪绪队队列列中中的的第第一一个个进进程程,分分给给这这个个进进程程相相同同的的时时间间片片,每每个个运运行行完完时时间间片片的的进进程程,当当未未遇遇到到任任何何阻阻塞塞时时,就就回回到到就就绪绪队队列列的的尾尾部部,并并等等待待下下次次转转到到它它时时再再投投
32、入入运运行行。于于是是,只只要要是是处处于于就就绪绪队队列列中中的的进进程程,按按此此种种算算法法迟迟早早总总可以分得处理机投入运行。可以分得处理机投入运行。下一页下一页3分级轮转法分级轮转法所谓分级轮转法就是将先前的一个就绪队列,所谓分级轮转法就是将先前的一个就绪队列,根据进程的优先数不同划分两个或两个以上的就根据进程的优先数不同划分两个或两个以上的就绪队列,并赋给每个队列不同的优先数。以两个绪队列,并赋给每个队列不同的优先数。以两个就绪队列为例,一个具有较高优先数,另一个具就绪队列为例,一个具有较高优先数,另一个具有较低优先数,前者称为前台队列,后者称为后有较低优先数,前者称为前台队列,后
33、者称为后台队列。台队列。下一页下一页在多道程序的环境中,系统中的多个进程可以并发在多道程序的环境中,系统中的多个进程可以并发执行,同时它们又要共享系统中的资源,这些资源有执行,同时它们又要共享系统中的资源,这些资源有些是可共享使用的,如磁盘,有些是以独占方式使用些是可共享使用的,如磁盘,有些是以独占方式使用的,如打印机。由此将会引起一系列的矛盾,产生错的,如打印机。由此将会引起一系列的矛盾,产生错综复杂的相互制约的关系。综复杂的相互制约的关系。产生这种错综复杂的相互制约关系的原因有二:产生这种错综复杂的相互制约关系的原因有二:资源共享资源共享间接制约关系间接制约关系进程合作进程合作直接制约关系
34、直接制约关系3.5进程间的同步和互斥进程间的同步和互斥q一个进程到达了某点后,除非另一进程已完成某一个进程到达了某点后,除非另一进程已完成某些操作,否则就不得不停下来等待这些操作的结些操作,否则就不得不停下来等待这些操作的结束。这就是束。这就是进程间的同步进程间的同步。1.进程间的同步进程间的同步 正常行车正常行车到站停车到站停车开车开车司机司机售票员售票员售票售票开车门开车门关车门关车门汽车司机和售票员之间的同步关系汽车司机和售票员之间的同步关系YN进程进程P2算完算完func2(y)取用取用P2计算结果计算结果进程进程P1计算计算func1(x)进程进程P2终止终止计算计算func2(y)
35、置计算完标志置计算完标志进程进程P1和和P2之间的同步之间的同步q在各协同工作的进程之间存在着同步关系,但进程之间在各协同工作的进程之间存在着同步关系,但进程之间更为一般的关系却是互斥关系。这是由于进程在运行过更为一般的关系却是互斥关系。这是由于进程在运行过程中因程中因争夺资源争夺资源所引起的。所引起的。 例如,有两个进程例如,有两个进程P1、P2,它们都要使用打印机,它们都要使用打印机,如果让它们随意使用,那么就有可能出现如果让它们随意使用,那么就有可能出现P1打印几行打印几行P2再打印几行的结果导致打印出来的内容混在一起,再打印几行的结果导致打印出来的内容混在一起,很难区分,即使能够区分,
36、也要将各自输出的结果从打很难区分,即使能够区分,也要将各自输出的结果从打印纸上剪下来,再用浆糊粘接起来。印纸上剪下来,再用浆糊粘接起来。 解决这一问题的办法是,不允许一台打印机让两个进解决这一问题的办法是,不允许一台打印机让两个进程同时使用,应在一个进程用完后再让另一进程使用。程同时使用,应在一个进程用完后再让另一进程使用。由此可见,系统中存在许多进程,它们共享各种资源。由此可见,系统中存在许多进程,它们共享各种资源。然而有很多资源一次只能供一个进程使用。然而有很多资源一次只能供一个进程使用。2. 进程间的互斥临界资源临界资源:某段时间仅允许一个进程使用的资源称为临界:某段时间仅允许一个进程使
37、用的资源称为临界资源。资源。宿舍电话宿舍电话打印机打印机 电话和打印机都属于临界资源。除此之外,还有电话和打印机都属于临界资源。除此之外,还有内存变内存变量、指针、数组量、指针、数组等等也是临界资源。等等也是临界资源。两个或两个以上的进程不能同时使用同一临界资源,只能两个或两个以上的进程不能同时使用同一临界资源,只能一个进程使用完毕后,另一进程才能使用,这种现象称为一个进程使用完毕后,另一进程才能使用,这种现象称为进程互斥进程互斥。几个进程若共享同一临界资源,它们必须以几个进程若共享同一临界资源,它们必须以互斥互斥的方式使用这个临界资源,即当一个进程正的方式使用这个临界资源,即当一个进程正在使
38、用临界资源且尚未使用完毕时,则其他进程在使用临界资源且尚未使用完毕时,则其他进程必须推迟对该资源的进一步操作,必须推迟对该资源的进一步操作,进程互斥P1:R1:=COUNT;R1:=R1+1;COUNT:=R1;其中其中R1,R2属于两个通用寄存器。属于两个通用寄存器。并发执行的两程序可能是以下执行顺序:并发执行的两程序可能是以下执行顺序:P1:R1:=COUNT;P2:R2:=COUNT;P1:R1:=R1+1;COUNT:=R1;P2:R2:=R2+1;COUNT:=R2;P2:R2:=COUNT;R2:=R2+1;COUNT:=R2;临界区临界区( (critical section)
39、) 每个进程中访问临界资源的那段程序每个进程中访问临界资源的那段程序段称为相对于临界资源的临界区。段称为相对于临界资源的临界区。因为各进程对临界资源的因为各进程对临界资源的使用是采用互斥方式的,使用是采用互斥方式的,所以访问临界资源的进程所以访问临界资源的进程必须必须互斥互斥的进入各自的临的进入各自的临界区。界区。这这种种方方法法使使用用了了一一个个物物理理实实体体,称称为为锁锁,用用W来来表表示示,锁锁有有两种状态,两种状态,W=0表示锁已打开;表示锁已打开;W=1表示锁被关闭。表示锁被关闭。加锁原语用加锁原语用LOCK(W)表示,其操作为:表示,其操作为:测测试试W,若若W=1,表表示示资
40、资源源正正在在使使用用,继继续续反反复复测测试试;若若W=0,置置W=1(加锁加锁)。加锁原语用加锁原语用LOCK(W)可描述为可描述为L:ifW=1thengotoLelseW:=1;开锁原语用开锁原语用UNLOCK(W)表示,可描述为表示,可描述为W:=0;3.实现临界区互斥的锁操作法实现临界区互斥的锁操作法 两个进程两个进程P1P1、P2P2使用如下程序实施进程的互斥:使用如下程序实施进程的互斥: 进程进程P1 P1 进程进程P2P2 LOCK(W) LOCK(W) LOCK(W) LOCK(W) S S1/1/进入临界区进入临界区 S S2 /2 /进入临界区进入临界区 UNLOCK(
41、W) UNLOCK(W) UNLOCK(W) UNLOCK(W)其中其中S1和和S2分别为进程分别为进程P1和和P2的临界区。的临界区。知识回顾q进程的关系:进程的关系:同步和互斥同步和互斥q临界资源临界资源临界区临界区因为各进程对临界资源的使用是采用因为各进程对临界资源的使用是采用互斥互斥方式方式的,所以访问临界资源的进程必须的,所以访问临界资源的进程必须互斥互斥的进入各的进入各自的临界区。自的临界区。z19651965年,荷兰学者年,荷兰学者DijkstraDijkstra提出的信号量机制是一种提出的信号量机制是一种卓有成效的进程同步工具,在长期广泛的应用中,信号卓有成效的进程同步工具,在
42、长期广泛的应用中,信号量机制又得到了很大的发展,它从整型信号量机制发展量机制又得到了很大的发展,它从整型信号量机制发展到记录型信号量机制,进而发展为到记录型信号量机制,进而发展为“信号集信号集”机制。现机制。现在在信号量机制已广泛应用于信号量机制已广泛应用于OSOS中。中。z信号灯的使用信号灯的使用3.5.2信号量和信号量和P、V操作操作1.信号量及信号量及P、V操作操作信号量按联系进程的关系分成二类:l公用信号量(互斥信号量):公用信号量(互斥信号量):它为一组需互斥共享临界资源的并发进程而设置,代表共享的临界资源,每个进程均可对它施加每个进程均可对它施加P P、V V操作操作,即都可申请和
43、释放该临界资源,其初始值置为初始值置为1 1。 信号量s取值意义如下: s s 1 1 ;表示资源空闲,可供使用。表示资源空闲,可供使用。 s s 0 0 ;表示资源已被占用,无其它进程等待。;表示资源已被占用,无其它进程等待。 s s - -n n ;表示资源已被占用,还有表示资源已被占用,还有n n个进程因等待资源而阻塞个进程因等待资源而阻塞。z私用信号量(同步信号量):私用信号量(同步信号量):它为一组需同步协作完成任务的并发进程而设置,只有拥有该资源的进程才能对它施加只有拥有该资源的进程才能对它施加P P操作操作(即可申请资源),而由其合作进程对它施加由其合作进程对它施加V V操作操作
44、(即释放资源)。初值为初值为0 0或为某个整数或为某个整数n n点我P P、V V操操作作(原原语语)是是定定义义在在信信号号量量S S上上的的两两个个操操作作,其其定定义义分分别别如下:如下: P(S)P(S): S S:=S-1=S-1若若S S0 0,则调用则调用P(S)P(S)的进程继续运行;的进程继续运行;若若S S0 0,则则调调用用P(S)P(S)的的进进程程被被阻阻塞塞,并并把把它它插插入入到到等等待待信信号号量量S S的阻塞队列中。的阻塞队列中。V(S)S:=S+1;若若S0,则调用则调用V(S)的进程继续运行;的进程继续运行;若若S0,从等待信号量从等待信号量S的阻塞队列中
45、唤醒头的阻塞队列中唤醒头一个进程,然后调用一个进程,然后调用V(S)的进程继续运行。的进程继续运行。P P、V V操作可表示为如下两个过程:操作可表示为如下两个过程: P(S)Procedure P(Var S:Semaphore)Begin S:=S-1; /表示申请一个资源表示申请一个资源; If s0 /表示没有空闲资源表示没有空闲资源; then W(S) / *将该进程置成等待将该进程置成等待S的阻塞状态的阻塞状态;End;V(S)V(S)Procedure V(Var s:semaphore)Begin S:=S+1; /表示释放一个资源;表示释放一个资源; If S0 /表示有进
46、程处于阻塞状态;表示有进程处于阻塞状态; then R(S)/ *唤醒等待唤醒等待S阻塞队列的第一个阻塞队列的第一个进程进程;End; 其中其中W(S)W(S)表示将调用该过程的进程置成等待信号量表示将调用该过程的进程置成等待信号量S S的的阻塞阻塞状态,并插入相应的阻塞队列中。状态,并插入相应的阻塞队列中。R(S)R(S)表示要表示要唤醒唤醒等待信号等待信号S S阻塞队列中的头一个进程。阻塞队列中的头一个进程。P、V操作可表示为如下两个过程:操作可表示为如下两个过程:Procedure P(Var S:Semaphore)Begin S:=S-1;Ifs0 thenW(S) /*将该进程置成
47、等待将该进程置成等待S的阻塞状态的阻塞状态End; PProcedure V(Var s:semaphore)Begin S:=S+1; If S0 then R(S) /*唤醒等待唤醒等待S阻塞队列的第一个进程阻塞队列的第一个进程End; V分析如何通过对信号量的分析如何通过对信号量的P、V操作来实现进程互斥的操作来实现进程互斥的例如进程P1和进程P2按如下安排,即可实现互斥。设S为两进程互斥的公用信号量,初值赋予1,表明该临界资源未被占用。进程P1 进程P2P(s) P(s)P(s) P(s)S S1 1 S S2 2V(S) V(S)V(S) V(S)其中的S1,S2是两个互斥的程序段,
48、即P1、P2的临界区。小结:小结:q信号量信号量S0时的数值表示某类可用资源的数量。时的数值表示某类可用资源的数量。q执行执行P操作意味着申请分配一个单位的资源。因此操作意味着申请分配一个单位的资源。因此可描述为可描述为S:=S-1。当。当S0表示已无资源可用,此表示已无资源可用,此时时S的绝对值表示信号量的绝对值表示信号量S的阻塞队列中的进程数,的阻塞队列中的进程数,q执行一次执行一次V操作意味着释放一个单位的资源,描述操作意味着释放一个单位的资源,描述为为S:=S+1,若此时,若此时S0表明信号量的阻塞队列表明信号量的阻塞队列中仍有被阻塞的进程,因此在执行中仍有被阻塞的进程,因此在执行V操
49、作时应唤醒操作时应唤醒该队列的第一个进程。该队列的第一个进程。q注意:注意:必须成对使用成对使用P和V原语:遗漏P原语则不能保证互斥访问,遗漏V原语则不能在使用临界资源之后将其释放(给其他等待的进程);P、V原语不能次序错误、重复或遗漏不能次序错误、重复或遗漏【例【例3.1】例子中的公用变量例子中的公用变量COUNT,是一个临是一个临界资源。两个并发进程对界资源。两个并发进程对COUNT的操作必须的操作必须互斥地执行。对此,可写出如下程序:互斥地执行。对此,可写出如下程序:begin COUNT:integer; S:semaphore; COUNT:=0; S:=1;使用信号量实现互斥 pr
50、ocess p1 R1:register; begin P(S); R1:=COUNT; R1:=R1+1; COUNT:=R1; V(S) end;process p2 R2:register; begin P(S); R2:=COUNT; R2:=R2+1; COUNT:=R2; V(s) end; q所以为使多个进程能互斥地访问某临界资源,只所以为使多个进程能互斥地访问某临界资源,只需为该资源设置一个互斥信号量需为该资源设置一个互斥信号量mutex,并设其初并设其初值为值为1,然后将各进程的临界区,然后将各进程的临界区CS置于置于P(mutex)和和V(mutex)操作之间即可。操作之间
51、即可。进程间的互斥:进程间的互斥: P(s) P(s) CS CS V(S) V(S)内容回顾q信号量的分类信号量的分类P操作代表申请资源操作代表申请资源V操作代表释放资源操作代表释放资源qP操作中心语句:操作中心语句:S:=S-1;IfthenW(S)qV操作中心语句:操作中心语句:S:=S+1;IfthenR(S)s0S0q互斥信号量的值:互斥信号量的值:mutex=1:mutex=0:mutex=-n:表示资源空闲,可供使用表示资源空闲,可供使用表示资源已被占用,无其它进程等待。表示资源已被占用,无其它进程等待。表示资源已被占用,还有表示资源已被占用,还有n个进程个进程因等待资源而阻塞因
52、等待资源而阻塞。小结:小结:q信号量信号量S0时的数值表示某类可用资源的数量。时的数值表示某类可用资源的数量。q执行执行P操作意味着申请分配一个单位的资源。因此操作意味着申请分配一个单位的资源。因此可描述为可描述为S:=S-1。当。当S0表示已无资源可用,此表示已无资源可用,此时时S的绝对值表示信号量的绝对值表示信号量S的阻塞队列中的进程数,的阻塞队列中的进程数,q执行一次执行一次V操作意味着释放一个单位的资源,描述操作意味着释放一个单位的资源,描述为为S:=S+1,若此时,若此时S0表明信号量的阻塞队列表明信号量的阻塞队列中仍有被阻塞的进程,因此在执行中仍有被阻塞的进程,因此在执行V操作时应
53、唤醒操作时应唤醒该队列的第一个进程。该队列的第一个进程。3.利用信号量实现进程间的利用信号量实现进程间的同步同步一般来说,一般来说,信号量初值为信号量初值为0,两个进程之间的同步模型如下:,两个进程之间的同步模型如下: 进程进程P1进程进程P2L1:P(S)L2:V(S) 设设进进程程P1先先到到达达L1点点,当当它它执执行行P(S),使使S=1,于于是是P1进进入入阻阻塞塞状状态态并并进进入入信信号号量量S的的阻阻塞塞队队列列;然然后后进进程程P2到到达达L2点点,当当它它执执行行V(S)时时,将将S值值变变为为0,于于是是唤唤醒醒P1,使使其其转转变变为为就就绪绪状状态态,当当再再调调度度
54、到到进进程程P1时时,则则P1可可在在L1点点后后继继续续运运行行下下去去。由由些些可可见见,当当进进程程P1到到达达L1点点必必须须与与进进程程P2同步。同步。【例【例2】用信号量实现司机和售票员的同步。用信号量实现司机和售票员的同步。 设设S1和和S2分分别别为为司司机机和和售售票票员员的的私私用用信信号号量量,初初值值均均为为0,则司机和售票员的同步过程描述如下:,则司机和售票员的同步过程描述如下:司机进程司机进程 售票员进程售票员进程正常行车正常行车 售票售票到站停车到站停车 P(SP(S2 2) ) V(S V(S2 2) ) 开车门开车门 P(S P(S1 1) ) 关车门关车门离
55、站开车离站开车 V(SV(S1 1) )3.6线线程程q3.6.1.线程的引入线程的引入进程的两个基本属性:进程的两个基本属性: 进程是一个可拥有资源的独立单位;进程是一个可拥有资源的独立单位;进程是一个可以独立调度和分派的基本单位。进程是一个可以独立调度和分派的基本单位。(1 1)创创建建进进程程。系系统统在在创创建建进进程程时时,必必须须为为之之分分配配其其所所必必需需的的、除除处处理理机机以以外外的的所所有有资资源源。如如内内存存空空间间、I/OI/O设备以及建立相应的设备以及建立相应的PCBPCB结构。结构。(2 2)撤撤消消进进程程。系系统统在在撤撤消消进进程程时时,又又必必须须先先
56、对对这这些些资资源进行回收操作,然后再撤消源进行回收操作,然后再撤消PCBPCB结构。结构。(3 3)进进程程切切换换。在在对对进进程程进进行行切切换换时时,由由于于要要保保留留当当前前进进程程的的CPUCPU环环境境和和设设置置新新选选中中进进程程的的CPUCPU环环境境,为为此此需需花花费不少处理机时间。费不少处理机时间。q 3.6.3.6.2.线程的基本概念线程的基本概念q线线程程可可定定义义:进进程程中中的的一一个个执执行行活活动动;进进程程中中的的可调度实体;一个独立的程序计数器可调度实体;一个独立的程序计数器。q如果把进程理解为在逻辑上是操作系统的一个任如果把进程理解为在逻辑上是操
57、作系统的一个任务,那么线程表示完成该任务的许多可并发务,那么线程表示完成该任务的许多可并发(并行并行)执行的子任务。执行的子任务。3.6.3 线程与进程的关系1调调度度:在在传传统统的的操操作作系系统统中中,拥拥有有资资源源的的基基本本单单位位和和独独立立调调度度、分分派派的的基基本本单单位位都都是是进进程程。引引入入线线程程以以后后,把把线线程程作作为为调调度度和和分分派派的的基基本本单单位位,而而把把进进程程作作为为资资源源拥拥有的基本单位。有的基本单位。2并并发发性性:在在引引入入线线程程的的操操作作系系统统中中,不不仅仅进进程程之之间间可可以以并并发发执执行行,而而且且在在一一个个进进
58、程程中中的的多多个个线线程程之之间间亦亦可可并并发发执执行行,因因而而使使操操作作系系统统具具有有更更好好的的并并发发性性,从从而而能能更更有有效地使用系统资源和提高系统吞吐量。效地使用系统资源和提高系统吞吐量。3拥拥有有资资源源:不不论论是是传传统统的的操操作作系系统统,还还是是设设有有线线程程的的操操作作系系统统,进进程程都都是是拥拥有有资资源源的的一一个个独独立立单单位位,它它可可以以拥拥有有自自己己的的资资源源。一一般般的的说说,线线程程自自己己不不拥拥有有系系统统资资源源(也也有有一一点点必必不不可可少少的的资资源源),但它可以访问其隶属进程的资源。,但它可以访问其隶属进程的资源。4
59、系系统统开开销销:由由于于在在创创建建或或撤撤消消进进程程时时,系系统统都都要要为为之之分分配配或或回回收收资资源源,如如内内存存空空间间、I/O设设备备等等。因因此此,操操作作系系统统所所付付出出的的开开销销将将明明显显地地大大于于在创建或撤消线程时的开销。在创建或撤消线程时的开销。返回本节返回本节3.7 死锁问题 q3.7.1死锁产生的原因死锁产生的原因q死锁举例死锁举例q3.7.3产生死锁的必要条件和预防死锁产生死锁的必要条件和预防死锁返回本章首页返回本章首页q所谓所谓死锁死锁,是指多个进程因竞争资源而造成的彼,是指多个进程因竞争资源而造成的彼此无休止地互相等待,在无外力作用下永远不能此
60、无休止地互相等待,在无外力作用下永远不能摆脱的僵局,这种僵局使参与的进程永远不能向摆脱的僵局,这种僵局使参与的进程永远不能向前推进。前推进。下一页下一页P1、P2是两个并行进程,是两个并行进程,R1、R2是系统中可共享的独占是系统中可共享的独占资源。当两个进程以如下顺序推进时:资源。当两个进程以如下顺序推进时:P1分配占有分配占有R1;P1申请申请R2;P2分配占有分配占有R2;P2申请申请R1。申请申请占有占有申请申请占有占有图图3.16两个进程的死锁两个进程的死锁P1P2R1R23.7.1 死锁产生的原因所以产生死锁的原因可归纳为以下两点。所以产生死锁的原因可归纳为以下两点。(1)系系统统
61、资资源源的的不不足足。这这必必定定会会引引起起进进程程间间资资源源竞竞争,资源竞争是产生死锁的原因之一。争,资源竞争是产生死锁的原因之一。(2)进进程程推推进进顺顺序序非非法法。任任何何系系统统资资源源不不足足是是一一定定的的,但但是是只只有有当当进进程程执执行行过过程程中中,请请求求和和释释放放资资源源的的顺顺序序不不当当时时,如如图图3.16所所示示,才才会会导导致致死死锁锁,所所以以,进进程程推推进进顺顺序序不不当当是是产产生生死死锁锁的的第二个原因。第二个原因。下一页下一页下一页下一页内容回顾q死锁的概念死锁的概念q死锁产生的原因死锁产生的原因1、 产生死锁有四个必要条件 q互斥条件互
62、斥条件:一个资源一次只能被一个进程所使用,即是排一个资源一次只能被一个进程所使用,即是排它性使用。它性使用。q不可剥夺不可剥夺/ /抢占条件:抢占条件:一个资源仅能被占有它的进程所释一个资源仅能被占有它的进程所释放,而不能被别的进程放,而不能被别的进程抢抢占。占。q请求和保持条件:请求和保持条件:进程已经保持了至少一个资源,但又提进程已经保持了至少一个资源,但又提出了新的资源要求,而该资源又已被其它进程占有,此出了新的资源要求,而该资源又已被其它进程占有,此时请求进程阻塞,但又对已经获得的其它资源保持不放。时请求进程阻塞,但又对已经获得的其它资源保持不放。返回本节目录返回本节目录2 2、解决死
63、锁的方法、解决死锁的方法 :(1) (1) 预预防防死死锁锁。通通过过设设置置某某种种限限制制条条件件,去去破破坏坏产产生生死死锁锁必必要要条条件件中中的的一一个个或或几几个个,来来防防止止死死锁锁出出现现。这这一一方方法法较较易易实实现现,但但往往往往由由于于所所施施加加的的限限制制条条件件太严格,导致系统资源利用率下降。太严格,导致系统资源利用率下降。(2) (2) 避避免免死死锁锁。事事先先不不施施加加预预防防死死锁锁的的某某种种强强制制条条件件,而而在在资资源源动动态态分分配配过过程程中中,采采用用某某种种方方法法避避免免系系统统进进入入不不安安全全状状态态,从从而而避避免免死死锁锁的
64、的发发生生。在在这这种种方方法法中中,只只是是事事先先施施加加一一些些弱弱的的限限制制条条件件,以以使使资源的利用率不致降低很多。资源的利用率不致降低很多。(3(3)检检测测死死锁锁。这这种种方方法法事事先先不不采采取取任任何何措措施施,系系统统发发生生死死锁锁时时,只只是是通通过过系系统统设设置置的的检检测测机机构构,及及时时地地测测出出死死锁锁的的发发生生,并并能能精精确确地地确确定定参参与与死死锁锁的的进进程程和和资源,然后解除已发生的死锁。资源,然后解除已发生的死锁。(4)解除死锁解除死锁。这是与检测死锁相配套的措施。用于。这是与检测死锁相配套的措施。用于将进程从死锁状态中解脱出来。常
65、用的方法是撤消或将进程从死锁状态中解脱出来。常用的方法是撤消或挂起一些进程,迫使它们释放资源,供其它在死锁环挂起一些进程,迫使它们释放资源,供其它在死锁环中的进程获得资源从而推进至结束。中的进程获得资源从而推进至结束。q1破坏“请求与保持条件”q系系统统可可采采用用资资源源的的静静态态分分配配方方式式,使使所所有有进进程程在在其其执执行行过过程程中中不不再再对对资资源源提提出出请请求求,于于是是这这个个条条件就不复存在。件就不复存在。q另另一一种种办办法法是是,每每个个进进程程仅仅在在它它不不再再占占有有任任何何资资源源时时才才可可能能提提出出申申请请资资源源,也也就就是是在在它它申申请请另另
66、外外资源之前,必须释放它当前已占有的全部资源。资源之前,必须释放它当前已占有的全部资源。3、预防死锁 q2.破坏不剥夺条件 这种方法要求进程在新申请资源时,若不能立即得到满足,而处于等待状态时,必须释放它已占用的全部其他资源。就是说,其占用的资源在使用完前可以被剥夺,仅当该进程重新获得了它原有的资源以及得到新申请资源时,它才被重新唤醒。下一页下一页q3破坏环路条件q这种方法的基本思想是:对系统提供的每一项资这种方法的基本思想是:对系统提供的每一项资源,由系统设计者将它们按类型进行线性排队,源,由系统设计者将它们按类型进行线性排队,并赋予不同的序号。例如,设卡片输入机为并赋予不同的序号。例如,设
67、卡片输入机为1,打,打印机为印机为2,磁带机为,磁带机为3,磁盘机为,磁盘机为4,。所有的。所有的进程都只能严格地按照编号递增的次序去请求资进程都只能严格地按照编号递增的次序去请求资源,亦即,只有低编号的资源要求满足后,才能源,亦即,只有低编号的资源要求满足后,才能对高编号资源提出要求;释放资源时,应按编号对高编号资源提出要求;释放资源时,应按编号递减的次序进行。由此可以看出,对资源请求采递减的次序进行。由此可以看出,对资源请求采取了这种限制之后,所形成的进程取了这种限制之后,所形成的进程资源图不可资源图不可能再产生环路。能再产生环路。4. 死锁的避免 在在避避免免死死锁锁的的方方法法中中,允
68、允许许进进程程动动态态地地申申请请资资源源。系系统统在在进进行行资资源源分分配配之之前前,先先计计算算资资源源分分配配的的安安全全性性。若若此此次次分分配配不不会会导导致致系系统统进进入入不不安安全全状状态态,便将资源分配给该进程,否则本次分配就不进行。便将资源分配给该进程,否则本次分配就不进行。第三章 小结q进程的定义和特征进程的定义和特征q进程的表示、基本状态及转换进程的表示、基本状态及转换q进程调度的方式及算法进程调度的方式及算法q同步与互斥以及实现算法同步与互斥以及实现算法q信号量和信号量和P、V操作操作q线程的概念线程的概念q死锁概念死锁概念习题q一、填空题一、填空题1、每个进程都包
69、括(、每个进程都包括()、()、()和()和()3个组成部分。个组成部分。2、一个程序运行在不同的数据集上就构成了不同的(、一个程序运行在不同的数据集上就构成了不同的(),),分别得到不同的结果。分别得到不同的结果。3、进程在执行过程中不同时刻的、进程在执行过程中不同时刻的3中基本状态是(中基本状态是()、)、()和()和()。)。4、进程在执行过程中状态不断(、进程在执行过程中状态不断(),但在某一时),但在某一时刻,进程当且仅当处于刻,进程当且仅当处于3种基本状态之一。种基本状态之一。5、进程刚被创建是它的状态是()、进程刚被创建是它的状态是()6、操作系统依据()、操作系统依据()对进程
70、进行控制和管理对进程进行控制和管理7、形成死锁的原因是()和、形成死锁的原因是()和()。()。q二、选择题二、选择题q1、并发性是指若干事件在、并发性是指若干事件在()发生发生.A,同一时刻同一时刻B,同一时间间隔内同一时间间隔内C,不同时刻不同时刻D,不同时间间隔内不同时间间隔内q2、进程间的基本关系为、进程间的基本关系为().A,相互独立与相互制约相互独立与相互制约B,同步与互斥同步与互斥C,并行执行与资源共享并行执行与资源共享D,信息传递与信息缓冲信息传递与信息缓冲q3、利用、利用PV操作可以操作可以().A,实现进程同步实现进程同步B,检测死锁检测死锁C,解除死锁解除死锁D,防止防止死锁死锁q4、多道程序环境下、多道程序环境下,操作系统分配资源以操作系统分配资源以()为基为基本单位本单位.A,程序程序B,线程线程C,进程进程D,作业作业习题