1块设备与字符设备
(1)块设备的基本特征是传输速率较高,可寻址到字节,即能指定输入的源地址或输出的目标地址,它可以随机的读/写任一块。
(2)字符设备的基本特征是传输速率低,不可寻址,并且在I/O时常采用中断驱动方式。
2共享设备
共享设备必须是可寻址的和可随机访问的设备。
共享设备是指一段时间内允许多个进程同时访问的设备,而不是同一时间内允许多个进程访问的设备。
3磁盘设备的I/O控制主要采取DMA方式
DMA方式主要用于块设备,磁盘是典型的块设备。
4DMA的寄存器
要在主机与控制器之间实现成块数据的直接交换,须在DMA控制器中设置如下4类寄存器:
(1)命令/状态寄存器(CR)用于接受从CPU发来的I/O命令或有关控制信息,或设备的状态。
(2)内存地址寄存器(MAR)在输入时,它存放把数据从设备传送到内存的其实目标地址;在输出时,它存放由内存到设备的内存源地址。
(3)数据寄存器(DR)。用于暂存从设备到内存或从内存到设备的数据。
(4)数据计数器(DC)。存放本次要传送的字节数。
I/O逻辑即设备控制器
5通道又称I/O处理机,它用于实现内存与外设之间的信息传输
6spolling是关于慢速字符设备如何与计算机主机交换信息的一种技术,通常称为“假脱机技术”
spolling技术实际上是一种外围设备同时联机操作技术,又称排队转储技术。它在输入与输出之间增加了“输入井”与“输出井”的排队转储环节。
技术特点:(1)提高了I/O速度,从对低速I/O设备进行的I/O操作变为对输入井和输出井的操作,如同脱机操作一样,提高了I/O速度,缓和了CPU与低速I/O设备速度不匹配的矛盾。
(2)设备并没有分配给任何进程,在输入井或输出井中,分配给进程的是一存储区和建立一张I/O请求表。
(3)实现了虚拟设备功能,多个进程同时使用一独享设备,而对每一进程而言,都认为自己独占这一设备,不过,该设备是逻辑上的设备。
7通道是一种特殊的处理器,因此属于硬件机制
8什么是无条件传送方式?
无条件传送方式接口简单,适用于那些能随时读写的设备,
9设备分配应考虑哪些问题?
设备的固有属性决定了设备的使用方式;
设备独立性可以提高设备分配的灵活性和设备的利用率;
设备安全性可以保证分配设备时不会导致永久阻塞。
10什么是设备的绝对号?
将系统中的每台设备按照某种原则统一进行编号,这些编号作为区分硬件和识别设备的代号,该编号成为设备的绝对号。
11通道,设备控制器,设备之间有什么关系?
通道控制设备控制器,设备控制器控制设备。
12I/O中断是CPU与通道协调工作的一种手段,所以在通道完成了通道程序的执行,便要产生中断。
13与设备无关的操作系统软件和设备驱动程序分别有什么功能?
系统调用命令是操作系统提供给用户程序的通用接口,不会因为具体设备的不同而改变。因此将系统调用参数翻译为设备操作命令的工作由设备无关的操作系统软件完成。
而设备驱动程序负责执行操作系统发出的I/O命令,它因设备不同而不同。
14用户程序发出磁盘I/O请求后,系统的正确处理流程是?
用户程序—>系统调用处理程序—>设备驱动程序—>中断处理程序
15操作系统的I/O子系统通常由4个层次组成,每层明确定义了与邻近层次的接口,其合理的层次组织排列顺序是
用户级I/O软件,设备无关软件,设备驱动程序,中断处理程序
16用户发出磁盘I/O请求后,系统的处理流程是:用户程序—>系统调用处理程序—>设备驱动程序—>中断处理程序。其中,计算数据所在磁盘的柱面号,磁头号,扇区号的程序时设备驱动程序。
计算磁盘号,磁头号和扇区号的工作是由设备驱动程序完成的。题中的功能因设备硬件的不同而不同,因此应当由厂家提供的设备驱动程序实现。
17DMA方式和中断控制方式的主要区别是什么?
(1)中断控制方式在每个数据传送完成后中断CPU,而DMA方式则在所要求传送的一批数据全部传送结束时中断CPU
(2)中断控制方式的数据传送在中断处理时由CPU控制完成,而DMA控制方式则在DMA控制器的控制下完成。不过,在DMA控制方式中,数据传送的方向,存放数据的内存始址及传送数据的长度等仍然由CPU控制。
(3)DMA方式以存储器为核心,中断控制方式以CPU为核心。因此DMA方式能与CPU并行工作
(4)DMA方式传送批量的数据,中断控制方式的传输则以字节为单位。
18DMA方式与通道方式的主要区别?
在DMA控制方式中,在DMA控制器控制下设备和主存之间可以成批的进行数据交换而不用CPU干预,这样既减轻了CPU的负担,又大大提高了I/O数据传送的速度。通道控制方式与DMA控制方式类似,也是一种以内存为中心实现设备与内存直接交换数据的控制方式。不过在通道控制方式中,CPU只需发出启动命令,指出通道相应的操作和I/O设备,该指令就可以启动通道并使通道从内存中调用相应的通道程序执行。与DMA控制方式相比,通道控制方式所需的CPU干预更少,**并且一个通道可以控制多个设备,进一步减轻了CPU的负担。**另外,对通道来说,可以使用一些指令灵活改变通道程序,这一点DMA控制方式无法做到。