zoukankan      html  css  js  c++  java
  • 磁盘调度-02

    上节讲了磁盘的一些基本知识。

    这一节我们就开始磁盘的真正调度,调度之前需要先说一个知识点。

    磁盘参数:

      1. 磁盘容量 = 磁头数 * 柱面数 * 扇区数 * 512bytes,固定的

      2. 转速:转速决定读写512字节的速度

      3. 平均访问时间:是指磁头从起始位置到到达目标磁道位置,并且从目标磁道上找到要读写的数据扇区所需的时间。

        平均访问时间=平均寻道时间+平均等待时间。

      4. 传输速率:传输速率分内部传输速率和外部传输速率。内部传输速率由磁盘转速和平均访问时间决定。外部传输速率即系统总线与磁盘的交互速度。

      5. 缓存:磁盘缓存主要用来干两件事:保存内存发来的写数据,保存读取磁盘的数据。

    对于1245这些参数,都是磁盘厂商生产的硬件标准,是固定的。对于第3个,这个时间不可能为零,只能最优。所以在历史的探索中,就出现了很多算法来降低磁头平均访问时间。

    那磁盘调度讲得就是这几种算法了。

      1. 先来先服务FCFS:公平,简单,每个进程的请求都能依次得到处理。没有对寻道优化,平均寻道时间长。

      2. 最短时间优先调度算法SSTF:要求访问的磁道是当前磁头所在的磁道最近,每次寻道时间最短,但不能保证平均寻道时间最短。可能导致一些请求无限期推延,产生饥饿现象。

      3. 电梯调度算法SCAN:不仅考虑当前磁道的距离,优先考虑在磁道前进方向的最短时间,排除磁头在盘面上的往复运动,避免了出现“饥饿”现象。电梯原理。

      4. N-SCAN:是SCAN的改良。磁头改变方向时,以到达请求服务的最短时间。对中间请求服务更有利。

      5. 循环电梯调度算法C-SCAN:磁头单项移动。消除N-SCAN对两端请求的不公平。

  • 相关阅读:
    Vue.js监听事件
    Vue.js组件传值
    Vue.js安装
    C#中输入法全角转换半角
    文件夹操作
    转JSON字符串,并进行AES加密
    ReportView报表的使用
    c++读入优化
    快读板子
    【转】2020年 大二上 ACM
  • 原文地址:https://www.cnblogs.com/skimoon/p/3700928.html
Copyright © 2011-2022 走看看