处理机调度算法的比较
处理机调度-调度算法

处理机调度-调度算法处理机调度-调度算法先来先服务(FCFS)调度算法概念将⽤户作业和就绪进程按提交顺序或变为就绪状态的先后排成队列,按照先来先服务的⽅式进⾏调度处理。
公平性1.直观看,该算法在⼀般意义下是公平的。
即每个作业或进程都按照它们在队列中等待时间长短决定它们是否优先享受服务2.但如果执⾏时间较短的作业或进程在某些执⾏时间很长的作业或进程之后到达,则它们将等待很长时间轮转法基本思路基本思路是让每个进程在就绪队列中的等待时间与享受服务的时间成⽐例过程将CPU的处理时间分成固定⼤⼩的时间⽚。
如果⼀个进程在被调度选中之后⽤完了系统规定的时间⽚,但未完成要求的任务,则它⾃⾏释放⾃⼰所占有的CPU⽽排到就绪队列的末尾,等待下⼀次调度。
同时,进程调度程序⼜去调度当前就绪队列中的第⼀个进程或作业。
轮转法只能调度可抢占资源轮转法只能⽤来调度分配那些可以抢占的资源。
将它们随时剥夺再分配给别的进程例⼦:CPU是可抢占资源的⼀种但如打印机等资源是不可抢占的作业调度不使⽤轮转法:由于作业调度是对除了CPU之外的所有系统硬件资源的分配,其中包含有不可抢占资源,所以作业调度不使⽤轮转法轮转法的时间⽚选取问题时间⽚长度的选择会直接影响系统开销和响应时间过短的问题:如果时间⽚长度过短,则调度程序剥夺处理机的次数增多。
这将使进程上下⽂切换次数也⼤⼤增加,从⽽加重系统开销过长的问题:如果时间⽚长度选择过长,例如⼀个时间⽚能保证就绪队列中所需执⾏时间最长的进程能执⾏完毕,则轮转法变成了先来先服务法由于时间⽚的选取要满⾜相应时间的要求,所以是有如下的关系:q=R/NmaxR:系统对响应时间的要求RNmax:就绪队列中所允许的最⼤进程数Nmax相应的关系:1.在q为常数的情况下,如果就绪队列中的进程数远⼩于Nmax,则响应时间R看上去会⼤⼤减⼩2.由于q值固定,从⽽进程上下⽂切换的时机不变,系统开销也不变。
3.CPU的整个执⾏时间等于各进程执⾏时间加上系统开销。
处理机调度算法实验总结

处理机调度算法实验总结1. 引言处理机调度算法是操作系统中的重要组成部分,它决定了如何合理地分配处理机资源,以提高系统的性能和效率。
本次实验旨在通过实际操作和实验数据的分析,对不同的处理机调度算法进行比较和总结,以便更好地理解和应用这些算法。
2. 实验设计在本次实验中,我们选择了三种常见的处理机调度算法进行比较,分别是先来先服务(FCFS)、最短作业优先(SJF)和时间片轮转(RR)。
我们设计了以下实验方案:2.1 实验环境•操作系统:Windows 10•开发工具:C语言编译器2.2 实验步骤1.设计并实现三个处理机调度算法的代码;2.编写测试用例,包括不同作业的到达时间和服务时间;3.运行代码,记录每个作业的等待时间和周转时间;4.分析和比较三种算法的性能指标;5.总结实验结果。
3. 实验结果经过实验运行和数据记录,我们得到了以下实验结果:3.1 先来先服务(FCFS)•等待时间:1.作业1:02.作业2:103.作业3:15•周转时间:1.作业1:102.作业2:203.作业3:253.2 最短作业优先(SJF)•等待时间:1.作业1:02.作业2:53.作业3:10•周转时间:1.作业1:52.作业2:153.作业3:203.3 时间片轮转(RR)•等待时间:1.作业1:102.作业2:53.作业3:0•周转时间:1.作业1:202.作业2:153.作业3:104. 结果分析根据实验结果,我们可以得出以下结论:4.1 先来先服务(FCFS)•优点:简单易实现;•缺点:平均等待时间较长,不适用于长作业。
4.2 最短作业优先(SJF)•优点:平均等待时间最短;•缺点:无法预测作业的运行时间,可能导致长作业等待时间过长。
4.3 时间片轮转(RR)•优点:对长作业有较好的响应时间;•缺点:平均等待时间较长,不适用于短作业。
5. 实验总结通过本次实验,我们深入了解了三种常见的处理机调度算法,并通过实验数据对其进行了比较和分析。
操作系统实验之处理机调度实验报告

操作系统实验之处理机调度实验报告一、实验目的处理机调度是操作系统中的核心功能之一,本次实验的主要目的是通过模拟不同的处理机调度算法,深入理解操作系统对处理机资源的分配和管理策略,比较不同调度算法的性能差异,并观察它们在不同负载情况下的表现。
二、实验环境本次实验使用的操作系统为 Windows 10,编程语言为 Python 38。
实验中使用了 Python 的相关库,如`numpy`、`matplotlib`等,用于数据生成、计算和图形绘制。
三、实验原理1、先来先服务(FCFS)调度算法先来先服务算法按照作业到达的先后顺序进行调度。
先到达的作业先被服务,直到完成或阻塞,然后再处理下一个到达的作业。
2、短作业优先(SJF)调度算法短作业优先算法选择预计运行时间最短的作业先执行。
这种算法可以有效地减少作业的平均等待时间,但可能导致长作业长时间等待。
3、时间片轮转(RR)调度算法时间片轮转算法将处理机的时间分成固定长度的时间片,每个作业轮流获得一个时间片的处理时间。
当时间片用完后,如果作业还未完成,则将其放入就绪队列的末尾等待下一轮调度。
4、优先级调度算法优先级调度算法为每个作业分配一个优先级,优先级高的作业先被执行。
优先级可以根据作业的性质、紧急程度等因素来确定。
四、实验内容与步骤1、数据生成首先,生成一组模拟的作业,包括作业的到达时间、预计运行时间和优先级等信息。
为了使实验结果更具代表性,生成了不同规模和特征的作业集合。
2、算法实现分别实现了先来先服务、短作业优先、时间片轮转和优先级调度这四种算法。
在实现过程中,严格按照算法的定义和规则进行处理机的分配和调度。
3、性能评估指标定义了以下性能评估指标来比较不同调度算法的效果:平均等待时间:作业在就绪队列中的等待时间的平均值。
平均周转时间:作业从到达系统到完成的时间间隔的平均值。
系统吞吐量:单位时间内完成的作业数量。
4、实验结果分析对每种调度算法进行多次实验,使用不同的作业集合,并记录相应的性能指标数据。
处理机调度实验报告

处理机调度实验报告处理机调度实验报告一、引言处理机调度是计算机操作系统中一个重要的概念,它涉及到如何合理地分配处理机资源以提高系统的运行效率。
本文将针对处理机调度进行实验,探讨不同调度算法对系统性能的影响。
二、实验目的本实验的目的是通过模拟不同的处理机调度算法,比较它们在不同负载下的性能表现,进而分析其优缺点,为实际操作系统的调度算法选择提供参考。
三、实验方法1. 实验环境本实验使用了一台配置较高的计算机作为实验环境,操作系统为Linux,处理器为Intel Core i7,内存为8GB。
2. 实验设置为了模拟不同的负载情况,我们使用了三个不同的测试程序:程序A、程序B和程序C。
程序A是一个计算密集型任务,程序B是一个I/O密集型任务,程序C是一个混合型任务。
3. 实验步骤首先,我们分别运行程序A、程序B和程序C,并记录它们的运行时间。
然后,我们使用不同的调度算法来调度这些任务,并记录它们的运行时间和系统资源利用率。
四、实验结果与分析1. 调度算法1:先来先服务(First-Come, First-Served,FCFS)FCFS算法按照任务到达的先后顺序进行调度,即先到先服务。
实验结果显示,在计算密集型任务下,FCFS算法表现较好,但在I/O密集型任务和混合型任务下,其性能明显下降。
这是因为在FCFS算法中,任务的执行顺序是固定的,无法根据任务的特性进行灵活调度。
2. 调度算法2:最短作业优先(Shortest Job First,SJF)SJF算法根据任务的执行时间进行调度,即执行时间最短的任务先执行。
实验结果显示,在计算密集型任务和混合型任务下,SJF算法表现较好,但在I/O密集型任务下,其性能较差。
这是因为在I/O密集型任务中,任务的执行时间不仅与计算量有关,还与I/O操作的耗时有关,因此SJF算法无法有效地进行调度。
3. 调度算法3:时间片轮转(Round Robin,RR)RR算法将处理机的运行时间划分为若干个时间片,每个任务在一个时间片内执行一定的时间,然后切换到下一个任务。
论述处理机调度算法中平均等待时间、平均周转时间等的计算方法与过程。并列举实例。

论述处理机调度算法中平均等待时间、平均周转时间等的计算方法与过程。
并列举实例。
处理机调度算法是操作系统中比较重要的一个技术,它能够有效地提高系统的效率和响应速度。
在处理机调度算法中,我们需要计算出一些关键指标,比如平均等待时间和平均周转时间等,以评估算法的效果。
下面就详细介绍一下这些指标的计算方法和过程。
1. 平均等待时间的计算方法与过程:平均等待时间指的是所有作业在进入就绪队列之后,等待被CPU执行的平均时间。
它的单位是时间片。
计算平均等待时间的方法是:首先记录下每个作业进入就绪队列的时间,然后等到该作业被CPU执行时,计算出它在就绪队列中等待的时间,最后将所有作业的等待时间加起来,再除以总作业数,即可得到平均等待时间。
举个例子,假设有三个作业A、B、C,它们分别进入就绪队列的时间为0、1、2,执行结束时间分别为3、5、8。
那么它们在就绪队列中等待的时间分别为3、4、6,总等待时间为13。
因此平均等待时间为13/3=4.33个时间片。
2. 平均周转时间的计算方法与过程:平均周转时间指的是所有作业从进入系统到执行结束所花费的平均时间。
它包括等待时间和执行时间两部分,单位也是时间片。
计算平均周转时间的方法是:首先记录下每个作业进入系统的时间和执行结束时间,然后计算出每个作业的周转时间,最后将所有作业的周转时间加起来,再除以总作业数即可得到平均周转时间。
举个例子,假设有三个作业A、B、C,它们进入系统的时间分别为0、1、2,执行结束的时间分别为3、5、8,而它们的执行时间分别为3、4、6。
那么它们的周转时间分别为3、4、6+6=12,总周转时间为19。
因此平均周转时间为19/3=6.33个时间片。
总之,在处理机调度算法中,我们若要评估算法的效果,就需要计算出平均等待时间和平均周转时间等指标,以便分析算法的优劣并调整优化算法。
《计算机操作系统》第5章 处理机调度

行而重新进行调度。 ►在 抢 占 式 调 度 方 式 下 , 进 程 调 度 的 执 行 频 率 相 当 频 繁 , 因 此 增 加 了 进 程 切
换的开销,但避免了任何一个进程独占CPU太长时间,可以为进程提供较 好的服务。
上。高级调度负责从后备队列中选择多个作业调入内存,为它们创建进程 并分配必要的资源,然后链接到就绪队列上。 ►在分时系统中,为了做到及时响应,通过键盘输入的命令或数据等,都被 直接送入内存创建进程,因而不需要设置高级调度这个层次。类似地,通 常实时系统也不需要高级调度。
5.1.2 处理机调度的层次
隔。
5.1.4 调度算法选择依据与性能评价
4.实时系统调度算法常用评价准则 ►截止时间是衡量实时系统时限性能的主要指标,也是选择实时系统调度算
法的重要准则。截止时间可以分为: ♦ 开始截止时间:某任务必须开始执行的最迟时间 ♦ 完成截止时间:某任务必须完成的最迟时间。
►可预测性。 ♦ 可预测性是解决实时系统快速工作能力的一个有力工具。 ♦ 例如,在视频播放任务中,视频的连续播放可以提供请求的可预测性。 若系统采用了双缓冲,则可以实现第i 帧的播放和第i+1帧的读取并行处 理,从而提高其实时性。
52常用调度算法521先来先服务调度算法522短迚程作业优先调度算法523轮转调度算法524优先级调度算法524最高响应比优先调度算法524多级队列调度算法524多级反馈队列调度算法52常用调度算法?以表51所示的作业流戒迚程流为例介绍常用的调度算法
计算机操作系统
第5章 处理机调度
教材:《计算机操作系统》 编著: 沈晓红、刘颖、杨明 出版: 电子工业出版社
处理机调度的常用算法

处理机调度的常用算法包括以下几种:
1. 先来先服务调度算法(FCFS,First Come First Service):这是一种最简单的调度算法,按先后顺序进行调度。
既可用于作业调度,也可用于进程调度。
2. 短作业优先调度算法(SJF/SPF,Shortest Job First):该算法根据作业长短进行调度,有利于短作业(进程)的完成。
3. 高响应比优先调度算法(HRRN,Highest Response Raito Next):该算法综合考虑了作业长短和等待时间,能够适用于短作业较多的批处理系统中,但长作业的运行可能得不到保证。
4. 基于时间片的轮转调度算法(RR,Round Robin):该算法将系统中所有的就绪进程按照FCFS原则,排成一个队列。
每次调度时将CPU 分派给队首进程,让其执行一个时间片。
时间片的长度从几个ms到几百ms。
在一个时间片结束时,发生时钟中断。
调度程序据此暂停当前进程的执行,将其送到就绪队列的末尾,并通过上下文切换执行当前就绪的队首进程。
进程阻塞情况发生时,未用完时间片也要出让CPU。
这些算法各有优缺点,需要根据实际应用场景选择合适的算法。
操作系统常用调度算法

操作系统常⽤调度算法在操作系统中存在多种调度算法,其中有的调度算法适⽤于作业调度,有的调度算法适⽤于进程调度,有的调度算法两者都适⽤。
下⾯介绍⼏种常⽤的调度算法。
先来先服务(FCFS)调度算法FCFS调度算法是⼀种最简单的调度算法,该调度算法既可以⽤于作业调度也可以⽤于进程调度。
在作业调度中,算法每次从后备作业队列中选择最先进⼊该队列的⼀个或⼏个作业,将它们调⼊内存,分配必要的资源,创建进程并放⼊就绪队列。
在进程调度中,FCFS调度算法每次从就绪队列中选择最先进⼊该队列的进程,将处理机分配给它,使之投⼊运⾏,直到完成或因某种原因⽽阻塞时才释放处理机。
下⾯通过⼀个实例来说明FCFS调度算法的性能。
假设系统中有4个作业,它们的提交时间分别是8、8.4、8.8、9,运⾏时间依次是2、1、0.5、0.2,系统⾤⽤FCFS调度算法,这组作业的平均等待时间、平均周转时间和平均带权周转时间见表2-3。
表2-3 FCFS调度算法的性能作业号提交时间运⾏时间开始时间等待时间完成时间周转时间带权周转时间18280102128.4110 1.611 2.6 2.638.80.511 2.211.5 2.7 5.4490.211.5 2.511.7 2.713.5平均等待时间 t = (0+1.6+2.2+2.5)/4=1.575平均周转时间 T = (2+2.6+2.7+2.7)/4=2.5平均带权周转时间 W = (1+2.6+5.牡13.5)/4=5.625FCFS调度算法属于不可剥夺算法。
从表⾯上看,它对所有作业都是公平的,但若⼀个长作业先到达系统,就会使后⾯许多短作业等待很长时间,因此它不能作为分时系统和实时系统的主要调度策略。
但它常被结合在其他调度策略中使⽤。
例如,在使⽤优先级作为调度策略的系统中,往往对多个具有相同优先级的进程按FCFS原则处理。
FCFS调度算法的特点是算法简单,但效率低;对长作业⽐较有利,但对短作业不利(相对SJF和⾼响应⽐);有利于CPU繁忙型作业,⽽不利于I/O繁忙型作业。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
处理机调度算法的比较计算机科学学院计算机科学与技术2009摘要:处理机调度基本概念、调度算法优劣的评价准则、多种处理机调度算法的介绍引言操作系统是处理计算机硬件的一层软件和作为计算机用户与计算机硬件的中间的协调者。
操作系统的CPU调度器负责给各个任务分发CPU带宽资源。
调度算法负责管理当前执行任务等额顺序和性能3 内容:3.1 处理机调度的基本概念高/中/低级调度1. 高级调度(作业调度)决定把外存上处于后备队列中的哪些作业调入内存,并为它们创建进程、分配必要的资源,准备执行。
2. 低级调度(进程调度)决定就绪队列中的哪个进程应获得处理机,然后再由分派程序执行把处理机分配给该进程的具体操作。
非抢占方式和抢占方式3. 中级调度决定把又具备运行条件的挂起进程重新调入内存,挂到就绪队列上,准备执行。
3.2 调度算法优劣的评价准则衡量和比较调度算法性能优劣主要有一下几个因素:(1)CPU利用率。
CPU是计算机系统中最重要的资源,所以应尽可能使CPU保持忙,使这一资源利用率最高。
(2)吞吐量。
CPU运行时表示系统正处于工作状态,工作量的大小是以每单位时间所完成的作业数目来描述的,这就叫吞吐量。
(3)周转时间。
指从作业提交到作业完成所经过的时间,包括作业等待,在就绪队列中排队,在处理机上运行以及进行输入/输出操作所花时间的总和。
(4)等待时间。
处理机调度算法实际上并不影响作业执行或输入/输出操作的时间,只影响作业在就绪队列中等待所花的时间。
因此,衡量一个调度算法优劣常常简单的考察等待时间。
(5)响应时间。
指从作业提交到系统作出相应所经过的时间。
在交互式系统中,作业的周转时间并不一定是最好的衡量准则,因此,常常使用另一种度量准则,即相应时间。
从用户观点看,响应时间应该快一点好,但这常常要牺牲系统资源利用率为代价。
(6)公平性——确保每个用户每个进程获得合理的 CPU 份额或其他资源份额,不会出现饿死情况。
当然,这些目标本身就存在着矛盾之处,操作系统在设计时必须根据其类型的不同进行权衡,以达到较好的效果。
下面着重看一下批处理系统的调度性能指标。
批处理系统的调度性能主要用作业周转时间和作业带权周转时间来衡量,此时间越短,则系统效率越高,作业吞吐能率越强。
如果作业i 提交给系统的时刻是ts,完成时刻是tf,那么,作业的周转时间ti 为:ti =tf - ts实际上,它是作业在系统里的等待时间与运行时间之和。
从操作系统来说,为了提高系统的性能,要让若干个用户的平均作业周转时间和平均带权作业周转时间最小。
平均作业周转时间 T = (Σti) / n如果作业i 的周转时间为ti,所需运行时间为tk,则称wi=ti /tk 为该作业的带权周转时间。
因为,ti 是等待时间与运行时间之和,故带权周转时间总大于1。
平均作业带权周转时间W = (Σwi) / n通常,用平均作业周转时间来衡量对同一作业流施行不同作业调度算法时,它们呈现的调度性能;用平均作业带权周转时间来衡量对不同作业流施行同一作业调度算法时,它们呈现的调度性能。
这两个数值均越小越好。
3.3几种处理机调度算法详细介绍3.3.1作业调度1、先来先服务算法先来先服务FCFS(First Come,First Served)算法是按照作业进入系统的作业后备队列的先后次序来挑选作业,先进入系统的作业优先被挑选。
这是一种非剥夺式算法,容易实现,但效率不高,只顾及到作业等候时间,而没考虑作业要求服务时间的长短。
显然这不利于短作业而优待了长作业,或者说有利于CPU 繁忙型作业而不利于I/O 繁忙型作业。
有时为了等待长作业的执行,而使短作业的周转时间变得很大。
从而,平均周转时间也变大。
2、最短作业优先算法最短作业优先SJF(Shortest Job First )算法是以进入系统的作业所要求的CPU时间长短为标准,总是选取估计计算时间最短的作业投入运行。
这是一种非剥夺式调度算法,它克服了FCFS 偏爱长作业的缺点,易于实现,但效率也不高。
它的主要弱点:一是需要预先知道作业所需的CPU 时间,这个估计值很难精确,如果程序员估计过低,系统就可能提前终止该作业;二是忽视了作业等待时间,由于系统不断地接受新作业,而作业调度又总是选择计算时间短的作业投入运行,因此,使进入系统时间早但计算时间长的作业等待时间过长,会出现饥饿现象;三是尽管减少了对长作业的偏爱,但由于缺少剥夺机制,对分时、实时处理仍然很不理想。
3、响应比最高者优先(HRRF)算法先来先服务算法与最短作业优先算法都是比较片面的调度算法。
先来先服务算法只考虑作业的等候时间而忽视了作业的计算时间,而最短作业优先算法恰好与之相反,它只考虑用户估计的作业计算时间而忽视了作业的等待时间。
响应比最高者优先算法(Highest Response Ratio First)是介乎这两种算法之间的一种折衷的策略,既考虑作业等待时间,又考虑作业的运行时间,这样既照顾了短作业又不使长作业的等待时间过长,改进了调度性能。
缺点是每次计算各道作业的响应比会有一定的时间开销,需要估计期待的服务时间,性能要比SJF 略差。
这里把作业进入系统后的等待时间与估计计算时间之和称为作业的响应时间,作业的响应时间除以作业估计计算时间称作响应比,现定义:响应比=作业响应时间/作业估计计算时间=1+作业等待时间/作业估计计算时间每当调度一个作业运行时,都要计算后备作业队列中每个作业的响应比,选择响应比最高者投入运行。
显然,计算时间短的作业容易得到较高的响应比,因为,这时分母较小,使得HRRF 较高,因此,本算法是优待短作业的。
但是,如果一个长作业在系统中等待的时间足够长后,由于,它的年龄较大使得分子足够大,则HRRF 较大,那么,它也将获得足够高的响应比,从而,可以被选中执行,不至于长时间地等待下去,饥饿的现象不会发生。
4、优先数法这种算法是根据确定的优先数来选取作业,每次总是选择优先数高的作业。
规定用户作业优先数的方法是多种多样的。
一种是由用户自己提出作业的优先数,称作外部优先数法。
有的用户为了自己的作业尽快的被系统选中就设法提高自己作业的优先数,这时系统可以规定优先数越高则需付出的计算机使用费就越多,以作限制。
另一种是由系统综合考虑有关因素来确定用户作业的优先数,称作内部优先数法。
5、分类调度算法分类调度算法预先按一定的原则把作业划分成若干类,以达到均衡使用操作系统资源和兼顾大小作业的目的。
分类原则包括:作业计算时间、对内存的需求、对外围设备的需求等。
作业调度时还可以为每类作业设置优先级,从而,照顾到同类作业中的轻重缓急。
6、用磁带与不用磁带的作业搭配这种算法将需要使用磁带机的作业分开来。
在作业调度时,把使用磁带机的作业和不使用磁带机的作业搭配挑选。
在不使用磁带机的作业执行时,可预先通知操作员将下一批作业要用的磁带预先装上,这样可使要用磁带机的作业在执行时省去等待装磁带的时间。
显然,这对缩短系统的平均周转时间是有益的。
3.3.2 低级调度1、先来先服务算法先来先服务算法是按照进程进入就绪队列的先后次序来分配处理器。
先进入就绪队列的进程优先被挑选,运行进程一旦占有处理器将一直运行下去直到运行结束或被阻塞,这是一种非剥夺式调度。
这种算法容易实现,但效率不高,显然,不利于I/O 频繁的进程。
2、时间片轮转调度轮转法调度也称之为时间片调度,具体做法是调度程序每次把CPU 分配给就绪队列首进程使用一个时间片,例如100ms,就绪队列中的每个进程轮流地运行一个这样的时间片。
当这个时间片结束时,就强迫一个进程让出处理器,让它排列到就绪队列的尾部,等候下一轮调度。
实现这种调度要使用一个间隔时钟。
当一个进程开始运行时,就将时间片的值置入间隔时钟内,当发生间隔时钟中断时,就表明该进程连续运行的时间已超过一个规定的时间片。
此时,中断处理程序就通知处理器调度进行处理器的切换工作。
这种调度策略可以防止那些很少使用外围设备的进程过长的占用处理器,导致要使用外围设备的那些进程没有机会去启动外围设备。
最常用的轮转法是基本轮转法。
它要求每个进程轮流地运行相同的一个时间片。
在分时系统中,这是一种较简单又有效的调度策略。
—个分时系统有许多终端设备,终端用户在各自的终端设备上同时使用计算机,如果某个终端用户的程序长时间的占用处理器,势必使其他终端用户的要求不能得到及时响应。
一般说分时系统的终端用户提出要求后到计算机响应给出回答的时间只能是几秒钟,这样才能使终端用户感到满意。
采用基本轮转的调度策略可以使系统及时响应。
例如,一个分时系统有10 个终端,如果每个终端用户进程的时间片为100ms,那么,粗略地说,每个终端用户在每秒钟内可以得到大约100ms 的处理器时间,如果对于终端用户的每个要求,处理器花费300ms 的时间就可以给出回答时,那么,终端响应的时间大致就在3 秒左右,这样可算得上及时响应了。
基本轮转法的策略可以略加修改。
例如,对于不同的进程给以不同的时间片;时间片的长短可以动态地修改等等,这些做法主要是为了进一步提高效率。
轮转法调度是一种剥夺式调度,系统耗费在进程切换上的开销比较大,这个开销与时间片的大小很有关系。
如果时间片取值太小,以致于大多数进程都不可能在一个时间片内运行完毕,切换就会频繁,系统开销显著增大,所以,从系统效率来看,时间片取大一点好。
另一方面,时间片长度较大,那么,随着就绪队列里进程数目的增加,轮转一次的总时间增大,亦即对每个进程的响应速度放慢了,甚至时间片大到让每个进程足以完成其所有任务,这一算法便退化成先来先服务算法。
为了满足用户对响应时间的要求,要么限制就绪队列中的进程数量,要么采用动态时间片法,根据当前负载状况,及时调整时间片的大小。
所以,时间片大小的确定要从进程个数、切换开销、系统效率和响应时间等多方面考虑。
3、优先数调度给每一个进程确定一个优先数,处理器调度每次选择就绪进程中优先数最大者,让它占用处理器运行称优先数调度。
怎样确定优先数呢?可以有以下几种考虑,使用外围设备频繁者优先数大,这样有利于提高效率;重要算题进程的优先数大,这样有利于用户更早得到计算结果;进入计算机时间长的进程优先数大,这样有利于缩短作业的周转时间;交互式用户的进程优先数大,这样有利于终端用户的响应时间等等,以上采用了静态优先数法。
效率高性能好的低级调度可采用动态优先数法,在创建一个进程时,根括进程类型和资源使用情况确定一个优先数,而当进程耗尽时间片或重新被调度时,再次计算并调整所有进程的优先数。
基本原则是:①根据进程占有CPU 时间多少来决定,当一个进程占有CPU 时间愈长,那么,在它被阻塞之后再次获得调度的优先数就越低,反之,进程获得调度的可能性越大;②根据进程等待CPU 时间多少来决定,一个进程在队列中等待CPU 的时间愈长,那么,在它再次获得调度时的优先数就越高,反之,进程获得调度的可能性越小。