Ⅰ 操作系统的调度算法
1)10:00Job1到达并投入运行。此时内存中有作业:Job1
2)10:05 Job2到达并进入内存。此时,Job1运行时间剩余是25min, Job2运行剩余时间是20min,根据SRTF,Job2开始运行。
3)10:25 Job2运行结束。Job3、Job4在后备队列中,据SJF,Job3进入内存,据SRTF,Job3开始运行。内存:Job1、Job3
4)10:30 Job3运行结束。Job4在后备队列中,Job4进入内存,据SRTF,Job4开始运行。内存:Job1、Job4
5)10:40 Job4运行结束。Job1重新继续运行。
6)11:05 Job1运行结束。
Ⅱ 操作系统模拟电梯调度算法C语言程序
多级反馈队列调度算法 多级反馈队列调度算法是一种CPU处理机调度算法,UNIX操作系统采取的便是这种调度算法。 多级反馈队列调度算法即能使高优先级的作业得到响应又能使短作业(进程)迅速完成。(对比一下FCFS与高优先响应比调度算法的缺陷)。 多级(假设为N级)反馈队列调度算法可以如下原理: 1、设有N个队列(Q1,Q2....QN),其中各个队列对于处理机的优先级是不一样的,也就是说位于各个队列中的作业(进程)的优先级也是不一样的。一般来说,优先级Priority(Q1) > Priority(Q2) > ... > Priority(QN)。怎么讲,位于Q1中的任何一个作业(进程)都要比Q2中的任何一个作业(进程)相对于CPU的优先级要高(也就是说,Q1中的作业一定要比Q2中的作业先被处理机调度),依次类推其它的队列。 2、对于某个特定的队列来说,里面是遵循时间片轮转法。也就是说,位于队列Q2中有N个作业,它们的运行时间是通过Q2这个队列所设定的时间片来确定的(为了便于理解,我们也可以认为特定队列中的作业的优先级是按照FCFS来调度的)。 3、各个队列的时间片是一样的吗?不一样,这就是该算法设计的精妙之处。各个队列的时间片是随着优先级的增加而减少的,也就是说,优先级越高的队列中它的时间片就越短。同时,为了便于那些超大作业的完成,最后一个队列QN(优先级最高的队列)的时间片一般很大(不需要考虑这个问题)。 多级反馈队列调度算法描述: 1、进程在进入待调度的队列等待时,首先进入优先级最高的Q1等待。 2、首先调度优先级高的队列中的进程。若高优先级中队列中已没有调度的进程,则调度次优先级队列中的进程。例如:Q1,Q2,Q3三个队列,只有在Q1中没有进程等待时才去调度Q2,同理,只有Q1,Q2都为空时才会去调度Q3。 3、对于同一个队列中的各个进程,按照时间片轮转法调度。比如Q1队列的时间片为N,那么Q1中的作业在经历了N个时间片后若还没有完成,则进入Q2队列等待,若Q2的时间片用完后作业还不能完成,一直进入下一级队列,直至完成。 4、在低优先级的队列中的进程在运行时,又有新到达的作业,那么在运行完这个时间片后,CPU马上分配给新到达的作业(抢占式)。 我们来看一下该算法是如何运作的: 假设系统中有3个反馈队列Q1,Q2,Q3,时间片分别为2,4,8。 现在有3个作业J1,J2,J3分别在时间 0 ,1,3时刻到达。而它们所需要的CPU时间分别是3,2,1个时间片。 1、时刻0 J1到达。于是进入到队列1 , 运行1个时间片 , 时间片还未到,此时J2到达。 2、时刻1 J2到达。 由于时间片仍然由J1掌控,于是等待。 J1在运行了1个时间片后,已经完成了在Q1中的 2个时间片的限制,于是J1置于Q2等待被调度。现在处理机分配给J2。 3、时刻2 J1进入Q2等待调度,J2获得CPU开始运行。 4、时刻3 J3到达,由于J2的时间片未到,故J3在Q1等待调度,J1也在Q2等待调度。 5、时刻4 J2处理完成,由于J3,J1都在等待调度,但是J3所在的队列比J1所在的队列的优先级要高,于是J3被调度,J1继续在Q2等待。 6、时刻5 J3经过1个时间片,完成。 7、时刻6 由于Q1已经空闲,于是开始调度Q2中的作业,则J1得到处理器开始运行。 8、时刻7 J1再经过一个时间片,完成了任务。于是整个调度过程结束。
Ⅲ 操作系统磁盘调度的电梯算法是怎么回事阿思想是什么比如磁道号从41开始,磁盘请求序列为:20
就是读取时按找当前的移动方向读取下一个,到顶后再反着读,就跟坐电梯一样,要不先上,要不先下。
下:41 20 12 4 上: 44 76 80
合起来就是: 41 20 12 4 44 76 80
这样的话磁头的总移动距离会相对减少
Ⅳ 操作系统磁盘调度算法wenti
SCAN调度算法就是电梯调度算法,顾名思义就是如果开始时磁头往外就一直要到最外面,然后再返回向里(磁头编号一般是最外面为0号往里增加),就像电梯若往下则一直要下到最底层才会再上升一样。这里的从左端开始是什么意思呢?一般是题目中会给出此时磁头指向里或是指向外的。向外则向比它小的方向扫描,向里则向比它大的方向扫描,而若求寻道时间还要知道每移动一个磁道所需的时间t,寻道时间T1={(53-37)+(37-14)+(14-0)+(65-0)+(67-65)+(98-67)+(122-98)+(124-122)+(183-124)+(199-183)}*t=(53+199)*t=252t.
CSCAN循环扫描调度算法是先找出最靠近磁头位置的下一个,或是按题中规定的方向,反正就是只能是单向扫描。例如题中65距53最近,于是最先到65然后继续朝增加的方向,直到最大,然后又立即回到最小的0号开始,计算时返回的那段距离也必需计算在内。T2={(199-53)+(199-0)+(37-0)}*t=382t.
显然此时SCAN算法更省时。
Ⅳ 电梯调度算法
(1)电梯调度算法的处理次序为:
5
8
1
4
3
6
2
7
(2)最短寻找时间优先算法的处理次序为:
5
8
6
2
7
1
4
3
Ⅵ 高手给解释下,操作系统中的,电梯调度算法和扫描调度算法的区别到底是什么最好举例图
操作系统概念那本书上有图,电梯就是磁头一直向左然后一直向右这么来来回回。CSCAN就是磁头一直向左,然后再回到右边开始一直向左,类似于示波器的逐行扫描。
Ⅶ 什么是电梯调度
LOOK(查找)调度(电梯)电梯算法。磁臂仅移动到请求的最外道就回转。反方向查找服务。磁头从53号磁道开始移动,按照65, 67, 98, 122, 124, 183, 14, 37的顺序依次查找,并将数据输入内存。
Ⅷ 在操作系统中,常见的调度算法有哪些
你要问哪一部分的?磁盘管理,存储管理还是处理机管理,设备管理,每种管理都有自己的调度算法。你给个具体的,常见调度台笼统了
Ⅸ 如何将各种算法应用到实际的电梯调度中
说明 假设大厦有31层楼.电梯每经过1层(不论上下行)的时间是4秒.也就是说,电梯从1楼到31楼且中间不停则需要(31-1)*4=120秒.电梯每次需要停10秒,因此,如果电梯每层都停一次,就需要30*4+29*10=410秒.与此同时,员工步行一层楼(不论上下行)需要20秒,从1楼到31楼就需要30*20=600秒.明显,这个主意不好.因此,很多员工依赖电梯前往他们的办公室.现在我们需要设计一个方案,这个方案的设计目标是让最后一个到达办公室的员工花费最短的时间(也就是说,他并不保证每一位员工都能最快到达自己办公室).比如,如果员工想到达4,5和10层,则电梯的运行方案是在4和10层停止.因为电梯在第12秒到达4层,停止10秒,则电梯到达10层需要3*4+10+6*4=46秒.按此计划,住在4层的员工需要12秒,5层的员工需要12+20=32秒,10层的员工需要46秒.因此,最后到达办公室的员工需要46秒.对于大家来说,这是个不错的方案.
实现 下面就详细说一说我实现的具体方式,虽然花了我近2天的时间,但是其实并不是很复杂,这里我本着抛砖引玉的原则,下面就一起来看看吧:
我们将定义一个名叫Case的class用来存储一些要测试的数据,然后再定义一个叫CaseUtil的class用来实现我们的方案。
首先我说一下具体得思路:这里我只考虑从下到上的方案(从上到下其实是一样的,具体自己想吧)。举个例子,假设当前的楼层是【29 30 31】.3个。那么我们该如何做呢?
首先,不管怎么说,假设最后一层即31的到达时间为 (31-1)* 4 + (stopNums-1)*10 说明一下,这里为了简单起见我们就按照案例的数据进行分析,实际上4表示电梯经过每层所需时间,而10表示电梯每层停靠的时间。上面的stopNums是什么呢?就是电梯到达31层时所有的停靠次数,减去1是除去31层得停靠。而最后一层到达的人则很可能为最后一位到达的人,为什么不是一定呢,按照本例,上面举得例子就可以很简单的看出,在28、31停2次即可,此时最后一个到达的就是地30层的人了。当然在仅仅是在本例中,实际上会由于具体数值不一样而有不同。所以这里我用了可能,而它也和我们的最优解很接近了,而这给了我想法。虽然最后一层不一定是最后一位,但已经很接近了,而它所花费的时间,仅仅只和一个变量有关,即stopNums,即可以得出如下结论:
电梯的停靠次数越少,最后一层的时间也就越少,同样最佳时间也就越少。
假设我们有一个方法可以根据当前的停靠次数来计算最佳的停靠方案,那么我们该如何得到实际最佳方案呢?下面的一段代码很好的可以达到我们的目标。