罗泽兵 发表于 2024-4-15 08:33:37

08.第08节课第三章处理机调度与死锁&

优先级的类型呢?优先级调度算法的关键呢,在于如何确定进程的优先级,以及呢,确定了是否使用静,是使用静态优先级,还是使用动态优先级。那么,静态优先级呢?是在创建进程时确定的,在程序进程的整个运行期间保持不变优先级呢?是利用某一范围的一个整数来表示的。我们又又把该整数呢称为优先数,那么确定进程优先级的依据呢?有进程类型对进程进程对资源的需求,

以及呢用户的需求。进程的类型呢,通常是系统系系统的,这样一个进程的优先级呢,一般高于。一般用户进程的优先级进程,对资源的需求呢?对资源要求小的进程呢?赋予较高的优先级。而用户要求呢,根据进程的紧迫程度以及呢用户呢,他的这样一个需要情况呢?来确定优先级。优先级静态优先级呢,比较简单,

那么系统开销较小,那么但是不够精确,那么可能呢,出现优先级较低的进程呢,长期没有被调度的这样一个情况。那么还有一个是动态优先级,动态优先级呢?是指在创建进程的时候呢?先赋予其一个优先级。然后呢,其随着进程的推进或等待时间的增加而改变,以便获得更好的进行调度,比如说可以在规定的就绪队列中进程随时间等待的正常。其优先级的相应的提高,若所有的进程都具有相同的优先级数值,

则最先进入进就是队列的这样一个进程呢,会因其优先级呢变得最高而获得处理机。那么,这相当于呢?先来先服务算法,若所有的就息队列呢?具有不同的优先级初值,那么对于优先级较低的进程呢?在等待了足够的时间之后,那么也可以获得处理器。那采用抢占式调度算法呢?若在规定当前进程的优先级,随时间的推移而下降,那么可以防止一个。长作业了,

长期的占用处理机,那么这是我们动态优优先级的这样一个部分,另外呢,我们还有多级?队列调度算法,那么在前面的各种调度算法呢?尤其在应用于进程调度的时候,由于系统中呢,仅设置一个进程的就绪队列。那么这样呢?积极调度算法呢?是固定的,单一的,无法满足系统中不同用户对进程调度策略的不同要求,在多处理及系统中呢?

这种单一调度策略呢?那么实现的机制呢?更加。缺点呢,更加就更更加更那么更就缺点呢,那么就让你更加那么使用了,这样一个更多的这样一个部分,因此呢,多级调度对列算法。能在一定程度上来了吗?解决这样一个问题。那么,这样的调度算法呢?是将就绪队列从一个拆分为若干个将不同类型或性质的进程呢?固定分配在不同的就绪队列中。

不停的就绪,队列呢,采用不同的调度算法,一个就绪队列中的进程呢,可以设置不同的优先级,不同就绪队列本身呢,可以设置不同的优先级。多级调度队列算法呢?由于设置了多个就绪队列,因此呢,对每个就绪队列呢?可以实施不同的调度算法,因此呢,系统针对不同用户的需求呢?可以提供多种调度策略。

那么,这是我们的多级调度算法规定的这样一个情况。那么,多级反馈调度队列算法呢?那么,这样一个。之前呢,我们这些调度算法都有一定的局限性,比如说未指明进程长度则短,作业优先短,进程优先和基于进常进进程长度的抢占的算法呢,都无法使用。而这样一个多级反馈队列调度算法呢,就不必事先知道各种进程所需要的执行时间,还可以较好的满足各种进程的这样一个需求。

那么我们看一下它的调度机制,那么调度机制呢?是多级调度算法的机制呢?那么第一个是设置多个就绪队列。那么,比如说我们设置多个就绪队列,第二个呢?每个队列都采用fcfs算法,就是每个队列呢?都采用先来先服务算法,那么就图中这样一个先的这样一个。多个队列这样一个情况,每个队列都采用先来先服务算法,当进程新进程进入d层后呢,首先将它放入第一队列的末尾,

按照先来先服务算法进行调度。等待调度当进轮到该进程执行的时候呢,如果能在时间片内完成便可撤离系统,否则呢,在第一个时间片内尚未完成调度程序呢,便它转为第二个队列末尾进行调度。如果它在第二队队列中运行一个时间片呢,未完成将它放入第三队列,那么以此类推。然后当进程最后被加了dn队列后呢,在dn队列中呢,便采用我们的时间,采用我们的这样一个时间轮断轮。轮转方式来进行运行。那么接下来呢,

按队列优先级调度。调度程序呢?首先,调度优先级最高队列中的这样进程进行运行。当第一,紧当第一队列空闲时呢,才调度第二队列中的队列进进程进行运行。也就是说,当紧张d1到i- 1所有队列均空时,才会叫入di队列的进程进行运行。如果处理器呢,正在对di队列中,为为某进程服务时呢,又有新进程进入任意优先级较高的队列,此时呢,

必须立即把正在运行的进程呢,放回di队列的末尾。而把处理器呢分配给新到的高优先级的这样一个进程。那么,接下来我们看一下调度算法的性能,在多级反馈调度算法中。那么,在多级反馈调度算法中,如果规定了第一个队列的时间线。越大于。多数人机交互所需要的处理时间便能较好的满足各种类型用户的这样一个需求。比如说终端型用户,比如说短作业,短批处理作业用户,以及呢?

长批作业。用户啊,这是我们调度算法性能的这样一个部分。接下来我们看一下基于公平原则的调度算法,那么之前呢,我们介绍的呢,那么就是我们的这样一个。算法呢,所保证的只是优先运行,比如说优先级算法呢,是优先级最高的作业运行,但不能保证作业占用了多少处理器时间,另外呢,也未保考虑到公平性。那么,

我们还有了。比如说在系统中有。那么比较一种比较容易实现的性能呢,是保证处理器分配的公平性。比如,在系统中有n个相同类型的进程,同时运行。为了保证公平起见呢,必须保证每个进程呢都获得相应的处理时间呢,为n分之一。那么,在实施公平调度算法时呢?系统具有一些要具有一些功能,比如说跟踪计算,每个进程自创建以来执行的处理及时间,

以及呢计算进程。每个进程应获得的处理及时间,也就是说,自创建以来的时间除以n。计算进程获得的处理及时间的比率,比如说计进程执际执行的处理时间和应获得的处理及时间之比。另外呢,也有比较各进程获得处理机的这样一个比率,比如说进程a的比率最低为零点五,而进程b的比例为零点八c的比例为零点一,这样一些部分。另外呢,调度程序应选择比例最小的进程,将处理器分配给它,并让该进程一直运行,

直到超过它最接近的进程比例为止。那么,这是我们的。保证调度算保证,保证调度算法这样一个部分,另外呢,还有公平,公公公平分享调度算法,那么就是分配给每个进程相同的处理之时间。那么显然呢,这对进程,而所有的进程而言,体现了一定的公平。但是如果每个用户呢,所用的进程数不同,

就会发生了对用户的不公平问题,那么这是我们的基于公平原则调度算法的这样一个部分。接下来我们看一下实施调度,在实施系统中呢,可能存在着两种不同性质的实施任务,也就是说硬实施任务和软实施任务。他们都联系了一个截止时间,为了保证系统能正常的工作,实时调度了必须能满足实时任务,对截止时间的要求,因此呢,实现实时调度呢,必须。具备一定的条件。我们来看一下实现实时调度的基本条件,

第一个呢,是提供必要的信息,为了实现实时调度。系统一向调度程序要提供有关任务的信息,比如说就绪时间和开始时间和截止完成时间。以及呢,处理时间资源要求优先级,那么这些部分就绪时间呢,是指某任务未完成就绪状态的这样一个成为已经执行状。就绪状态的这样一个起始时间,在周期任务,周期任务的情况下,它是事先预知的一串时间序列。开始截止时间和截完成截止时间呢?对于典型的实施任务作用,

实施应用只需知道截止时间或者完成截止时间。处理时间呢?那么是指一个任务,从开始执行到完成时,所需要的时间,资源要求的是任务执行,所需要的一组资源,那么优先级呢?是如果某任务的开始,截止时间错过,势必引起故障。则因为该任务呢,赋予绝对优先级,如果开始截止时间错过了,对于继续运行的没有影响,

则会为其赋予相对的优先级,那么供调度程序进行参考。那么,系统的处理能力强。那么,这是第二个条件,那么就是在实施系统中,若处理器的处理能力不强,则有可能呢,因处理器忙不过,那么无法去。你这样一个实实。实现的这样一个执行部分,而致使某些实施任务呢,不能及时得到处理,

从而导致发生难以预料的后果,那么假定系统中呢,有m个周期性周期性。实施硬实施任务,它们的处理时间呢,可表示为ci周期时间表呢,表示为pi只在单处理及情况下呢啊,必须满足这样一个限制条件呢,系统才能够进行调度,也就是说sigma I=1到m。ci ci p比上pi那么小,于等于一那么这样一个条件。提高系统处理能力的图形呢,有两个一个呢,是采用单处理器系统,

但必须增强其处理能力,以显著的减少对每一个任务的处理时间。第二个呢,是采用多处理器系统,那么假定系统中的处理器呢?为n那么这我们可以把这个时限制条件呢改为?sigma I=1到mci,比上pi小于等于n,那么这样一个情况,第三个条件呢,是采用抢占式调度机制。在还有硬实施任务的实施系统中呢,广泛采用抢占机制,这样呢,便可满足硬实施任务,

对截止时间的要求。但是呢,这种调度机制呢,比较复杂。第四个呢是?具有快速切换机制。为了保证硬实施任务呢,能够及时运行在系统中呢,还应具有快速切换机制,使之能够呢任务能快速的进行切换。那么比如说。该机制呢,要具有两方面的能力,第一个呢,是对中断的快速响应能力,

对紧迫的外部事件请求中断,能够及时响应。要求系统呢,具有快速硬件中断机制,还应该禁止中断时间呢,应该尽量的短,以免呢耽误时机,其他几个任务。第二个呢,是快速的任务,分派能力,为了提高分派程序进行任务切换时的速度,因使系统中的每个运行功能的单位适当的小,以减少了任务切换的时间开销。那么,

这是我们第四个这样一个条件,那么,这是我们那么这样呢?这就是我们的这样一个。实时调度的这样一个基本条件,那么就这样一个四个基本条件。接下来我们看一下实时调度算法的分类,那么我们可以按不同的方式啊,对实时调度算法来加以分类,根据实施任务的性质可以将调度算法呢分为硬实时调度算法和软实时调度算法。按调度方式呢,可以分为非抢占调度算法和抢占调度算法,那么非抢占调度算法有非抢占。轮转调度算法,那么也有了非强调是优先调度算法,

非强调是轮转调度算法呢?是一又有一台计算机控制若干个相同的对象。每个被控对象呢,建立一个实施任务,将它们排成一个轮转队列调度程序,每次选择队列中的第一个任务投入运行时,该任务完成后便把它挂在轮转队列的末尾进行等待。调度程序呢,再选择下一个对手任务呢,运行这种调度算法呢,可以获得这样一个。这样一个叫这样一个一段时间的这样一个。要要。有这样这样一个长度的,这样一个时间的,

这样一个时间的部分响应时间,那么可用于了要求不太严格的实时控制系统当中。非抢占式调优先调度算法呢?如果在系统中呢,还含有少量的具有一定要求的实施任务,那么则可抢选中非抢占式优先调度算法。一系统为这些任务呢赋予了较高的优先级。这些实施任务呢,到达的时候呢,把他们安排在救济队列的对手。当仅仅在当前任务的自我终止或者系统运行完成后,便可去调度执调度执行对手的这样一个高优先继承。这种调度算法呢?再进行处理后呢,可能使其响应时间减少到减少一减少这样一个部分,

这样一个部分减少一部分,这样一个情况,因而呢,有利于一定的。有一定的要可以用于一定要有一定要求的实时控制系统当中。那么,接下来我们看一下抢占式调度算法,抢占式调度算法呢?可以根据抢占发生时间的不同而分为两种调度算法,基于时间中时钟中断的抢占式优先调度算法。以及呢,立即抢占优先调度算法,那么我们看一下这个图中的这这四种基本这四种情这。我们看一下这样一个。情况,

比如说我们有非抢占轮转调度算法,以及呢基非抢占优先权调度算法和我们的基于时钟。中断抢占的优先权调优先权抢占调度,以及呢,立即抢占的这样一个优先权调度,那么这是我们的。四种情况的这样一个部分。那么,接下来我们看一下最早截止时间edf的这样一个算法,这样一个算法呢?这样一个算法呢?是根据任务的截止时间确定任务的优先级,任务的截止时间越早,其优先级呢越高,具有最早优先最早截止时间的任务呢?

排在队列的对手。该调度程序呢,在选择任务的时候呢,总是选择就绪队列中的第一个任务,为它分配处理机,最早截止时间算优先算法呢,既可以用于抢占式调度算法中,也可以用于非抢占式调度算法中。比如说我们看这个图中,它就表明了这个非常正向,非非常正式调度算法的。用于非周期实施任务的这样一个部分,那么这是我们的edf最早截止时间优先的。这样一个非强制式调度算法。啊,

比如说我们这一个。任务呢,执行的是我们的。开始时间呢。那么我们看一下这个图当中,在这个图当中呢,有四个非周期任务。那么,他们先后到达系统先。系统先调度任务,一执行在任务,一执行期间呢,任务二三又到又先后到达,由于任务三的。开始截止时间呢?

早于任务二,那么故在系统。故系统呢,在任务一结束后呢,先调度任务三执行,那么在此期间呢,又到达了作业四,其开始时间呢?比比二要早,那么这个时候呢?在任务三执行完后,系统呢,又调度任务四执行,最后呢,才调度任务二进行执行。

那么我们再看一下抢占式调度算法,用于周期性实施任务,那么我们看一下这个图当中呢?有这样一个表示。列出了这样一个算法呢,用于抢占优先调度算法这样一个例子,那么在这样一个图中呢,有两个周期任务。任务a和任务b的周期呢,分别为20毫秒。和50毫秒。每个周期的处理时间呢,分别为十毫秒和五二十五毫秒。好吧,我们看一下这个图中看这个图。

那么,这是我们的最早截止时间。用于抢占调度的这样一个示意图。那么,图中呢?我们这这里呢?就是我们图当中呢?表示出的这样一个。任务的。要到达时间,执行时间和最后结束时间,那么这样一个。调度的这样一个情况的情况的这样一个部分。那么,这是我们。

抢占式调度方式用于周期实施任务的这样一个。实现的这样一个方式,那么这样一个运用的,这样一个部分。那么,接下来我们再看一下优先级倒置,优先级倒置了,那么当前操作系统呢?广泛采用优先级调度算法和抢占方式。然而,在系统中存在的影响进程,运行的资源呢?可能产生优先级倒置的现象,也就也就是说,既优先级高的进程呢?

或线程被优先级低的进程,或线程的延迟或阻塞,我们举一个例子,比如说。在这个图当中呢,我们看我们看一下这个图当中这样一个例子。那么就这样一个优先级倒置,那么这样一个图。那么,在这个图当中呢?我们看一下。假设有三个完全。独立的进程p1p2和p3。p1的优先级最高,那么p2呢?

那么较低,那么p3呢?最低p1和p3呢?共享一个临界资源进行交互。而假如p3呢,先执行再执行呢,我们这样一个。自临界区的操作之后呢?那么到达临界区?代表临界区CS 3。在a时刻呢p2就绪。因为它比p3的优先级高,当p2呢,占用了p3的处理器呢,那么这个时候呢p1就。

那么就占用了p3的处理及运行,那么p1这个时候了。在b时刻呢,那么在下一个时刻呢p1就去,因为它比p2的优先级高p2强调了pp 1强调了p2进行运行。而在c时刻CP执行到这样一个p6 text的时候呢?要进入临界区,那么这个时候呢,由于相应的临界区呢,已被p3占用,那么p1将被阻塞,那么由p2继续运行。直到运行到时刻低之后呢,才进行停止,那么接着呢p3继续运行,

到时刻一的时候呢p3退出临界区了,那么再进行我们p的这样一个。全系的这样一个局系的这样一个意识的运运用的这样一个。学期现在这样一个运行的,这样一个部分,那么这是优先级倒置的这样一个方式,优先级倒置的这样一个情况。那么,优先级导致了解决方法呢?那么一种呢?是用。规定假如p3在进入临界区后呢?p3深入的处理器呢?就不允许被抢占,那么这是一种简单的这样一个处简单的这样一个解决方法。

那么,接下来最后呢?我们看一下这样一个部分就是死锁的,这样一个内容,那么所谓的死锁呢?那么,之前呢?在第二之之前我们讲过的这样一个进程的。进程的这样一个部分当中呢?进程的概念当中呢?我们已经讲到过死锁的概念,比如说系统当中只有一台扫描仪或一台刻录机。当两个进程p1p2,他们都准备将扫描的文件扣到CD光盘上。p1先申请扫描r1,

获得成功。p2先申请刻录机,获得成功。那么PE呢,又申请我们的。刻录机。但是它被分配了,给了p2进程,那么p2呢,又请求扫描仪,但因为了又被分配给了p1而阻塞,此时两个进程呢,都被阻塞。双方都希望对方能释放出自己所需要的资源,但他们呢,

都不能因都不能获得自己所需要的资源而继续运行。从而无法释放出自己所占用的资源,并一直处于这样的僵持状态,而形成死锁。那么,在系统中有不同的。类型的资源都可以引起,其中可以引起思索的呢,主要是采用互斥访问方法的,不可被抢占的资源。比如说前面我们介绍过的临界资源,比如说打印机数据文件,队列信号量,那么这样一些临界,这样一些临界资,

这样一些部分。我们再看一下可重用性资源和消耗性资源。可重用性资源呢?是一种可供用户重复使用的资源,那么它具有这样一些性质,每一个可重用性资源的单元呢?只能分配给一个进程使用,不能被多个进程共享进程,在使用可重用性资源时,需要按照这样的顺序请求资源。使用资源,释放资源这个顺序那么进行,那么这样一个使用,这样一个可重运资资源系统中的每一类可重运性资源的单元数目呢?是相对固定的。

进程在运行期间呢,基本的创建也不能删除好吧,我们再看一下可消耗性资源。可消耗性资源呢?又称为临时性资源,它是在系统运行期间由进程痛快的创建和消耗的。那么,它具有这样一些性质,比如说。每一类可消耗性资源的单元数目呢?在进程运行期间,是可以不断变化的,有时可能有很多,有时可能为零。进程在运行的过程中呢?

可以不断的创造出可消耗性的资源。将它们呢,放入该资源类的缓冲区中,以增加该资源类的单元数目,另外呢,进程在运行过程中可以请求若干个可消耗性单元,资源单元。用进用于进程自己的消耗,不再将它们返回到该资源列中。接下来我们再看一下可抢占资源,以及呢,不可抢占资源好吧,我们可以把系统中的资源呢分为两类,一种呢是可抢占性资源。这是。

指某进程在获得这类资源后呢?该进程,该资源呢?可以被其他进程的。或系统抢占,比如说优先级高的进程呢,可以抢占优先级低进程的这样一个处理机,或者呢,把一个进程从一个存储器转移到另一个存储器,当内存紧张时呢,还可以这样一个进程呢,从内存调入到。外存上即抢占该进程,在内存的空间。那么,

我们的CPU和组存呢?都属于可抢占性的资源。对于这类资源呢?那么不会发生。子锁那么另一类资源呢?是不可抢占性资源,比如说这一旦系统呢?将某资源呢?分配给该进程后,便不能将它强行回收,只能进程呢?在使用完后,自己释放,比如说当一个进程呢,已经开始刻录光盘时,

如果突然某个刻录机呢,分配到一个进程。那么,其结果呢?必然会损坏正在刻录的光盘,因此呢,等只能等到刻录好之后,由进程自己释放刻录机,另外呢,我们的这样一个磁带机打印机呢,都属于不可抢占资源。那么死锁呢?这一死锁的起因呢?通常呢,是由于多个。

进程对资源的抢占,不仅对不可抢占资源进行争夺时会引起思索,而且对可消耗资源进行争夺时呢,也会进行,也会产生思索。通常系统中所拥有的不可抢占性资源数目呢?不足以满足多个进程运行的需要时,需要在进程运行过程中。会因为争夺资源呢而陷入僵局,那么这是我们。进程应进程,不可抢占性资源以及思索。比如说,我们可以将这样一个问题呢,用资源分配图进行描述。

用方块呢,表示可重用的资源文件,用原生的表示进程,那么这样呢,我们表示这样一个p。f2这个资源呢?分配给了p2这个进程。f1这个资源呢?分配给了p1这个进程,那么但是这个时候呢p2。又在请求f1。那么p1呢,又在请求f2,那么这时候我们看一下,比如说。

当我们的箭头从进程指向文件时呢?表示进程请求该资源当箭头从资源指向进程的时候呢?表示该进程已被分配给了该进程。那么,我们可以看到,在p1p2以及二以及我们的f1f2之间,那么已经形成了一个环路,表明了。此所以此时呢,已经进入了死锁状态。好吧,我们接下来呢,介绍一下竞争可消耗性资源引起的死锁。比如说在这个图当中。在利用消息传递机制进行通讯时,

所形成的思索情况啊,在这个图当中呢,m1m2m3是。是可消耗性资源进程p1方面呢,产生消息m1。利用我们的这样一个原语呢,将它发送给p2,另一方面呢,它又要求从p3接受m3。进程p二一方面呢,产生m2又利用原语来将它发送给m3,另一方面呢,它又需要从接收第一产生的消息m1。类似的p3也产生m3,将它发送给我们的。

p1又要求从p2结束所产生的消息p2,那么这是我们三个进程的,这是我们进程的这样一个部分。那么,这三个进程呢?都可以将消息发送给下一个进程相应的,他们也能从接收了上一个进程发来的消息,因此呢,三个进程呢?顺利可以顺利的进行下去,那么不会发生死锁,那么如果三个进程呢,都先执行receive操作。去去去,进行我们的接收操作,

再执行我们的发送操作,那么这三个进程呢,会永远阻塞他,在他们的接收操作上。等待一条永远不会发出的消息,那么于是产生了思索。另外呢,进程推进不当会引起死锁,那么除了系统中呢,对多个进程的资源竞争会发生死锁外。进程在运行过程中对资源进行请求和释放的顺序呢?是否合法也在也是在进程系统中是否会产生词组的一个重要因素。比如说。系统中呢,只有一台打印机和一台磁带机可以供p1p2共享,

由于进程中呢,就一意不行,可能呢是p1p2按照这样一些不同的顺序呢向前推进。比如说。比如说当进程和pp 2并发执行时,那么我们按照这个顺序推进,那么首先请求request r1。p1 request r 1 PR 2p1那么release releaser 1p1 releaser 2p2。request r2p2以及呢?request r1p2而release的releaser 2p2和release releaser 1。那么这样的。两个进程呢,可以顺利完成,那么我们称这样的。这种不会引起死锁的。

推进顺序了是合法的。那么,如果并发进程p1p2,那么按照另外一种方式推进,比如说此时呢?p1保持了资源r1p2,保持了资源r2。系统呢,处于不安全状态,此时呢,如果两个进程继续向前推进,就有可能发生死锁。那么,这种情况呢?这样的一种进程推进顺序呢?

那么就是非法的。那么,接下来我们看一下死锁的定义以及呢?必要条件和处理方法。那么,在一组进程发生死锁的情况下,这组进死锁进程的每一个进程。都在等待另一个死锁进程所占有的资源,或者说每个进程所等待的事件呢,是该组中其他进程所释放所占有的资源。但由于这些进程呢,都无法运行,那么所以呢,他们都不能释放资源,也使使得呢,

没有一个进程能被唤醒。因此呢,这组进程只能无限的等待下去,那么所以说我们来看一下这样一个思索的定义,那么也就是说,如果一组进程中的每一个进程都在等待,仅由该进程的其他进程才能。引发的事件,那么该组进程呢?是死锁的,那么我们再来看一下这个定义,如果一个进程中。如果一组进程中,每一个进程都在等待,仅由该组进程中的其他进程才能引发的事件。

那么,该组进程呢?是死锁的,那么这是死锁的,这样一个定义。那么接下来呢?我们来看一下。产生死属的必要条件。那么,虽然在进程运行过程中呢,可能会发生死锁,但是产生死锁的必要是必须具有一定条件的,那么我们从上面可以看出产生死锁了,必须同时具备四个条件。只要其中任意一个条件不满足了,

失踪就不会发生,那么就是我们的护士请求和保持不可抢占。循环等待,那么这是四个条件,若数次条件请求和保持条件不可抢占,条件和循环等待条件。获置条件呢,是系统对所分配到的资源呢进行排他性使用,就是说在一段时间内某资源呢,只能被一个进程所占用。若此时呢,还有其他进程请求访问该资源,其请求进程呢,只能等待,直到了占有该资源的进程呢,

使用完毕释放。请求和保持条件呢,是系统进程呢,已经保持了至少一个资源,但是又提出了新的资源请求,而该资源呢,已被其他进程占有,此时的请求进程被阻塞。但对自己所获得的资源呢,保持不放不可抢占呢是。进程呢,已获得的资源呢,在未使用前不能被抢占,只能在进程使用完后呢,自己释放。

那么,循环等待是什么呢?在发生死锁时,必然存在一个进程到资源的循环链。也就是说,进程集合中的。第一个进程,等待第二个进程的资源,第二个等进程呢,等待第三个系统的资源,最后一个进程,又在等待第一个进进程所占用的资源产生的循环等待。那么,接下来我们看一下处理思索的方法,目前呢,

处理思索呢,有四种方法,预防思索,避免思索,检测思索和解除思索。预防思索了,这是一种比较简单的,直观的事先预防方法,这种方法呢,是通过设置某些。限制条件却产却破坏产生思索的四个必要条件中的一个或几个来预防思索,预防思索呢,是一种较为实现的方较为。较为实,较为易于实现的方法,

那么那么使用的比较多的这种情况。另外呢,还有避免思索,避免思索呢,同样是属于预预先释放策略,但是呢,它不是事先采用各种限制措施。却破坏时所产生的四个必要条件,而是在资源的动态分配过程中呢,用某种方法防止系统进入不安全的状态,从而呢,可以避免发生思索。检测死锁了,用这种方法呢,不需要采取任何限制性措施,

允许进程在运行过程中发生死锁,再可以通过检测机构及时的检测出死锁的发生,然后采取适当的措施。把死进程呢?从死锁中解脱出来,解解除死锁呢?是检测到系统中已经发生死锁的时候呢?就采取相应的措施,将进程从石头中解除出来,常用的方法是撤销一些进程,维修他们的资源,将他们分配给一。处于阻塞状态的进程呢,只是能够。继续运行,

这是我们处理世俗的。世俗的四种方法。


页: [1]
查看完整版本: 08.第08节课第三章处理机调度与死锁&