zoukankan      html  css  js  c++  java
  • 操作系统原理之I/O设备管理(第六章下半部分)

    五、I/O软件原理

    输入输出软件的总体目标是将软件组织成一种层次结构

    • 低层软件用来屏蔽硬件的具体细节
    • 高层软件则主要是为用户提供一个简洁、规范的界面

    设备管理的4个层次:

    • 用户层软件 -》向系统发出I/O请求,显示I/O操作的结果,提供⽤户与设备的接⼝
    • 与设备无关的软件层-》完成设备命名、设备分配、设备独⽴性和缓冲管理等功能
    • 设备驱动程序-》与硬件关系最密切,包括设备服务程序和中断处理程序
    • 中断处理程序(底层)-》

    设备管理软件的功能:

    (1)实现I/O设备的独⽴性
    (2)错误处理
    (3)异步传输
    (4)缓冲管理
    (5)设备的分配和释放
    (6)实现I/O控制⽅式

    中断处理程序

      中断处理程序的作⽤:I/O中断处理程序的作⽤是将发出I/O请求⽽被阻塞的进程唤醒

    设备驱动程序:

     与硬件⽆关的I/O软件:

    与设备⽆关的I/O软件的功能如下:

    (1)设备命名

    (2)设备保护

    (3)提供独⽴于设备的块⼤⼩

    (4)为块设备和字符设备提供必要的缓冲技术

    (5)块设备的存储分配

    (6)分配和释放独⽴设备

    (7)错误处理

    六、 磁盘管理

    • 磁盘存储器容量⼤,存取速度快,⽽且可以实现随机存取,是存放⼤量程序和数据的理想设备;
    • 磁盘管理的重要⽬标是提⾼磁盘空间利⽤率和磁盘访问速度

    磁盘结构:

      ⼀个物理记录存储在⼀个扇区上,磁盘存储的物理记录数⽬是由扇区数、磁道数及 磁盘⾯数决定的。

     

     磁盘类型:

    • 固定头磁盘 在每条磁道上都有读/写磁头                       
    • 活动头磁盘 (移动头):每⼀个盘⾯仅配有⼀个磁头

     磁盘访问时间:

     磁盘调度

      磁盘调度的一个重要目标是使磁盘的平均寻道时间最少

     磁盘调度算法

    • 先来先服务 (First Come First Served, FCFS)
      • 最简单的磁盘调度算法 根据进程请求访问磁盘的先后顺序进⾏调度
      • 优点:公平、简单,且每个进程的请求都能依次得到处理,不会出现某⼀ 进程的请求⻓期得不到满⾜的情况
      • 缺点:平均寻道时间较⻓
      •  
    • 最短寻道时间优先 (Shortest Seek Time First, SSTF)
      • 该算法选择的进程:其要求访问的磁道与当前磁头所在的磁道距离最近, 以使每次的寻道时间最短。
      • 优点:每次的寻道时间最短,较之FCFS有更好的寻道性能
      • 缺点:可能导致某个进程发⽣“饥饿”现象
      •  
    • 扫描算法 (SCAN)

        不仅考虑到要访问的磁道与当前磁道的距离,更优先考虑磁头当前的移动⽅向。

        优点:有较好的寻道性能,防⽌“饥饿”现象
        缺点:有时候进程请求被⼤⼤推迟

    • 循环扫描算法 (CSCAN)

        在扫描算法的基础上,规定磁头是单向移动的。将最⼩磁道号紧接着最⼤磁道号构成循环,进⾏循环扫描。

    • NStepSCAN和FSCAN调度算法

        

        这两种算法可以避免磁臂粘着

      

    计算题

    假设磁盘有1000个磁道,若磁盘请求是一些随机请求,它们按照到达的次序分别处于 811、 348、153、968、407、580、233、679、801、121磁道。当前磁头在656号 磁道上,并且读写磁头正在向磁道号增加的方向移动。

    要求: 1.给出用FCFS算法进行磁盘调度时满足请求的次序,并计算出它们的平均寻道长度。

     2.给出用SSTF算法进行磁盘调度时满足请求的次序,并计算出它们的平均寻道长度。

    假设磁盘有1000个磁道,若磁盘请求是一些随机请求,它们按照到达的次序分别处于150、 160、 184、90、58、55、39、38、18磁道。当前磁头100号磁道上,并且读写磁头正在向磁道号增 加的方向移动。

    要求: 1.给出用SCAN算法进行磁盘调度时满足请求的次序,并计算出它们的平均寻道长度。

     2.给出用CSCAN算法进行磁盘调度时满足请求的次序,并计算出它们的平均寻道长度。

    提⾼磁盘I/O速度的⽅法

     为了提高磁盘I/O速度,用来暂存从磁盘中读出的一系列盘块中的信息的方 法是磁盘高速缓存

  • 相关阅读:
    HDU 4619 Warm up 2 (多校)
    深入浅出Node.js (9)
    HDU 1106 排序(排序)
    字符串相关心得
    HDU 2547 无剑无我(数学)
    HDU 2549 壮志难酬(字符串,处理小数点)
    HDU 2551 竹青遍野(循环,水)
    HDU 2552 三足鼎立(数学函数)
    HDU 2555 陷阱(模拟,结构体数组)
    HDU 2561 第二小整数(排序,水)
  • 原文地址:https://www.cnblogs.com/jalja/p/11537890.html
Copyright © 2011-2022 走看看