当前位置:首页 » 操作系统 » 电梯调度算法

电梯调度算法

发布时间: 2022-01-26 09:52:14

⑴ 如何将各种算法应用到实际的电梯调度中

说明 假设大厦有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,即可以得出如下结论:

电梯的停靠次数越少,最后一层的时间也就越少,同样最佳时间也就越少。

假设我们有一个方法可以根据当前的停靠次数来计算最佳的停靠方案,那么我们该如何得到实际最佳方案呢?下面的一段代码很好的可以达到我们的目标。

⑵ 急!!!用C或C++编写操作系统中的电梯调度算法的程序。麻烦加QQ353594736,备注百度知道,非常感谢!

我有一个,但是没有计算寻道时间的,你要不要?

⑶ 最短寻找时间优先 电梯调度 相同点不同点

  1. 设定系统中有五个进程,每一个进程用一个进程控制块表示。

  2. 2.输入每个进程的“优先数”和“要求运行时间”,

  3. 3.为了调度方便,将五个进程按给定的优先数从大到小连成就绪队列。用一单元指出队列首进程,用指针指出队列的连接情况。

  4. 4.处理机调度总是选队首进程运行。采用动态优先数算法,进程每运行一次优先数就减“1”,同时将运行时间减“1”。

  5. 5.若要求运行时间为零,则将其状态置为“结束”,且退出队列。

  6. 6.运行所设计程序,显示或打印逐次被选中进程的进程名以及进程控制块的动态变化过程。

⑷ 高手给解释下,操作系统中的,电梯调度算法和扫描调度算法的区别到底是什么最好举例图

操作系统概念那本书上有图,电梯就是磁头一直向左然后一直向右这么来来回回。CSCAN就是磁头一直向左,然后再回到右边开始一直向左,类似于示波器的逐行扫描。

⑸ 电梯调度算法

(1)电梯调度算法的处理次序为:
5
8
1
4
3
6
2
7
(2)最短寻找时间优先算法的处理次序为:
5
8
6
2
7
1
4
3

⑹ 有没有大神会做这道采用电梯调度算法执行磁盘调度的题

最短寻找楼层时间优先(SSTF-Shortest Seek Time First) [14]算法,它注重电梯寻找楼层的优化。最短寻找楼层时间优先算法选择下一个服务对象的原则是最短寻找楼层的时间。这样请求队列中距当前能够最先到达的楼层的请求信号就是下一个服务对象。在重载荷的情况下,最短寻找楼层时间优先算法的平均响应时间较短,但响应时间的方差较大,原因是队列中的某些请求可能长时间得不到响应,出现所谓的“饿死”现象。

⑺ 磁盘调度算法中的电梯调度算法可以应用于实际电梯中吗

磁盘调度算法中的电梯调度算法可以应用于实际电梯中。
1.电梯的基本需求功能
每一架电梯都有一个编号,以方便监控与维修。每一架电梯都有一实时监控器,负责监控电梯上下,向电梯升降盒发送启动、制动、加速、减速、开关电梯门的信号。若电梯发生故障,还应向相应的电梯负责人发送求救信号。
2.电梯按钮功能分析
电梯(升降盒)上下来回地运动,电梯内部有一些按钮,每一个按钮代表一层楼,当按下按钮时,按钮的灯亮。电梯沿某一方向运动,在将要到达某一层楼时,实时监控器判断电梯内是否有乘客要在此层楼下电梯,若有,则发送信号给电梯升降架,让其减速,同时让电梯在此层楼的电梯入口处平稳地停下,电梯停下后,实时监控器让电梯内相应的按钮灯灭,让乘客出电梯,然后关闭电梯门,而且继续朝原方向运动,直至到达当前运动方向上,有乘客要求到达的最后一层楼为止(即如:若该建筑物有50层,电梯当前正向上运动,若有乘客要求到达的最高楼层为30层,则电梯运动到30层之后,若30层以上没有乘客发出请求,则电梯可根据电梯内是否“有人”而向下运动或停止)。
除底层和顶层只有一个按钮外,每个楼层有两个按钮,分别指示上楼和下楼请求,当按下后,按钮灯亮,并向实时监控器发送请求,实时监控程序负责判断乘客的上下楼请求是否与电梯的当前运动方向一致,若不一致,则暂不受理此请求,此时按钮灯继续亮;若一致,则实时监控器将相应的上下请求按钮灯熄灭,并让电梯平稳地停在此层楼的电梯入口处,让相应的乘客入电梯,而后继续朝原方向运动。若同时有两层或两层以上的楼发出请求,产生了冲突,则实时监控器调用冲突处理器进行抉择,受理其中的一个请求,并负责将各请求上下楼的按钮灯熄灭。
3.当电梯发生异常现象时的功能需求
若电梯发生故障时,则实时监控器立即将电梯置为“不可用”状态,并且忽略任何请求,同时向相应的电梯管理人员发送求救信号。待电梯修复后管理员可将电梯置为“工作”状态,然后恢复正常工作。
希望我能帮助你解疑释惑。

⑻ 求关于 多部电梯调度算法研究

这里是我 一些 想法 LZ可以看看 在这里 主要告诉你的是 C程序设计里面很重要的一个思想那就是 增量开发
首先设计 一个MAIN函数 确定要调用的函数 在函数里面 尽量使用指针变量,这是第一块
第二快: 电梯的初始化
第三快: RUNNING电梯的运行
第四快: 电梯的移动
第五快: 上和下
第六快: 用户的要求 也就是说 电梯到底是上 还是下的设计
第七快 延迟程序 也就说 等待的时间
第八块:STOP
按照这个思路的话,代码加起来有100多行的样子吧
还有就是 LZ在采用这个思路的时候 一定要对函数的运用 很上手啊
要不在调试的时候很容易出BUG的!
希望能帮到你!

⑼ 操作系统模拟电梯调度算法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
这样的话磁头的总移动距离会相对减少

热点内容
诺基亚密码忘了打什么电话 发布:2024-09-17 03:27:09 浏览:555
树深度优先算法 发布:2024-09-17 03:26:58 浏览:472
跳转页源码 发布:2024-09-17 03:13:05 浏览:543
html文件上传表单 发布:2024-09-17 03:08:02 浏览:784
聊天软件编程 发布:2024-09-17 03:00:07 浏览:726
linuxoracle安装路径 发布:2024-09-17 01:57:29 浏览:688
两个安卓手机照片怎么同步 发布:2024-09-17 01:51:53 浏览:207
cf编译后没有黑框跳出来 发布:2024-09-17 01:46:54 浏览:249
安卓怎么禁用应用读取列表 发布:2024-09-17 01:46:45 浏览:524
win10设密码在哪里 发布:2024-09-17 01:33:32 浏览:662