1.试说明I/O系统的基本功能。
答:I/O系统第一、二方面的功能是为了方便用户使用I/O设备;第三、四方面的功能是用于提高CPU和I/O设备的利用率;第五、六方面的功能是为用户在共享设备时提供方便,以保证系统能有条不紊的运行,当系统发生错误时能及时发现错误,甚至于能自动修正错误。
2.简要说明I/O软件的四个层次的基本功能。
答:用户层I/O软件,实现与用户交互的接口,用户可直接调用该层所提供的、与I/O操作有关的库函数对设备进行操作;设备独立性软件,用于实现用户程序与设备驱动器的统一接口、设备命名、设备的保护以及设备的分配与释放等,同时为设备管理和数据传送提供必要的存储空间;设备驱动程序,与硬件直接相关,用于具体实现系统对设备发出的操作指令,驱动I/O设备工作的驱动程序;中断处理程序,用于保存被中断进程的CPU环境,转入相关的中断处理程序进行处理,处理完毕再恢复被中断进程的现场后,返回到被中断的进程。
3.I/O系统接口与软件/硬件(RW/HW)接口分别是什么接口?
一块操答:I/O系统接口是I/O系统与上层系统之间的接口,向上层提供对设备进行操作的抽象I/O命
令,以方便高层对设备的使用;软件/硬件(RW/HW)接口,它的上面是中断处理程序和用于不同设备的设备驱动程序,它的下面是各种设备的控制器
4.与设备无关性的基本含义是什么?为什么要设置该层?
答:用户不仅可以使用抽象的I/O命令,还可使用抽象的逻辑设备名来使用设备,另一方面,也可以有效地提高OS的可移植性和易适应性,对于OS本身而言,应允许在不需要将整个操作系统进行重新编译的情况下,增加新的设备驱动程序,以方便新的I/O设备的安装。
5.试说明设备控制器的组成。
答:设备控制器与处理机的接口、设备控制器与设备的接口、I/O逻辑。
6.为了实现CPU与设备控制器间的通信,设备控制器应具备哪些功能?
答:接受和识别命令、数据交换、标识和报告设备的状态、地址识别、数据缓冲区、差错控制。
7.什么是内存映像I/O?它是如何实现的?
答:驱动程序将抽象I/O命令转换出的一系列具体的命令、参数等数据装入设备控制器的相应寄存器,由控制器来执行这些命令,具体实施对I/O设备的控制。内存映像I/O在编址上不再区分内存单元地址和设备控制器中的寄存器地址,都采用k。当k值处于0~n-1时,被认为是内存地址,若k大于等于n时,被认为是某个控制器的寄存器地址。内存映像I/O方式统一了对内存和对控制器的访问方法,简化了I/O的编程。
8.为什么说中断是OS赖以生存的基础?
答:中断是多道程序得以实现的基础,没有中断,就不可能实现多道程序,因为进程之间的切换是通过中断来完成的。另一方面,中断也是设备管理的基础,为了提高处理机的利用率和实现CPU与I/O设备并行执行,也必需有中断的支持。中断处理程序是I/O系统中最低的一层,它是整个I/O系统的基础。
9.对多中断源的两种处理方式分别用于何种场合?
答:屏蔽(禁止)中断:当处理机正在处理一个中断时,将屏蔽掉所有的中断,即处理机
对任何新到的中断请求,都暂时不予理睬,而让它们等待。直到处理机已完成本次中断的处理后,处理机再去检查是否有中断发生。若有,再去处理新到的中断,若无,则返回被中断的程序。该方法中,所有中断都将按顺序依次处理。
嵌套中断:在设置了中断优先级的系统中,按这样的规则来进行优先级控制:当同时有多个不同优先级的中断请求时,CPU优先响应最高优先级的中断请求;高优先级的中断请求可以抢占正在运行的低优先级中断的处理机,该方式类似于基于优先级的抢占式进程调度。
10.设备中断处理程序通常需要完成哪些工作?
答: 进行进程上下文的切换,对处理中断信号源进行测试,读取设备状态和修改进程状态。
11.简要说明中断处理程序对中断进行处理的几个步骤。
答:测定是否有未响应的中断信号、保护被中断进程的CPU环境、转入相应的设备处理程序、中断处理、恢复CPU的现场并退出中断。
12.试说明设备驱动程序具有哪些特点。
答:驱动程序是实现在与设备无关的软件和设备控制器之间通信和转换的程序,具体说,它将抽象的I/O请求转换成具体的I/O操作后传送给控制器。又把控制器中所记录的设备状态和I/O操作完成情况,及时地反映给请求I/O的进程;驱动程序与设备控制器以及I/O设备的硬件特性紧密相关,对于不同类型的设备,应配置不同的驱动程序。但可以为相同的多个终端设置一个中断驱动程序;驱动程序与I/O设备所采用的I/O控制方式紧密相关,常用的I/O控制方式是中断驱动和DMA方式;由于驱动程序与硬件紧密相关,因而其中的一部分必须用汇编语言书写;驱动程序应允许可重入。一个正在运行的驱动程序常会在一次调用完成前被再次调用。
13.设备驱动程序通常要完成哪些工作?
答:当设备完成了I/O之后设备控制器向CPU发送一个中断请求CPU响应后即可转向中断处理程序。中断处理程序的工作可分为以下几步:唤醒等待该I/O的进程、保护被中断进程的CPU运行环境、分析中断原因转入相应的中断处理程序、进行中断处理、恢复被中断进程的现场。
14.简要说明设备驱动程序的处理过程可分为哪几步。
答:将抽象要求转换为具体要求、对服务请求进行校验、检查设备的状态、传送必要的参数、启动I/O设备。
15.试说明推动I/O控制发展的主要因素是什么。
答:随着DMA控制器的出现,从以字节为单位,改为以数据块为单位进行传输,大大地改善了块设备的I/O性能。I/O通道的出现,又使对I/O操作的组织和数据的传送都能独立进行,而无需CPU的干预。
16.有哪几种I/O控制方式?各适用于何种场合?
答:有使用轮询的可编程I/O方式、使用中断的可编程I/O方式、直接存储器访问方式。
      使用轮询的可编程I/O方式:在处理机向控制器发出一条I/O指令,启动输入设备输入数据时,要同时把状态寄存器中的忙/闲标志busy置为1,然后便不断地循环测试busy(称为轮询)。busy=1,表示输入机尚未输完一个字(符),处理机应继续对该标志进行测试,
直至busy=0,表明输入机已将输入数据送入控制器的数据寄存器中。于是处理机将数据寄存器中的数据取出,送入内存指定单元中,这样便完成了一个字(符)的I/O。
使用中断的可编程I/O方式:当某进程要启动某个I/O设备工作时,便由CPU向相应的设备控制器发出一条I/O命令,然后立即返回继续执行原来的任务。设备控制器于是按照该命令的要求去控制指定I/O设备。此时,CPU与I/O设备并行操作。
直接存储器访问方式:数据传输的基本单位是数据块,即在CPU与I/O设备之间,每次传送至少一个数据块、所传送的数据是从设备直接送入内存的,或者相反、仅在传送一个或多个数据块的开始和结束时,才需CPU干预,整块数据的传送是在控制器的控制下完成的。可见,DMA方式较之中断驱动方式又进一步提高了CPU与I/O设备的并行操作程度。
17.试说明DMA的工作流程。
答:CPU要从磁盘读入一数据块时,便向磁盘控制器发送一条读命令。该命令被送入命令寄存器CR中。同时,需要将本次要读入数据在内存的起始目标地址送入内存地址寄存器MAR中。将要读数据的字(节)数送入数据计数器DC中。还须将磁盘中的源地址直接送至
DMA控制器的I/O控制逻辑上。然后,启动DMA控制器进行数据传送。以后,CPU便可去处理其它任务,整个数据传送过程由DMA控制器进行控制。当DMA控制器已从磁盘中读入一个字(节)的数据,并送入数据寄存器DR后,在挪用一个存储器周期,将该字(符)传送到MAR所指示的内存单元中。然后便对MAR内容加1,将DC内容减1,若减1后DC内容不为0,表示传送未完,便继续传送下一个字(节);否则,由DMA控制器发出中断请求。
18.为何要引入与设备的无关性?如何实现设备的独立性?
答:为了方便用户和提高OS的可适应性与可扩展性,在现代OS的I/O系统中,都无一例外地增加了与设备无关的I/O设备,以实现设备独立性。实现设备的独立性以物理设备名使用设备、引入了逻辑设备名、逻辑设备名称到物理设备名称的转换。
19.与设备的无关的软件中,包括了哪些公有操作的软件?
答:设备驱动程序的统一接口、缓冲管理、差错控制、对独立设备的分配与回收、独立于设备的逻辑数据块。
20.在考虑到设备的独立性时,应如何分配独占设备?
答:系统为实现对独占设备的分配,必须在系统中配置相应的数据结构。设备分配中的数据结构,记录了对设备或控制器进行控制所需的信息。在进行设备分配时需要如下的数据结构:设备控制表DCT:包括用于指示设备类型的字段type和设备标识字段deviceid,设备队列队首指针、忙/闲标志、重复执行次数;控制器控制表;通道控制表;系统设备表。
21.何谓设备虚拟?实现设备虚拟时所依赖的关键技术是什么?
答:设备虚拟是指把独占设备经过某种技术处理改造成虚拟设备。可虚拟设备是指一台物理设备再采用虚拟技术后,可变成多台逻辑上的的虚拟设备,则可虚拟设备是可共享的设备1,将它同时分配给多个进程使用,并对这些访问该物理设备的先后次序进行控制。
22.在实现后台打印时,SPOOLing系统应为请求I/O的进程提供哪些服务?
答:由输出进程再输出井中为之申请一空闲盘块区,并将要打印的数据送入其中;输出进程为用户进程申请一张空白的用户打印表,并将用户的打印要求填入其中,再将该表挂到请求打印队列上;一旦打印机空闲,输出进程便从请求打印队列的队首取出一张请求打印
表,根据表中的要求将要打印的数据从输出井传送到内存缓冲区,再由打印机进行打印。
23.假脱机系统向用户提供共享打印机的基本思想是什么?
答:SPOOLing技术是低速输入输出设备与主机交换的一种技术,通常也称为“假脱机真联机”,他的核心思想是以联机的方式得到脱机的效果。
24.引入缓冲的主要原因是什么?
答:缓和CPU和I/O设备间速度不匹配的矛盾、减少对CPU的中断频率,放宽对CPU中断响应时间的限制、解决数据粒度不匹配的问题、提高CPU和I/O设备之间的并行性。
25.在单缓冲情况下,为什么系统对一块数据的处理时间为max(C,T)+M?
答:在块设备输入时,假定从磁盘把一块数据输入到缓冲区的时间为T,OS将该缓冲区中的数据传送到用户区的时间为M,而CPU对这一块数据处理(计算)的时间为C。由于T和C是可以并行的,当T>C时,系统对每一块数据的处理时间为M+T;反之则为M+C,故可把系统对每一块数据的处理时间表示为Max(C,T)+M。