【算法】电梯调度算法/磁盘扫描算法

您所在的位置:网站首页 硬盘序列号简写是什么 【算法】电梯调度算法/磁盘扫描算法

【算法】电梯调度算法/磁盘扫描算法

2023-08-10 00:22| 来源: 网络整理| 查看: 265

1,问题描述

假如有十层楼,每层都有相同数量的人,一共有三部电梯并且没有楼梯。你将如何分配电梯来实现性能最优,及最小化每一层的等待时间? 设计一个使大楼里所有人等待时间最短的算法,同时要考虑每一层的负载量。假定每一层人数相同且每层的人以同样的方式使用电梯。假设每天有几个小时是“高峰时段”,算法需要提供一种最“公平”的方式来将电梯分配到不同的楼层。

2,问题分析

分析问题,问题规定如下: 1)楼层数量任意(0-10,0表示地下一层) 2)电梯数量任意(3,所有电梯通过统一按钮控制) 3)给定高峰时段 4)必须通过某种关于负载和时间的函数来分配电梯

3,传统电梯调度算法 1)先来先服务算法(FCFS,FCFS-First Come First Serve) ①概念

根据乘客请求乘坐电梯的先后次序进行调度。

②评价

公平、简单,且每个乘客的请求都能依次地得到处理,不会出现某一乘客的请求长期得不到满足的情况。 这种方法在载荷较轻松的环境下,性能尚可接受,但是在载荷较大的情况下,这种算法的性能就会严重下降,甚至恶化。

2)最短寻找楼层时间优先算法(SSTF,SSTF-Shortest Seek Time First) ①概念

针对电梯寻找楼层进行了优化:选择下一个服务对象的原则是最短寻找楼层的时间。这样请求队列中距当前能够最先到达的楼层的请求信号就是下一个服务对象。

②评价

在重载荷的情况下,最短寻找楼层时间优先算法的平均响应时间较短,但响应时间的方差较大,原因是队列中的某些请求可能长时间得不到响应,出现所谓的“饿死”现象。

3)扫描算法(SCAN) ①概念

针对寻找楼层的优化。 按照楼层顺序依次服务请求,让电梯在最底层和最顶层之间连续往返运行,在运行过程中响应处在于电梯运行方向相同的各楼层上的请求。

②评价

效率比较高,但它是一个非实时算法。扫描算法较好地解决了电梯移动的问题,在这个算法中,每个电梯响应乘客请求使乘客获得服务的次序是由其发出请求的乘客的位置与当前电梯位置之间的距离来决定的,所有的与电梯运行方向相同的乘客的请求在一次电向上运行或向下运行的过程中完成,免去了电梯频繁的来回移动。 扫描算法的平均响应时间比最短寻找楼层时间优先算法长,但是响应时间方差比最短寻找楼层时间优先算法小,从统计学角度来讲,扫描算法要比最短寻找楼层时间优先算法稳定。

③磁盘调度 i>过程

总是从磁臂当前位置开始,沿磁臂的移动方向去选择当前磁臂近期的 那个煮面的访问者。 当沿磁臂方向无请求访问时,改变磁臂的移动方向。 需要为访问者设置两个队列,依据磁头的移动方向,能访问到的访问者由近及远排队。 背离磁头移动方向的访问者也由近及远排队。 先按磁头移动方向队列调度访问者访问磁盘,当该方向没有访问者时,再改变方向,选择还有一个访问者队列访问磁盘。

ii>举例

数据:98 183 37 122 14 124 65 67 读写头起始位置:53 磁头移动方向:0(0磁道减少方向、1磁道增加方向)

计算过程: ①53为基准,向内移动。 ②分为两个队列,按由近到远排序: 37 14 65 67 98……183 ③先移动到37,再到14,共:53-14 = 39长度 14移动到183,共:183-14 = 169长度; ④则共需移动长度为:39+169 = 208,平均寻址长度为:208/8 = 26

iii>代码

public class SCAN {

int visitAdd[]; int visitSub[]; int index=0; //存放下标,已排序序列中找到比它大的最小值的下标 public void scan(int data[],int begin,int direction){ int temp=0; //从小到大排序 for(int i=0;i电梯外部含有两个按钮,即向上运行按钮和向下运行按钮。建筑顶层与地下一层例外,建筑顶层只设置有向下运行按钮,地下一层只设置有向上运行按钮。 v>电梯开关门完成时间设定为1秒。电梯到达每层后上下人的时间设定为8秒。电梯从静止开始运行到下一层的时间设置为2秒,而运行中通过一层的时间为1秒。 vi>在凌晨2:00——4:30之间,如若没有请求信号,A梯自动停在2层,B梯自动停在5层,C梯自动停在8层。 v>当电梯下到-1层后,如果没有请求信号,电梯自动回到1层

2)电梯按钮功能

i>电梯内部的楼层按钮 电梯内部对应每一个楼层的按钮成为楼层按钮,即本章第一结提到的编号为-1,1,2,3,4……10的按钮。当乘客进入电梯后按下楼层按钮,此按钮显示灰色,代表不可以用。这样就表示乘客将要去往此层,电梯将开往相应层。当电梯到达该层后,按钮恢复可以使用状态。 ii>电梯内部开门按钮 当电梯达到乘客想要去往的某楼层后,乘客需要准备离开电梯,当电梯停稳后,乘客可以按下开门按钮,电梯门将打开,让用户离开。如若电梯到了乘客曾经按下的楼层,但是无乘客按开门按钮,电梯将自动在停稳后1秒后自动开门。 iii>电梯内部关门按钮 当所有想要乘坐电梯的乘客都进入电梯以后,准备让电梯开始运行的时候,乘客需要按下关门按钮,让电梯门关闭,使电梯进入运行状态。设置电梯的自动关门时间为8秒。 iv>电梯外部向上按钮 此按钮表示上楼请求,当按下此按钮时,如果电梯到达按下此按钮的楼层,且电梯运行方向是向上的,那么电梯响将停下,并在电梯停稳之后自动开门,此请求被响应后,取消此请求信号。 v>电梯外部向下按钮 此按钮表示下楼请求,当按下此按钮时,如果电梯到达按下此按钮的楼层,且电梯运行方向是向下的,那么电梯响将停下,并在电梯停稳之后自动开门,此请求被响应后,取消此请求信号。

3)楼层选择控制器

给定一个控制器存储需电梯楼层和最大楼层(max)、最小楼层(min)。 电梯根据当前控制器内所要到的楼层信息判断是向下运行或向上运行。 最值只有在同向时才更新,如:向下运行时,min=3,max=8,出现楼层10只会存入控制器中,出现楼层1,除了加入控制器中,还要更新min=1。 期间出现的所有楼层信息都加入到控制器内,每到一楼层就判断控制器内是否有该楼层,有则在该层停留,并移除控制器内该层信息,无则继续运行,运行至最值处,重新从控制器内找出最值,并判断向上或向下运行,如此循环。当控制器内没有信息后,电梯停留在原处。

6,应用 1)磁盘寻道的优化


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3