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

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

好同学们,大家好,今天呢,我们来为大家介绍一下操作系统当中处理机调度与死锁这样一个部分。在多大程序环境下呢?内存中存在着多个进程,其数目呢?往往多于处理机数目。这就要求了系统按某种算法动态的将处理机呢分配给就处于就绪状态的一个进程实质执行。分配处理机的任务呢,是由处理机调度程序完成的,对于大型系统运行时的性能呢,如系统吞吐量,资源利用率,作业周转时间或响应时间等及时性的。

很大程度上都取决于处理器调度性能的好坏,因而呢,处理器调度呢,成为操作系统中至关重要的部分。那么,我们来看一下处理器调度与死锁。在多道程序系统中调度的实质呢,是一种资源分配调,处理器调度呢,是对处理器资源进行分配。处理器调度算法呢,是指根据处理器分配策略所规定的处理器分配算法在多道批处理系统中一个作业,从提交到获得处理器执行,直至作业完毕。可能呢,

需要经过多级处理器调度。我们接下来呢,来看一下处理器调度的层次。我们处理器调度层次呢有。高级调度。低级调度和中级调度。那么高级调度呢?又称为长城调度或者作业调度,它的调度对象呢?是作业,其主要功能呢?是根据某种算法决定将外存上处于后备队列中的哪几个作业呢?调入内存为他们创建进程。分配必要的资源,并将他们呢放入就绪队列高级调度的主要目标呢?

它需要使多道批处理系统中。能够呢。得到一个。适适适合的,这样一个适当的。运行的这样一个运用效效果,而在分时的实时系统中呢,不设置高级调度。一级调度是什么呢?一级调度又称为进程调度或短程调度,其所调度的对象呢?是进程。或内核及线程,其主要功能呢,是根据某种算法决定就绪队列中哪个进程应获得处理机,

并由分派程序来将处理器分配给被选中的进程。进程调度啊,是最基本的一种调度,在多道批处理系统中,分时系统中和实时系统三种类型的操作系统中呢,都必须配置这这这一调度。那么,中级调度是什么呢?中级调度又称为内存调度,引入中级调度的对目的呢?是提高内存的利用率和系统存储量。因此呢,应该把那些暂时不能运行的进程调至外层上,等待此时进程的状态呢,称为救助。

就是住外层的状态或化学状态,当他们呢,已具备具体运行条件,且内存又有税务空闲时呢,由中级调度来决定把外层上的那些已具备运行条件的就绪进程呢,再重新调入内存。并修改其状态呢,为就绪状态挂在就绪队列上等待。终极调度了,实际上是存储器管理中的兑换功能。那么,在这三种不同层次的调度当中,进程调度的运行频率最高。因此呢,也也把它称为短程调度。

那么,它仅仅过很短一段时间呢,便进行一次进程调度,那么已经是把它称为短程调度。作业调度呢,往往是发生在。一批作业已完成。并退出系统又需重新调入一批作业呢,进入内存时那么发生了这样一个部分。作业调度的周期较长,因此呢,又把它称为长城调度。中级调度的运行频率呢?基于这样一个短程调度和长和高级调度之间。因此呢,

又把它称为忠诚调度。那么一般而言呢,在一个操作系统的设计当中,应如何选择调度方式和算法,在很大程度上呢,取决于操作系统的类型和其设计目标。比如说在批处理系统中,分时系统和实时系统中,通常呢,都采用不同的调度方式和算法。那么,处理器呢?调度算法的共同目标有资源利用率,公平性,平衡性以及呢?

策略强制执行,资源利用率呢,是为了提高系统的资源利用率,因使系统中处理机和其他所有资源都尽可能的保持忙碌。其中最重要的是处理器利用率,那么可以利用这样一个方法计算处理器的利用率CPU的利用率等于CPU有效工作时间。除以CPU有效工作时间,加上CPU的空闲等待时间,这是我们的c处理器的利用率。那么,接下来我们看一下公平性,公平性呢?是指因使租进程呢?都获得合理的CPU,时间不会发生进程饥饿现象。

公平性是相对的,对于相同类型的进程获得相同的服务,对于不同的进程呢,由于其紧迫程度或重要性的不同,则提供不同的服务。那么,还有平衡性,平衡性呢?在系统中呢?可能具有多种。类型的进程有的属于计算作业,有的属于IO型。为了使系统中的CPU和各种外部设备呢,都能处于忙碌状态。调度算法呢,

应尽可能的保持系统资源使用的平衡性,另外呢,还有策略强制执行,对所制定的策略呢,包括安全策略,只要需要就必须予以准确的实行。即使会造成某些工作的延迟呢,也要执行,那么这是我们处理及调度算法的共同目标,也就是我们的资源利用率公平性,平衡性以及呢策略强制执行。接下来我们看一下。批处理系统的目标,批处理系统的目标呢?那么要求平均周转时间短。

那么,要求平均周转时间短。系统吞吐率。高处理机呢?利用率高,那么要求了这些方式,那要求了这些方式,那么我们来看一下。平均周转时间短,对于每个用户来所谓的平均周转时间呢,是指从作业被提交给系统开始,到作业完成为止的这段时间的间隔。称为作业的周转时间,它包括四部分的时间,比如说作业在外存后备队列上的等待时间。

进程。在救区队列上,等待进程调度的时间CPU在进程在CPU上执行的时间以及呢,进程等待IO操作完成的时间。对于每个用户而言,都希望自己的周转时间短,但作为计算机系统的管理者,总是希望能使平均周转时间最短。这背景呢,会有效的提高系统资源的利用率,而且还能使大多数用户感到满意,因使作业周转时间和作业的平均周转时间尽可能短,否则呢,会使很多用户呢,等待时间过长,

那么这将呢?引起用户特别是转作业用户的不满,那么我们可以呢,把平均周转时间呢描述为这样一个t等于n分之一sigma I等于一到nti的这样一个方式。那么,为了进一步的反映调度的性能,更清晰的描述其周转时间,等待时间和执行时间的具体分配呢?往往使用代权。周转时间,也就是说作业的周转时间t呢,与系统为它提供的服务时间ts成正比,也就是说w呢就。就是等于。t除以ts,

也就说我们这个公式呢,就是w等于n分之一sigma I等于一到nti除以ts。那么第二个呢?是系统吞吐量高,由于吞吐量呢,是指在单位时间内系统完成的作业数。因此,因而呢,它与批处理作业的平均长度有关。那么,事实上呢,如果是为了获得高的系统吞吐量,就应该呢。尽量多的选择短作业运行,那么第三个处理器的利用率高,

对于大中型的计算机CPU价格呢十分昂贵,致使处理器呢,利用率呢成为衡量系统性能的十分重要的指标。而调度方式和算法呢,又对处理器的利用率起着什么重要的作用,如果单纯是为了使处理器利用率高了,则应。尽量多的选择计算量大的作业运行,那么那么我们可以看到啊,这些要求之间呢,存在一定的矛盾。接下来我们再看一下分时系统的目标,分时系统的目标呢?它要求响应时间快以及呢均衡性。响应时间快了,

是我们选择分时系统的忠诚调度的算法的重要准则。所谓响应时间,是用户通过键盘提交一个请求开始。直到屏幕上显示出处理结果为止的一段时间,它包括三部分,一是请求时间从键盘输入开始。直到持传到处理器的时间,第二是处理器对请求信息处理的时间,第三部分呢,是将所形成的响应信息回送到终端显示器的时间。均衡性呢,用户对响应时间的要求呢,并非完全相同。通常用户对较复杂任务的响应时间允许,时间较长,

对简单简单任务的响应时间要短。所谓的均衡性。是指系统响应时间的快慢,应与用户请求服务的复杂性相适应,这是我们分分时系统的目标。最后呢,我们来看一下实时系统的目标,实时系统的目标呢,第一个是截止时间的保证,所谓我们的实时系统呢,那么就是说要求在一定的时间。之前完成相应的操作,那么这就是我们实时系统的这样一个部分,所谓的实时系统呢?它的截止时间的保证呢?

就为了截止时间,就是指某任务必须开始执行的最迟时间。或者说必须完成的最迟时间,对于严格的实时系统是调度方式和调度算法呢,必须能保证这这样一个方式,否则呢,就可能造成难以预料的后果。对于实时系统而言,调度算法的一个主要目标呢,是保证实时任务对截止时间的要求。对于我们的硬实时任务而言。其调度方式呢?和调度算法必须保证对截止时间的要求,否则呢,可能造成难以预料的后果。

对于软实施任务而言,其调度方式和调度算法呢,也应基本上能保证对实。截止时间的要求,接下来我们看一下可预测性在实施系统中可预测性呢,显得比较重要,比如说在多媒体系统中,无论是电影还是电视剧啊,都应该是连续播放的。这就提供了请求的可预测性,如果系统中采用了双缓冲,则可以实现di帧的播放和di+1帧的逐渐读读取。进而呢,提高。其实用性那么这是我们的可预测性。

那么接下来呢?我们再看一下作业与作业调度,在多道批处理系统中作业呢,是提交给系统的一项相对独立的工作。操作员把用户提交的作业呢,通过相应的输入设备输入到磁盘,存储器,并保存在一个后备作业中,再由作业调度程序呢,将其从外存调入内存。那么我们看一下批处理系统中的作业,有我们的作业和作业簿,那么作业是什么呢?作业是一个比程序更为广泛的概念,它不仅包含了通常的程序和数据。

还应该配有一份作业说明书系统呢,根据该说明书呢来对程序的运行进行控制,在批处理系统中呢,是以作业为基本单位,从外存调入内存的。那么我们看一下什么是作业簿呢?通常在成作业运行期间,每个作业都必须通过若干个相对独立又相互关联的顺序加工步骤才能得到结果。我们把其中每一个加工步骤呢,称为一个作业部,各作业部之间呢,存在着相互的这样一个关系,往往是上一个作业部的输出,作为下一个作业部的输入。比如说一个典型的作业呢,

可以分为编译作业部链接装配作业部和运行作业部,那么这些部分。接下来,我们看一下作业控制块,我们之前讲过了,进程控制块,线程控制块,那么现在有一个作业控制块。为了管理和调度作业呢,在多道批处理系统中为每个作业设置一个作业控制块gcb。它是作业在系统中存在的标志,其中保存的系统对作业进行管理和调度,所需的全部信息通常在gcp中包含的内容呢?有作业标识,用户名称,

用户账号。作业类型以及呢,作业状态以及呢,我们的调度信息资源需求,资源使用情况这些部分。每当一个作业进入系统时,便有作业注册程序呢,为该作业建立一个作业控制会计CP,然后呢,再根据作业类型将它放到相应的作业后备作业中等待调度。调度程序依据一定的调度算法来进行调度,被调度的作业呢,将被装入内存在作业运行期间。系统就按照gcb中的信息和作业说明书对作业进行控制,将一个作业执行结束后呢,

进入完成状态时呢,系统负责回收,以分别看一下它的资源,撤销该作业控制块。好吧,我们来看一下作业运行的三种状态,三个阶段和三种状态,作业从进入系统到运行结束,通常需要经过收容运行和完成相应的状态。相应的作业呢,有具有后备状态,运行状态和完成状态三个状态。收容阶段呢,是操作员把用户提交的作业通过某种方式或者是播音系统的。输入到硬盘上,

再为该作业创建gcb作业控制块,并把它放入后作业后备队列中。相应的,此时的作业的状态呢?称为后备状态。运行阶段是什么呢?运行阶段是作业和作业调度,被作业调度选中后变为它呢?分配相应的资源呢?和建立进程。并将它放入就绪队列,一个作业从第一次进入就绪队列开始,直到做直到它运行结束完,此时间呢,都处于运行状态。

那么,完成阶段是什么呢?完成阶段是当用户运行完成或发生异常情况,提前结束时作业呢?便进入。完成阶段相应的作业状态呢?为完成状态,此时系统中的作业呢它。会回收以分配给该作业的作业控制块和所有资源,并将作业运行,结果呢,形成输出文件和输出,那么作业作业运行的三个阶段和三种。三个状态,那么我们来看一下作业调度的主要任务,

那么作业调度的主要任务呢?作业调度的主要任务呢?那么,作业叫做主要任务,那么按照gcb中的信息检查系统中的资源呢?能否满足作业对资源的需求?以及按照一定的调度算法,从外层的后备队列中选取某些作业调入内存,并为他们呢,创建进程分配必要的资源。然后再将新创建的进程呢,排在就绪队列上进行等待,因此呢,也把作业调度称为接纳调度,在每次调度作业时呢。

都去做出这样一些决定,比如说接纳多少个作业,以及呢?接纳哪些作业在每一次进行作业调度时呢?应当从后备队列中选择多少作业调入内存?取决于多大程序度。就是已允许多个作业呢,同时在内存中运行,对系统来说,希望装入更多的作业,有利于提高CPU的利用率和系统的吞吐量。但是如果内存中同时运行的作业太多时,系统在运行时因内存不足所发生的中断呢,就会急剧增加,这会使平均周转时间呢较长。

影响到系统的服务质量,因此呢,多道程序度的确定呢,是根据计算机的系统规模,运行速度,作业大小以及呢,能否获得较好的系统性能的。这样一个方式呢,做出了这样一个决选择,那么第二个接纳哪些作业呢?应该选择后备作业中的哪些作业调入内存取决于。常选择的调度算法最简单的是先来先服务调度算法,它是将最早进入外层的作业呢,调入内存那么比较常用的一种呢是。是基于作业优先级的调度算法,

该算法呢,是将外层上作业优先级最高的作业呢,调入内存。比较好的一种算法呢,是响应比优先的,这样一个调度算法,那么之后呢,我们会讲一下这些作业调度算法的这样一些方式。在批处理句容中,作业进入系统后,总是先驻留在外层的作业后备队列上,因此需要有作业调度,把他们呢?分批的装入内存,然而在分时系统中呢,

为了做到及时响应,用户会通过键盘输入的命令或数据呢,都被直接送入到内存,因此无非配备这样一个作业调度机制。但也需要有某种接纳控制措施来限制进入系统的用户数目。那么,这是我们的在另外呢?在实习系统中呢?也不需要作业调度,而必须有。接纳控制措施。好,我们再看一下这些作业的调度算法,首先呢,是先来先服务调度算法fcfs first come first server的。

ess CSS呢是最简单的调度算法,该算法呢,既可用于作业调度,也可用于进程调度。当在作业调度中采用该算法时呢。系统将按照作业到达的先后次序来进行调度,或者它是优先考虑在系统中等待时间最长的作业而不管呢,该作业所预知执行的时间的长短。从后备队列中呢,选择几个最先进入该队列的作业,将他们调入内存,为他们分配资源和创建进程,然后把他们放入就绪队列。也就是说,我们的fcs呢?

它的调度呢,是选择最先进入我们队列的作业来进行调度,也就是说它是先进入队列先调度的,这样一个方式,那么是我们的fcfs。我们来看一下,再看一下短作业优先sgf short job,first这样一个调度算法,在实际情况中呢,短作业呢,占有很大的比例,为了使他们能够比长作业呢,优先运行。而产生的短作业的优先调度算法,那么短作业优先调度算法呢?

是以作业的长短来计算优先级。作业越短,其优先级越高。作业的长短呢,是以作业所要求的运行时间来衡量的。s jf算法呢,可以分别用于作业调度和进程调度,再把短作业优先调度算法用于作业调度的时候呢,它将从外存的后备队列中选择若干个运行时间最短的作业。优先将它们调入内存,那么这是我们的短作业,优先的算法。短作业优先算法有,还有一些缺点,它的缺点呢,

是必须预知作业的运行时间,在采用这样的算法的时候呢,要先知道每个作业的运行时间。才能够呢,找到运行时间最短的作业了,将它调入内存,如果呢,估计过低系统呢,可能按照估计的时间呢,终止作业的运行。但此时呢,并未完成不一般,所以一般呢,都会进行一个偏长的估计。那么另外呢?

对长作业呢?非常不利,长作业的周转时间呢?会明显的增长,那么更严重的是该算法呢?完全忽视作业等待时间。可能使得作业等待时间过长,出现饥饿现象,另外呢,在使用fcfs的时候呢,人机无法交互。该调度算法呢,未考虑到作业的紧迫程度,那么。并不能够保证紧迫性作业呢,

能够得到及时处理。接下来我们看一下优先级调度算法和高响应,比优先调度算法优先级调度算法,那么就是我们的这样一个部分,我们。那么可以这样来看,这样一个作业的优先级,对于先来先服务算法,那么作业的等待时间就是作业的优先级。等待时间越长,其优先级越高。对于转作业优先调度算法作业的长短呢,就是作业的优先级作业所需的时间越短,其优先级越高。那么,

这上这样两种方法呢?都不能反映作业的紧迫程度,而在优先级调度算法中呢?则是基于作业的紧迫程度,那么由外部赋予作业相应的优先级。调度算法呢,是根据该优先级进行调度,这样可以保证紧迫性的作业的优先运行。优先级调度算法呢,可以作为作业调度算法,也可以作为进程调度算法。当该算法作用于作业调度时呢,系统就从后备队列中选出若干个优先级最高的作业来调入内存,那么这是我们的优先级调度算法。那么我们再看一下高响应比调度算法,

在高响应比调度算法中,那么在批处理系统中呢?我们的先来先服务算法呢?只考虑的是作业的等待时间,而忽略了作业的运行时间。而短作业优先算法呢?与之相反,只考虑作业的运行时间,而忽视了作业的等待。时间高响应比调度算法呢?既考虑了作业的等待时间,又考虑作业的运行。时间的调度算法,因此呢,既照顾了短作业。

又照顾了,又改善了处理器的这样一个处理器的这样一个处理器的性能。高响应比优先调度算法呢。那么是这样一个部分,我们被每个作业呢引入了一个动态优先级,该优先级呢是可以改变的,令它随等待时间延长而增加。这将使作业的优先级呢,在等待时间内不断的增加,但等到足够的时间呢,并有一定就会有机会呢,获得处理机。那么,这样一个优先级的变化归一了,那么可以用这样一个公式来表示就优先权等于等待时间,

加上要求服务时间来除,以要求服务时间。由于等待时间呢,与一。服务时间之和就是作业,对该作业的响应时间,因此呢,该优先级呢,又相当于响应比,所以呢,优先呢,又可以表示成这样一个响应时间,除以要求服务时间这样一个方式。那么,从这样一个式子呢?

我们可以看到,如果作业的等待时间相同,则要求服务的时间越短,其优先权呢越高。有因此呢,类似于短作业优先的算法,类似于短要。有利于短作业,当要求服务的时间相同时,作业的优先权呢,又决定于其。等待时间,因此呢,该算法呢,又相当于先来先服务算法,

对于长作业的优先级,可以随等待时间的增加而提高,当其等待时间足够长的时候呢,也可以获得处理机。因此呢,该算法呢,实现了较好的折中,较较好的这种更好的适当的这样一个部分。那么在然而呢?在利用该算法时呢?每次都要进行调调度,之前都要进行响应笔的运算,那么会增加系统的开销。那么,接下来我们看一下进程的调度,

进程调度呢?是操作系统中呢?那么必不可少的一种调度。因此,在它三种类型的操作系统中。都配置了进程调度,那么此外呢,它也是对系统性能影响最大的一种处理器调度,那么相应进程调度的算法呢,也有很多。进程调度的机制任务和方式是什么呢?进程调度的任务,进程调度的任务呢?主要有三个,第一个保存处理器的现场信息。

第二个按照某种算法来选取进程,第三个把处理器分配给进程,那么保存处理器的现场信息呢?在进行调度时呢?需要首先保存进程的,当前的处理器的现场信息,比如说我们计程序计数器多个通用寄存器中的内容了吗?这些部分。按照某种算法来选取进程呢,是调度程序,按照某种算法,从救济队列中选出一个进程,将其优先,将其运,将其状态呢改为运行状态。

冰棒处理器呢,分配给它。把处理器呢分配给进程,这个呢是由分派程序,把处理器呢分配给该进程,此时需要将选中进程的进程控制块内有关的处理及现场信息呢,装入处理器相应的各个存储器中。把处理器的控制权呢,交给该进程,让它从上次的断点的那么继续的恢复执行,那么这是我们进程调度的任务。那么我们再看一下进程调度的机制,为了实现进程调度呢?在进程调度技术中应该有三个部分,第一个呢是排队器,

第二个呢是分派器,第三个呢是上下文切换器。那么我们看一下就是这样一个图当中的这样一个部分,就有我们的这样一个排队器,分派器以及呢上下文切换器,那么这样一些运行的这样一个运用部分。排队期呢,是为了提高进程的调度的效率,应当事先将系统中的所有就绪进程呢,按照一定的策略排成一个或多个队列。以便调度程序呢,能最快的找到它以后,每当有一个进程变成就绪状态时呢,排队器便将它插入到相应的就绪队列。分派期呢?

是分派期依据调度程进程调度程序所选定的进程,将其从就绪队列中取出,然后进行分派期呢?到新选出的进程之间的向上下文切换。将处理器呢分配给我们的精选出的进程。上下文切换区呢,是对处理器进行切换的时候呢,会发生上下文。的切换操作。就会发生两对上下文的切换操作,第一次上下文切换呢?操作系统呢?将保存当前进行的上下文,然后把。当前进行的处理及寄存器内容呢?

保存到该进程的进程会计当中的相应控制进程,控制会计当中的相应单元。再装再装入分派程序的上下文。是分派程序运行第二次。上下文切换呢,是移出分派程序的上下文,而把新选进程的CPU现场信息呢装入到。处理器的各个相应的寄存器中,以便选择了进程进行运行。这是我们的。进程调度机制的这样一个三个部分。那么,进程调度的方式呢?有在早期呢,所采用非抢占式调度呢,

有很大的局限性,很难满足交互式作业。它的和实施任务的需求,因此呢,在进程调度中又引入了抢占方式,那么我们来看一下抢占方式,它的这样一个内容。在采用非抢占方式的时候呢,一旦处理器把进程把一旦把处理器分类给某进程后,就让它一直运行下去,那么绝不会因为时钟中断或其他原因呢,去抢占当前运行进程的这样一个。处理机直到该进程完成或者发生某事件被阻塞的时候呢,才把处理机呢分配给其他进程。在采用非强制式调度的时候呢,

可能引起。调度的引起进行调度的原因呢?是正在执行的进程呢?运行完毕,或者呢,因为某事件而无法继续执行,而正在执行的进程呢,由于提出IO请求暂停执行。或者说,在进程通信或同步的过程中执行的某种源语操作。那么,这种调方式的优点呢?是实践简单,开销较小,适用于大多的批处系批处理系统,

但是呢,它不能用于分时系统和大多数实施系统。接下来我们来看一下抢占方式,这种调度方式呢?允许调度程序根据某种原则去暂停某个正在执行的进程,将已分配给该进程的处理机呢?重新分配给另一进程。在现代操作系统中呢,广泛采用抢占方式,那么这是因为呢?对于批处理器系统。可以防止一个长进程,长时间的占用处理机,以确保处理机能,为所有的进程提供公平的这样一个服务。

在分时系统中呢,只有采用抢占方式。才可能实现人机交互,在实施系统中抢占方式呢?能满足实施任务的需求,在抢占当时呢?比较复杂,所付出的这样一个系统开销呢?也比较大。抢占不是一种任意性行为,它必须呢,遵循一定的原则,那么主要的原则呢,有优先权原则。短进程优先原则以及时间片原则,

这样吧,这样这样一些原则,那么接下来呢,我们看一下轮转调度算法。在分时系统中呢,最简单的就是用于基于时间片的轮转调度算法,那么这样一种算法呢,采用非常公平的处理及分配方式,就是呢,就绪队列上的每个进程呢,每次仅运行一个时间片。如果就绪对立上有n个进程,每个进程大约每可获得n分之一的处理期时间,我们来看一下轮转。调度轮断法的基本原理。

在轮转法中。系统呢,根据fcfs先来先服务策略,生成一个就绪队列系统呢,可设置每隔一段时间呢,便可产生一次。中断激活系统中的进程调度程序,完成一次调度,将CPU呢分配给对手进程,一并另起执行一个时间片。当它运行完毕后呢,又把处理机呢分配给救济队列中的对手进程,让他执行一个时间片,这样呢就可以保证救济队列中所有进程呢,在确定的时间段内都能获得一个。

时间片的处理及时间。那么,它的切进程切换时间是什么呢?在轮转调度算法当中应在何时进行进程的切换呢?可分为两种情况。第一种呢,是若一个时间片的尚未用完,正在运行的进程呢,便已经完成,便立即执行调度程序,将它从就绪队列中删除,再调度就绪队列中对手的进程运行。并启动一个新的旗舰片第二个进程,切换的时间呢,是在一个时间片用完时,

计时器中断处理程序了,便被激活,如果进程了,尚未运行完毕。调入程序了,便把他送往救区队列的末尾。这是两种进程切换的这样一个情况。那么,时间片大小的确定是什么呢?在时间片大小算法轮转调度算法中,时间片的大小对系统呢?有着这样一个比较大的影响。那么我们看一下这个,这这样一个图当中那么它。这个图当中呢?

那么,我们有这样一个。时间片大小呢,对我们响应时间的影响,那么我们上一个图呢图a当上一个图呢,是我们的时间片呢,略大于典型交互的时间。而b下面一个图呢?那么我们。下面一个图呢,是时间变小于点型交互的时间,那么这是我们的。时间偏大小对响应时间的影响,那么这样一个图当中的部分。那么我们看一下。

这是。10q,1 q=1以及呢q=4的时候,它的这样一个进程的周转时间。那么,在轮转调度算法当中呢?时间片的大小对系统的性能有很大的影响,若想用很小的时间片,将有利于短作业,因此呢,它能因为呢?它能在时间片内完成。但时间片小便意味着频繁的执行进程调度和进行进程向上文的切换,这会增加系统的开销。那么,

如果时间片选的太长,且为每个进程呢,都在能够一个时间片来完成。rr这样一个时间片轮转调度算法呢,便退化为先来先服务算法,无法满足短作业与交互式用户的需求。那么,这是我们的这样一个。它的这样一个内容类型,那么一个比较适合适当的方法呢?是选取的时间片呢?是略大于一次典型的交互所需要的时间。使大多数交互性进程呢,能在一个时间片内完成,从而获得很小的这样一个响应时间。

那么,这是我们这样一个时间片大小的这样一个。实实施的这样一个部分。那么,接下来我们看一下优先级调度算法,在优先级调度算法时间线轮转调度算法中呢?那么,有一个假设,有一个这样一个设定的这样一个部分,就是系统中所有进行的紧迫性呢?是相同的。但实际情况呢,并非并不是这样,为了能满足实际情况的需求,在进程调度算法中呢,

引入优先级,从而形成优先级调度算法。优先级调度算法呢,把是把处理机呢分配给就绪队列中优先级最高的进程。那么这样呢,又既又可以把算法呢分成两种,就是非抢占式优先级调度算法和抢占式优先级调度算法。非抢建式优先级调度算法了,该算法的规定一旦把处理器分类给就绪队列中优先级最高的进程后,该进程呢,便一直执行下去,直至完成。或者呢,因该进程因发生某事件而放弃处理机时,系统呢,

才能将处理机呢分配给利益优先级最高的进程。而抢占式优先级调度算法呢,是把处理器分配给优先级最高的进程实施执行,但在其执行期间,只要出现了另一个优先级更高的进程。调度程序呢,就将处理器分配给新到的优先级,最高的进程,因此呢,在采用这种调度算法时呢,每当系统中出现一个新的进程I,新的进程时呢。就将其优先级呢,与近正在进行的进程优先级进行比较,如果新的进程呢,

优先级呢,低小于。这样一个正在进程的进行的进程的优先级,那么原进程呢?便继续执行,但是如果新的这个进程的优先级呢?高的这样一个方式呢?那么立即执行现在进程的这样一个执行。进行进行进进行进程切换,使这样一个新的进程呢,进入运行抢占式优先级调度算法呢,常用于对实时性要求较高的系统当中。那么,这是我们调度算法的类型,这样一个部分。


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