操作系统考点之I/O设备管理要点总结及通道

如题:2020年8月

分析: 其他三种I/O控制方式(是i/o软件实现设备控制的具体实现方式),程序控制、中断控制、DMA方式、这些都好理解,本身就是搞硬件,只有通道是新东西。书中讲的很明白了,不过多叙述。

通道是专门处理外围设备与内存之间数据传送的处理器。进一步减少数据输入输出对整个系统的运行效率的影响。前三个选项都是书止明确标明的,但要理解:C灵活增加外设,为什么?通道是为并行而设计,为什么可以增加外设呢?这与它的三种通道类型有很大关系:

1、选择通道:信息以成组的方式高速传输,主要用来连接高速外围设备。一段时间只能连接一个设备。

2、数组多路通道:寻址时会断开与此设备连接。然后为其他设备服务。所以是具有并行操作 "选择通道“。

3、字节多路通道:以字节为单位交替进行分时为低速中速设备提供服务。

可见,通道是具有选择算法的专门硬件部件选择接口,提供中低速设备的支持,所以是可以灵活扩展外围器件的。

D、通道作为cpu内存、设备中间接口,只是提供一个便捷的控制通道,没有减轻数据传输时的处理器开销,不能像DMA一样可以处理连续的数据。

如题:2020年8月,大题:

分析:1、先在草纸上将不同柱面请求次序,按从小到大的顺序,并按间隔比例画一条直线出来 。(也就是按从小到大排序,间隔比例画出)2、按算法,将移动的路线标出来,将相间隔柱面数量标在路线上。如下图:

(1)最短寻找时间的次序:105 ,155,196,38,36,25,15,总共移动了1+50+41+158+2+11+10柱面的距离。

(2)告诉是从104位置向柱面号减小的方向移动,所以顺序是:38,36,25,15(此方面没有立即转换方向)105,155,196  总共移动距离:66+2+11+10+90+50+41柱面距离。

扩展:

1、设备与文件管理对象有哪些?为什么unix把所有的设备都当作文件来处理?

设备是对资源的管理,提供接口供用户使用设备

文件是对设备里面存储的数据和信息管理,以文件及配套的概念进行实施。所以打开、关闭这些文件概念可以用到设备上,所以unix里一切皆文件的来源。

2、从操作系统角度看I/O硬件组成?

最里层是处理器和内存, 第二层接口(适配器)部件相连接,可以理解为就是总线+寄存器,相对应的就是软件可以操作的部分,第三层各种外围设备控制器,最外层是外围设备

3、I/O软件组成?

从底往上,依次中断处理层(i/O设备和内存与处理器间的数据传送),设备驱动层(如字义,设备的控制细节及其用途的部分),设备独立层(提供操作系统的标准接口),用户层软件(实现软件I/O设备与用户交互,满足软件功能实现)。

4、设备分配策略(算法)有哪些?

由于i/o资源是有限的,决定了得实现互斥操作。

通过四个底层的数据结构来实现算法: 

1、系统设备表(System Device Table,SDT),系统中所有外设的名称、标识、DCT(设备控制表)入口地址址,数量、占用情况。

2、设备控制表(Device Countrol Table,DCT),控制器块的入口地址及与该设备相连的设备控制器的情况。

3、控制器控制表(Controller Control Table COCT),控制器里面的表,记录控制的分配情况及相连通道的情况。

4、通道控制表(Channel Control Table,CHCT),反映通道的情况。

可以看到操作系统就是分层来处理IO的,并且是层层封装,这也是软件的基本思想。这些封装结构层层递进的方式实现了对设备的控制操作。操作问题解决之后,剩下的问题就是设备分配了,尤其是对多进程的情况。

分配方式:原则:使用效率和避免死锁。

                 静态分配:作业执行前一次分配该作业所要求的全部设备,直到作业完成释放。这种方式没什么分配策略,也不符合分配原则。

                 动态分配:根据进程需要及策略(只有两个,先来先服务和高优先级优先)分配所需要的设备、I/O控制器和通道。可能会造成死锁。

分配策略:还需要考虑因素是设备的固有属性(独占还是共享设备)、分配算法、分配安全性及设备独立性

                 独占设备:(一段时间内只能由一个进程所占用,如打印机),几个概念

                                设备绝对号:系统为每一个设备确定的一个编号。

                                 设备相对号:用户程序定义的设备编号,即所谓的逻辑设备(与具体的物理设备无关,比较适合程序编写),仅在进程向系统提出设备请求时使用,系统分配时会建立“绝对号与相对号”的对应关系。

                共享设备:多个进程所共享,以块为传输单位,进程间可以交叉进行。如硬盘

 

5、磁盘调度策略有哪些?

磁盘属于存储设备,与前面《操作系统考点之存储管理》中存储管理不同是,存储管理是从操作系统角度看存储,而这里是作为硬件设备是完全从硬件设备原理角度看存储。

几个概念:

寻找时间:磁头寻找柱面所花时间,移动臂所花的时间。

延迟时间:扇区旋转到磁头下面所花时间,磁盘旋转时间

传送时间:磁头读写时间。

如下图所示:

关于块号理解???

注:这里所说的盘面号,就是书中的磁头号。

真实的单面磁盘就是由磁道和扇区组成的。双面磁盘+陈列,就得再加上磁头号。而磁盘块号指的是什么呢?个人理解就是扇区里面的分块磁道。书中给出的公式:翻译一下为:块号=扇区号+扇区数X(磁头号+柱面号 X 磁道数)= 柱面号×(磁道数×扇区数)+磁头号×扇区数+扇区号

参数:磁道数×扇区数表示单面磁盘总的扇区数

         1、柱面号×磁道数×扇区数表示具体柱面所在的扇区号

         2、磁头号×扇区数表示多面磁盘阵列对应的扇区数

        3、扇区号表示对应的磁盘块所在扇区号

为什么上面1,2,3加起来就是磁盘块号呢???前提,还是前提,针对的是磁盘阵列。也就是多个磁盘,如何表示磁盘扇区上的一小块呢?首先找到单个磁盘的对应的扇区号,再找磁盘阵列中扇区编址, 磁头号(代表第几个磁盘面) x 扇区数 表示当前扇区在磁盘阵列中的扇区数(其实就是扇区统一编数) 再找扇区号里面块(也就是对应的第几个磁道)磁道在磁盘阵列如何表示呢? 柱面号 X 磁道数 X 扇区数 (对磁道号统一编数),若还有思绪的混乱,暂且当成规定吧。

已知块号,则磁盘驱动用的三地址:
     柱面号=[块号/(磁头数×扇区数)//这里的柱面号要理解透,可不是只包含一个磁道,里面可能有多个磁道,进而形成一个面,里面有多个相同容量扇区,这很重要
     磁头号=[(块号mod(磁头数×扇区数))/扇区数]
     扇区号=(块号mod(磁头数×扇区数))mod 扇区数

调度策略:根据访问者指定的柱面位置来决定执行次序,也就是移臂调度。目的是尽可能减少操作中寻找时间。

 

6、基于调度策略的调度算法有哪些??

1、先来先服务(FCFS);实际上不考虑访问者要求的访问的物理位置,只是考虑提出访问请求的先后顺序。

2、最短寻找时间优先调度算法(SSTF),总是从等待访问者中挑选寻找时间最短的那个请求先执行。(实际就是贪心算法的思想,只选择眼前最优)

3、电梯调度算法(LOOK,边移动边观察),考虑了移臂的移动方向的最短寻找时间优先调度算法。如果移臂方向无请求访问时,就改变臂的移动方向再选择。

4、单向扫描调度算法(循环扫描算法,c-look):总是从0号柱面开始向里道扫描,按照各自所要求的访问的柱面位置的次序去选择访问者。在移动臂到达最后一个请求柱面后,立即返回到0号柱面,返回时不为任何访问等待服务。

7、旋转调度策略?为什么会还要旋转调度?

针对的是同一柱面的上不同扇区的操作。

策略是总是读取首先到达磁头位置的扇区进行操作。

8、多缓冲与缓冲池的概念?

多缓冲指一种具有多缓冲区的结构,其中一部分缓冲区专门用于输入,另一部分缓冲区专门用于输出。

缓冲池是把多个缓冲区连接起来统一管理,在缓冲池中每个缓冲区即可以用于输入,也可以用于输出的一种缓冲结构 

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

guangod

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值