下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、操作系统Operating System,第3章 处理机管理,本章重点,进程的概念、特征 进程控制、进程调度、进程同步与互斥 死锁问题,主要内容,3.1 进程的定义和特征 3.2 进程的描述 3.3 进 程 控 制 3.4 进程调度 3.5 进程的同步与互斥 3.6 线 程 3.7 死 锁 问 题,处理器(CPU)是程序的执行机构,用户要求计算机完成一项作业,首先必须将作业程序调入内存,再由处理器逐条执行程序指令 处理器管理就是要解决用户提交的作业何时调入内存,在调入内存的各个作业程序间如何分配处理器,以达到各道程序能协调一致运行,而系统资源又能得到最大程度的利用.,3.1 进程的定义和特征,
2、3.3.1. 进程的引入 1)多道程序系统中允许多道程序存放在内存中,并在系统中同时处于运行状态。这些并行执行的程序之间存在着相互依赖、相互制约的关系。 另外,不论是系统程序还是用户程序,由于它们并行地在着系统中运行,并且有着各种复杂的制约关系,所以它们在系统内部所处的状态不断发生变化,时而在CPU上执行,时而因某种原因被暂停执行。由于在这样一个多道程序系统所带来的复杂环境中,使程序具有了并行、制约和动态的特性,使得原来的程序难以刻划和反映系统中的每一瞬间的状况。因此,需要引进一个新的概念进程。,2)程序和机器执行程序的活动是两个概念。程序是指令的有序集合,是静态的概念,而机器执行程序的活动是
3、指指令序列在处理机上的执行过程,或处理机按照程序执行指令序列的过程。而且由于竞争资源等其他因素,程序执行时走走停停,具有“执行暂停执行”的活动规律。所以就无法用“程序”这个静态的概念来描述程序运行的过程,为此,引入了一个新的一个动态的概念“进程”,2进程的定义 (1) 进程是程序的一次执行。 (2) 进程是可以和别的计算并发执行的计算。 (3) 进程是一个具有一定独立功能的程序在某个数据集上的一次执行活动,它可以和同样的其它程序共行。 (4) 进程是一个程序及数据在处理机上顺序执行时所发生的活动。 (5) 进程是程序在一个数据集上的运行过程,是系统可调度的实体。 据此,我们可把“进程”定义为“
4、可与其它程序并发执行的程序在一个数据集上的执行过程”。,3进程的特征 (1) 动态性 进程是进程实体的执行过程,因此,动态性是进程的最基本特征。动态性还表现为进程由创建而产生,由调度而执行,因得不到资源而暂停,因撤消而消亡。可见,进程是有生命期的。而程序只是存放在某种介质上的一组有序指令的集合,本身并无运动的含意,程序只是个静态实体。 (2) 并发性 这是指多个进程实体同时存在于系统中,并能在一段时间内同时执行,并发性是进程最重要的特征,同时也是操作系统的重要特征。,(3) 独立性 这是指进程实体是一个能够独立运行的基本单位,同时也是系统中独立获得资源和独立调度的基本单位。 (4) 异步性 这
5、是指进程按各自独立的不可预知的速度向前推进,或者说,进程按异步方式运行。这是由于进程间共享资源和协同合作时带来了相互间制约的关系,造成进程执行的间断性。 (5)结构特性 从结构上看,进程实体是由程序段、数据段及进程控制块3部分组成,也可把这3部分称为“进程映象”。,返回本节,进程与程序的区别与联系,进程是程序的一次执行,是一个动态的概念,程序是完成某个特定功能的指令的有序序列,是一个静态的概念 进程和程序不再是一一对应关系。 进程是系统进行资源分配和调度的一个独立单位,程序则不是 程序可以作为一种软件资源长期保存,而进程是程序的一次执行过程,它是临时的,有生命期的 进程是具有结构的,3.2 进
6、程的描述,3.2.1. 进程的表示 (1) 进程实体的组成 (2) 进程控制块(PCB) 为描述进程的动态变化, 便于系统对进程进行有 效地控制和管理,系统 中为每一进程设置了一个进程控制块。进程控制块是进程存在的唯一标志。创建一个进程就是为其建立一个PCB,当进程被撤消时,系统就回收它的PCB。,内容回顾,进程的引入 程序的并发执行使得程序之间相互制约,程序的执行并不是一气呵成,而是以一种“执行-暂停-执行”的状态执行。对于这种动态的执行状态,用已不能用程序这一静态的概念来描述其具体执行过程,因此引入新的概念进程。 进程的定义 可与其它程序并发执行的程序在一个数据集上的执行过程 进程的特点:
7、 动态、并发、独立、异步、结构特征,(1) 进程的基本调度状态 进程有3种基本调度状态,具体说明如下。 执行状态(executing)。进程已获得必要的资源,并已占有处理机,在其上执行该进程的程序。 就绪状态(ready)。进程本身已具备了执行条件,即已获得除CPU之外其它所必需的资源,而正在等待分配处理机。有时也称此状态为可执行状态。 阻塞状态(blocked)。进程因等待资源或等待某一事件(如某一I/O操作完成)而处于不可执行的状态,也可以说,进程本身的执行条件不满足,即使为它分配CPU也不能在其上执行。,3.2.2. 进程的基本调度状态及其转换,(2) 进程状态间的转换,图3.5 进程状
8、态的转换,返回本节,进程调度状态转换,就绪,运行,阻塞,作业管理,进程调度,I/O要求,I/O完成,时间到,完成,在单处理器系统中,任何时刻只有一个进程处于运行状态,其他进程分别处于就绪或阻塞状态 为了调度方便,通常将处于就绪进程的PCB(进程控制块)构成一就绪队列 按各种阻塞原因的PCB构成多个阻塞队列,三个基本状态之间可能转换和转换原因如下: 就绪态执行态:当处理机空闲时,进程调度程序必将处理机分配给一个处于就绪态的进程 ,该进程便由就绪态转换为执行态。 执行态阻塞态:处于执行态的进程在运行过程中需要等待某一事件发生后(例如因IO请求等待IO完成后),才能继续运行,则该进程放弃处理机,从执
9、行态转换为阻塞态。,返回本节目录,阻塞态就绪态:处于阻塞态的进程,若其等待的事件已经发生,于是进程由阻塞态转换为就绪态。 执行态就绪态:处于执行状态的进程在其运行过程中,因分给它的处理机时间片已用完,而不得不让出(被抢占)处理机,于是进程由执行态转换为就绪态。 而阻塞态执行态和就绪态阻塞态这二种状态转换不可能发生。,处于执行态进程:如系统有一个处理机,则在任何一时刻,最多只有一个进程处于执行态。 处于就绪态进程:一般处于就绪态的进程按照一定的算法(如先来的进程排在前面,或采用优先权高的进程排在前面)排成一个就绪队列。 处于阻塞态进程:处于阻塞态的进程排在阻塞队列中。由于等待事件原因不同,阻塞队
10、列也按事件分成几个队列。,例:一个只有一个处理机的系统中,OS的进程有执行、就绪、阻塞三个基本状态。假如某时刻该系统中有10个进程并发执行,在略去调度程序所占用时间情况下试问: 这时刻系统中处于执行态的进程数最多有几个?最少有几个? 这时刻系统中处于就绪态的进程数最多有几个?最少有几个? 这时刻系统中处于阻塞态的进程数最多有几个?最少有几个?,解:因为系统中只有一个处理机,所以某时刻处于执行态的进程数最多只有一个。而最少可能为0,此时其它10个进程一定全部排在各阻塞队列中,在就绪队列中没有进程。而某时刻处于就绪态的进程数最多只有9个,不可能出现10个情况,因为一旦CPU有空,调度程序马上调度,
11、当然这是在略去调度程序调度时间时考虑。处于阻塞态的进程数最少是0个。,3.3 进 程 控 制,进程控制的作用是对系统中的全部进程实行有效的管理,主要表现在对一个进程进行创建、撤消以及在某些进程状态间的转换控制。,返回本章首页,通常允许一个进程创建和控制另一个进程,前者称为父进程,后者称为子进程。创建父进程的进程称为祖父进程。子进程又可创建孙进程,从而形成一个树型结构的进程家族,如图3.7所示。,图3.7 进程家族示例,在操作系统中,进程之间的控制就是通过进程控制原语来实现的。 原语:原语通常由若干条指令所组成,用来实现某个特定的操作。通过一段不可分割的或不可中断的程序实现其功能。,进程控制原语
12、(了解),1创建原语 按 调用者提供的参数,构成该进程的PCB 2阻塞原语 中断该进程的运行,把PCB中的转态改为阻塞状态。 3激活原语 把某阻塞进程置为就绪状态,等待分配CPU。 4。撤消原语 停止该进程的运行,释放它所占有的所有资源,删除该进程的PCB,内容回顾,进程的基本状态 进程状态之间的转换 原语:若干条指令所组成,用来实现某个特定的操作。,抢占,习题,1. 在操作系统中进程是一个具有一定独立功能的程序在某个数据集合上的一次A,进程是一个B概念,而程序是一个C的概念。在一单处理机中,若有5个用户进程,在某一时刻,处于就绪状态的用户进程最多有D个,最少有E个。 A:(1)并发活动;(2
13、)运行活动;(3)单独操作;(4)关联操作。 B,C:(1)组合态;(2)关联态;(3)运行态;(4)等待态;(5)静态;(6)动态。 D,E:(1)1;(2)2;(3)3;(4)4;(5)5;(6)0。,习题-2,2.从静态角度看,进程由A、B和C三部分组成,用户可通过D建立和撤消进程,通常用户进程被建立后,变处于E状态。 A:(1)JCB;(2)DCB;(3)PCB;(4)PMT。 B: (1)程序段;(2)文件体;(3)I/O;(4)子程序。 C:(1)文件描述块;(2)数据;(3)EOF;(4)I/O缓冲区。 D:(1) 函数调用;(2)宏指令;(3)原语;(4)过程调用。 E: (1
14、)运行状态(2)就绪状态(3)阻塞状态,3.4 进程调度,3.4.1进程调度的基本概念 进程调度也可被称为处理机调度,它协调和控制各进程对CPU的使用。相应的进程调度程序叫分派程序或低级调度程序。一旦作业调度程序选择了一个作业集合来运行,系统就要为作业建立起一组进程,这组进程协同运行,以便共同完成该作业的计算任务。这样,在系统中就存在许多进程,而这些进程具有获得使用处理机的可能性,它们同时在等待获得处理机的执行时间,进程调度的职能就是动态且合理地把处理机分配给就绪队列中的某一进程,并使该进程投入运行。,进程调度程序的职能: (1)记录系统中所有进程的有关情况。 (2)确定分配处理机的原则。 (
15、3)分配处理机给进程。 (4)从进程收回处理机。,返回本节目录,PCB的组织形式 方法有三: (1)线性表:简单,但进程多时查找速度慢! (2)链接表:相同状态的进程PCB按优先数排成一个或多个队列,如就绪队列,不同事件的阻塞队列,3.4.2 进程调度所用的主要数据结构,链接表组织方式,3.4.3进程调度的方式,调度类型: 1.高级调度(作业调度) 2.低级调度(进程调度) 进程调度的方式: 剥夺式调度:当系统按照某种原则发现一个比现运行 进程更合适、更应该占有CPU的进程时,系统将强迫处于运行状态的进程将CPU的使用权交给这个更适合的进程。 非剥夺式调度:一旦某个进程占用了CPU,除非是由于
16、它自身原因自动放弃CPU,否则它将一直运行下去直到完成,1先来先服务First-Come-First-Served (FCFS) 这种调度算法按照进程进入就绪队列的先后顺序来调度进程,到达得越早,其优先数越高。获得处理机的进程,未遇到其他情况时,一直运行下去,系统只需具备一个先进先出的队列,在管理优先数的就绪队列时,这种方法是一种最常见策略,并且在没有其他信息时,也是一种最合理的策略。,下一页,3.4.4 进程调度算法,2轮转调度 先来先服务的一个重要变形,就是轮转规则。轮转调度算法是系统把所有就绪进程按先后次序排队,处理机总是优先分配给就绪队列中的第一个就绪进程,并分配它一个固定的时间片(如
17、100毫秒)。当该运行进程用完规定的时间片时,被迫释放处理机给下一个处于就绪队列中的第一个进程,分给这个进程相同的时间片,每个运行完时间片的进程,当未遇到任何阻塞时,就回到就绪队列的尾部,并等待下次转到它时再投入运行。于是,只要是处于就绪队列中的进程,按此种算法迟早总可以分得处理机投入运行。,下一页,3分级轮转法 所谓分级轮转法就是将先前的一个就绪队列,根据进程的优先数不同划分两个或两个以上的就绪队列,并赋给每个队列不同的优先数。以两个就绪队列为例,一个具有较高优先数,另一个具有较低优先数,前者称为前台队列,后者称为后台队列。,下一页,在多道程序的环境中,系统中的多个进程可以并发执行,同时它们
18、又要共享系统中的资源,这些资源有些是可共享使用的,如磁盘,有些是以独占方式使用的,如打印机。由此将会引起一系列的矛盾,产生错综复杂的相互制约的关系。 产生这种错综复杂的相互制约关系的原因有二: 资源共享间接制约关系 进程合作直接制约关系,3.5 进程间的同步和互斥,一个进程到达了某点后,除非另一进程已完成某些操作,否则就不得不停下来等待这些操作的结束。这就是进程间的同步。,进程间的同步,汽车司机和售票员之间的同步关系,进程P1和P2之间的同步,在各协同工作的进程之间存在着同步关系,但进程之间更为一般的关系却是互斥关系。这是由于进程在运行过程中因争夺资源所引起的。 例如,有两个进程P1、P2,它
19、们都要使用打印机,如果让它们随意使用,那么就有可能出现P1打印几行P2再打印几行的结果导致打印出来的内容混在一起,很难区分,即使能够区分,也要将各自输出的结果从打印纸上剪下来,再用浆糊粘接起来。 解决这一问题的办法是,不允许一台打印机让两个进程同时使用,应在一个进程用完后再让另一进程使用。由此可见,系统中存在许多进程,它们共享各种资源。然而有很多资源一次只能供一个进程使用。,2. 进程间的互斥,临界资源:某段时间仅允许一个进程使用的资源称为临界资源。 宿舍电话 打印机 电话和打印机都属于临界资源。除此之外,还有内存变量、指针、数组等等也是临界资源。 两个或两个以上的进程不能同时使用同一临界资源
20、,只能一个进程使用完毕后,另一进程才能使用,这种现象称为进程互斥。,几个进程若共享同一临界资源,它们必须以互斥的方式使用这个临界资源,即当一个进程正在使用临界资源且尚未使用完毕时,则其他进程必须推迟对该资源的进一步操作,,进程互斥,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;
21、,临界区(critical section) 每个进程中访问临界资源的那段程序段称为相对于临界资源的临界区。,因为各进程对临界资源的使用是采用互斥方式的,所以访问临界资源的进程必须互斥的进入各自的临界区。,这种方法使用了一个物理实体,称为锁,用W来表示,锁有两种状态,W=0表示锁已打开;W=1表示锁被关闭。 加锁原语用LOCK(W)表示,其操作为: 测试W,若W=1,表示资源正在使用,继续反复测试;若W=0,置W=1(加锁)。 加锁原语用LOCK(W)可描述为 L:if W=1 then go to L else W:=1; 开锁原语用UNLOCK(W)表示,可描述为 W:=0;,3. 实现临
22、界区互斥的锁操作法,两个进程P1、P2使用如下程序实施进程的互斥: 进程P1 进程P2 LOCK(W) LOCK(W) S1/进入临界区 S2 /进入临界区 UNLOCK(W) UNLOCK(W) 其中S1和S2分别为进程P1和P2的临界区。,知识回顾,进程的关系:同步和互斥 临界资源 临界区 因为各进程对临界资源的使用是采用互斥方式的,所以访问临界资源的进程必须互斥的进入各自的临界区。,1965年,荷兰学者Dijkstra提出的信号量机制是一种卓有成效的进程同步工具,在长期广泛的应用中,信号量机制又得到了很大的发展,它从整型信号量机制发展到记录型信号量机制,进而发展为“信号集”机制。现在信号
23、量机制已广泛应用于OS中。 信号灯的使用,3.5.2 信号量和P、V操作 1. 信号量及P、V操作,信号量按联系进程的关系分成二类: 公用信号量(互斥信号量):它为一组需互斥共享临界资源的并发进程而设置,代表共享的临界资源,每个进程均可对它施加P、V操作,即都可申请和释放该临界资源,其初始值置为1。 信号量s取值意义如下: s 1 ;表示资源空闲,可供使用。 s 0 ;表示资源已被占用,无其它进程等待。 s -n ;表示资源已被占用,还有n个进程因等待资源而阻塞。 私用信号量(同步信号量):它为一组需同步协作完成任务的并发进程而设置,只有拥有该资源的进程才能对它施加P操作(即可申请资源),而由
24、其合作进程对它施加V操作(即释放资源)。初值为0或为某个整数n,点我,P、V操作(原语)是定义在信号量S上的两个操作,其定义分别如下: P(S): S:=S-1 若S0,则调用P(S)的进程继续运行; 若S0,则调用P(S)的进程被阻塞,并把它插入到等待信号量S的阻塞队列中。,V(S) S:=S+1; 若S0,则调用V(S)的进程继续运行; 若S0,从等待信号量S的阻塞队列中唤醒头一个进程,然后调用V(S)的进程继续运行。,P、V操作可表示为如下两个过程: P(S) Procedure P(Var S:Semaphore) Begin S:=S-1; /表示申请一个资源; If s0 /表示没
25、有空闲资源; then W(S) / *将该进程置成等待S的阻塞状态; End;,V(S) Procedure V(Var s:semaphore) Begin S:=S+1; /表示释放一个资源; If S0 /表示有进程处于阻塞状态; then R(S)/ *唤醒等待S阻塞队列的第一个进程; End; 其中W(S)表示将调用该过程的进程置成等待信号量S的阻塞状态,并插入相应的阻塞队列中。R(S)表示要唤醒等待信号S阻塞队列中的头一个进程。,P、V操作可表示为如下两个过程: Procedure P(Var S:Semaphore) Begin S:=S-1; Ifs0 thenW(S) /*
26、将该进程置成等待S的阻塞状态 End; P Procedure V(Var s:semaphore) Begin S:=S+1; If S0 then R(S) /*唤醒等待S阻塞队列的第一个进程 End; V 分析如何通过对信号量的P、V操作来实现进程互斥的,例如进程P1和进程P2按如下安排,即可实现互斥。 设S为两进程互斥的公用信号量,初值赋予1,表明该临界资源未被占用。 进程P1 进程P2 P(s) P(s) S1 S2 V(S) V(S) 其中的S1,S2是两个互斥的程序段,即P1、P2的临界区。,小结: 信号量S0时的数值表示某类可用资源的数量。 执行P操作意味着申请分配一个单位的资
27、源。因此可描述为S:=S-1。当S0表示已无资源可用,此时S的绝对值表示信号量S的阻塞队列中的进程数, 执行一次V操作意味着释放一个单位的资源,描述为S:=S+1,若此时S0表明信号量的阻塞队列中仍有被阻塞的进程,因此在执行V操作时应唤醒该队列的第一个进程。,注意: 必须成对使用P和V原语:遗漏P原语则不能保证互斥访问,遗漏V原语则不能在使用临界资源之后将其释放(给其他等待的进程); P、V原语不能次序错误、重复或遗漏,【例3.1】 例子中的公用变量COUNT,是一个临界资源。两个并发进程对COUNT的操作必须互斥地执行。对此,可写出如下程序: begin COUNT:integer; S:s
28、emaphore; COUNT:=0; S:=1;,使用信号量实现互斥,process 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;,所以为使多个进程能互斥地访问某临界资源,只需为该资源设置一个互斥信号量mutex,并设其初值为1,然后将各进程的临界区CS置于P(mutex)和V(mutex)操作之间即可。,进程间的互斥: P(s) CS V(S)
29、,内容回顾,信号量的分类 P操作代表申请资源 V操作代表释放资源 P操作中心语句: S:=S-1; If then W(S) V操作中心语句: S:=S+1; If then R(S),s0,S0,互斥信号量的值: mutex=1: mutex=0: mutex=-n:,表示资源空闲,可供使用,表示资源已被占用,无其它进程等待。,表示资源已被占用,还有n个进程 因等待资源而阻塞。,小结: 信号量S0时的数值表示某类可用资源的数量。 执行P操作意味着申请分配一个单位的资源。因此可描述为S:=S-1。当S0表示已无资源可用,此时S的绝对值表示信号量S的阻塞队列中的进程数, 执行一次V操作意味着释放
30、一个单位的资源,描述为S:=S+1,若此时S0表明信号量的阻塞队列中仍有被阻塞的进程,因此在执行V操作时应唤醒该队列的第一个进程。,3. 利用信号量实现进程间的同步,一般来说,信号量初值为0,两个进程之间的同步模型如下: 进程P1 进程P2 L1:P(S) L2:V(S) 设进程P1先到达L1点,当它执行P(S),使S=1,于是P1进入阻塞状态并进入信号量S的阻塞队列;然后进程P2到达L2点,当它执行V(S)时,将S值变为0,于是唤醒P1,使其转变为就绪状态,当再调度到进程P1时,则P1可在L1点后继续运行下去。由些可见,当进程P1到达L1点必须与进程P2同步。,【例2】 用信号量实现司机和售
31、票员的同步。 设S1和S2分别为司机和售票员的私用信号量,初值均为0,则司机和售票员的同步过程描述如下: 司机进程 售票员进程 正常行车 售票 到站停车 P(S2) V(S2) 开车门 P(S1) 关车门 离站开车 V(S1),3.6 线 程,3.6.1. 线程的引入 进程的两个基本属性: 进程是一个可拥有资源的独立单位; 进程是一个可以独立调度和分派的基本单位。 (1)创建进程。系统在创建进程时,必须为之分配其所必需的、除处理机以外的所有资源。如内存空间、I/O设备以及建立相应的PCB结构。 (2)撤消进程。系统在撤消进程时,又必须先对这些资源进行回收操作,然后再撤消PCB结构。 (3)进程
32、切换。在对进程进行切换时,由于要保留当前进程的CPU环境和设置新选中进程的CPU环境,为此需花费不少处理机时间。,3.6.2. 线程的基本概念 线程可定义:进程中的一个执行活动;进程中的可调度实体;一个独立的程序计数器。 如果把进程理解为在逻辑上是操作系统的一个任务,那么线程表示完成该任务的许多可并发(并行)执行的子任务。,3.6.3 线程与进程的关系,1调度:在传统的操作系统中,拥有资源的基本单位和独立调度、分派的基本单位都是进程。引入线程以后,把线程作为调度和分派的基本单位,而把进程作为资源拥有的基本单位。 2并发性:在引入线程的操作系统中,不仅进程之间可以并发执行,而且在一个进程中的多个
33、线程之间亦可并发执行,因而使操作系统具有更好的并发性,从而能更有效地使用系统资源和提高系统吞吐量。,3拥有资源:不论是传统的操作系统,还是设有线程的操作系统,进程都是拥有资源的一个独立单位,它可以拥有自己的资源。一般的说,线程自己不拥有系统资源(也有一点必不可少的资源),但它可以访问其隶属进程的资源。 4系统开销:由于在创建或撤消进程时,系统都要为之分配或回收资源,如内存空间、I/O设备等。因此,操作系统所付出的开销将明显地大于在创建或撤消线程时的开销。,返回本节,3.7 死锁问题,3.7.1 死锁产生的原因 3.7.2死锁举例 3.7.3 产生死锁的必要条件和预防死锁,返回本章首页,所谓死锁
34、,是指多个进程因竞争资源而造成的彼此无休止地互相等待,在无外力作用下永远不能摆脱的僵局,这种僵局使参与的进程永远不能向前推进。,下一页,P1、P2是两个并行进程,R1、R2是系统中可共享的独占资源。当两个进程以如下顺序推进时: P1分配占有R1 ;P1申请R2; P2分配占有R2; P2申请R1。 申请 占有 申请 占有 图3.16 两个进程的死锁,3.7.1 死锁产生的原因,所以产生死锁的原因可归纳为以下两点。 (1) 系统资源的不足。这必定会引起进程间资源竞争,资源竞争是产生死锁的原因之一。 (2) 进程推进顺序非法。任何系统资源不足是一定的,但是只有当进程执行过程中,请求和释放资源的顺序
35、不当时,如图3.16所示,才会导致死锁,所以,进程推进顺序不当是产生死锁的第二个原因。,下一页,下一页,内容回顾,死锁的概念 死锁产生的原因,1、 产生死锁有四个必要条件,互斥条件:一个资源一次只能被一个进程所使用,即是排它性使用。 不可剥夺/抢占条件:一个资源仅能被占有它的进程所释放,而不能被别的进程抢占。 请求和保持条件:进程已经保持了至少一个资源,但又提出了新的资源要求,而该资源又已被其它进程占有,此时请求进程阻塞,但又对已经获得的其它资源保持不放。,返回本节目录,2、解决死锁的方法 : (1) 预防死锁。通过设置某种限制条件,去破坏产生死锁必要条件中的一个或几个,来防止死锁出现。这一方法较易实现,但往往由于所施加的限制条件太严格,导致系统资源利用率下降。 (2) 避免死锁。事先不施加预防死锁的某种强制条件,而在资源动态分配过程中,采用某种方法避免系统进入不安全状态,从而避免死锁的发生。在这种方法中,只是事先施加一些弱的限制条件,以使资源的利用率不致降低很多。,(3) 检测死锁。这种方法事先不采取任何措施,系统发生死锁时,只是通过系统设置的检测机构,及时
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年安徽工贸职业技术学院单招综合素质考试题库附答案详解(夺分金卷)
- 2026年安徽工贸职业技术学院单招职业倾向性测试题库附答案详解(综合题)
- 2026年安徽工贸职业技术学院单招职业技能测试题库及参考答案详解一套
- 2026年安徽工贸职业技术学院单招职业技能考试题库含答案详解(满分必刷)
- 2026年安徽工贸职业技术学院单招职业适应性测试题库带答案详解(考试直接用)
- 2026年安徽广播影视职业技术学院单招综合素质考试题库附参考答案详解(预热题)
- 2026年安徽广播影视职业技术学院单招职业倾向性考试题库附参考答案详解(综合题)
- 2026年安徽广播影视职业技术学院单招职业技能测试题库附答案详解(培优b卷)
- 2026年安徽广播影视职业技术学院单招职业技能考试题库附参考答案详解(能力提升)
- 互联网公司程序员面试常见问题与策略
- 2025年中邮资产管理公司招聘笔试备考题库(带答案详解)
- 小型监理公司管理办法
- 2025年中考道德与法治(湖北卷)真题评析
- 制衣厂清洁卫生管理制度
- 2025常州市高级职业技术学校工作人员招聘考试真题
- 山海联盟协作学校七年级下学期语文期中试卷
- T/CCOA 60-2023中长链甘油三酯食用油
- (高清版)DB13∕T 5817-2023 河流(湖泊)健康评价技术规范
- DB32-T 4264-2022 金属冶炼企业中频炉使用安全技术规范
- (甘肃二诊)2025年甘肃省高三月考试卷(4月)物理试卷(含官方答案)
- 酒店酒店经营管理策划方案
评论
0/150
提交评论