操作系统--课堂问答笔记22--习题答案

课堂笔记学习视频来自 操作系统
说明:其他”课堂问答笔记“也在”操作系统“专栏

【5-1、5-2、5-3、5-4】

  1. 理解通道的3种类型。
    答:
    1 ) 字节多路通道(Byte Multiplexor Channel):这是一种按字节交叉方式工作的通道。它通常都含有许多非分配型子通道,其数量可从几十到数百个,每一个子通道连接一台I/O中低速设备,并控制该设备的I/O操作(字节多路通道不适于连接高速设备,且每个子通道为某个设备专用)。这些子通道按时间片轮转方式共享主通道:
    在这里插入图片描述
    2 ) 数组选择通道(Block Selector Channel):选择通道又称高速通道,在物理上它可以连接多个设备,但是这些设备不能同时工作,在某一个时间段内通道只能选择一个设备进行工作。选择通道很像一个单道程序的处理器,在一段时间内只允许执行一个设备的通道程序,只有当这个设备的通道程序全部执行完毕后,才能执行其他设备的通道程序。想象一下,有一条高速公路连接两个城市(内存和设备),那么数组选择通道就是一条可切换端点的高速公路(设备那一头可切换,且这样的高速公路仅有一条)
    3 ) 数组多路通道(Block Multiplexor Channel):数组选择通道其实是上述两种通道的组合,是连接控制多个高速外设并以成组交叉方式传送数据的通道,即不是一条高速公路而是多条,与字节多路通道不同之处在于:数组多路通道允许多个设备同时工作,但只允许一个设备进行传输型操作(即任何时刻只有一条高速公路在传输数据),其他设备进行控制型操作;而字节多路通道不仅允许多个设备同时操作,而且也允许它们同时进行传输型操作(但仅有一个子通道连接到主通道,见上图);数组多路通道与设备之间进行数据传送的基本单位是数据块(多个字节),而字节多路通道与设备之间进行数据传送的基本单位则是字节。
    字节多路通道:连接低速设备;数组选择通道:连接高速设备,但任何时刻只有一台设备可工作;数组多路通道:可连接多个高速设备并同时工作

今天的视频很好的解释了4种I/O控制方式,这里就不再详细重复叙述了,简单描述一下:
1)程序直接控制方式:检查设备状态(空闲、忙),以及数据的传输都由CPU完成(传输数据的单位是字节或字);
2)中断I/O控制方式:中断处理程序检查设备状态,数据的传输由CPU完成(传输数据的单位是字节或字);
3)DMA控制方式: 有专门的硬件机构DMA控制器,数据传输前,CPU向DMA控制器发出指令;数据传输完成后,DMA控制器向CPU报告,整个数据传输过程中CPU仅仅在开始和结束两个节点参与,且传输数据的单位是数据块(多个字节)。
4)I/O通道控制方式:在DMA方式中,数据的传送方向、存放数据的内存始址以及传送的数据块长度等都由CPU控制(这些要求都是数据传输前由CPU发给DMA控制器的,一个数据块传输完成后,CPU再把下一个数据块的传输要求发给DMA控制器。相对于DMA,通道方式CPU对于数据的传输干预更少),而在通道方式中,这些都由通道来进行控制(通道本质上是一个简单的处理器,它独立于CPU,有运算和逻辑,有自己的指令系统:一般只有数据传送指令、设备控制指令等)。另外,DMA方式每台设备至少需要一个DMA控制器,一个通道控制器可以控制多台设备。

  1. 描述缓冲的引入的原因
    答:
    引入缓冲区的原因有很多,可归结为以下几点:
    1 ) 缓和CPU与I/O设备间速度不匹配的矛盾:例如一个程序,它时而进行长时间的计算而没有输出,时而又阵发性把输出送到打印机。由于打印机的速度跟不上CPU,而使得CPU长时间的等待。如果设置了缓冲区,程序输出的数据先送到缓冲区暂存,然后由打印机慢慢地输出。这时,CPU不必等待,可以继续执行程序。实现了CPU与I/O设备之间的并行工作。事实上,凡在数据的到达速率与其离去速率不同的地方,都可设置缓冲,以缓和它们之间速度不匹配的矛盾。
    2 ) 减少对CPU的中断频率,放宽对CPU中断响应时间的限制:如果I/O操作每传送一个字节就要产生一次中断,那么设置了n个字节的缓冲区后,则可以等到缓冲区满才产生中断,这样中断次数就减少到1/n,而且中断响应的时间也可以相应的放宽。
    3 ) 解决数据粒度(数据单元的大小)不匹配的问题:比如生产者消费者问题中,生产者单位数据小于消费者单位数据时,生产者为了满足消费者需求可以连续生产好几个单位;而大于的话,消费者可以分几次取一个单位。
    4 ) 提高CPU和I/O设备之间的并行性:比如,CPU向块设备输出数据时,可以先将数据存放在缓冲区中(这一步会比较快),然后返回,接下来由缓冲区慢慢向块设备写数据,而不是由CPU直接向慢速的块设备直接输出。
  2. 理解单缓冲区和双缓冲区
    答:
    在单缓冲情况下,每当用户进程发出一个I/O请求时,操作系统便在主存中为之分配一各缓冲区:
    在这里插入图片描述
    在生产者消费者问题中,由于缓冲区是共享资源,生产者与消费者在使用缓冲区时必须互斥。如果消费者尚未取走缓冲区中的数据,即使生产者又生产出新的数据,也无法将它送入缓冲区,生产者只能等待。如果为生产者与消费者设置了两个缓冲区,便能解决这一问题:
    在这里插入图片描述
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章