1、I/O系统的组成
I/O设备、控制器、通道、总线
2、设备分类情况(P160~161),什么是虚拟设备(P161),引入的目的
按设备的使用特性分类:存储设备;输入/输出设备 按传输速率分类:低速设备;中速设备;高速设备 按信息交换的单位分类:块设备;字符设备 按设备的共享属性分类:独占设备;共享设备;虚拟设备 虚拟设备:通过虚拟技术将一台独占设备变换为若干台逻辑设备,供若干个用户(进程)同时使用。 引入的目的:将慢速的独占设备改造成多个用户可共享的同类设备,提高设备的利用率
3、OS在设备管理中引入的相关技术–中断技术、DMA技术、通道技术、总线技术、缓冲技术、Spooling技术(Spooling系统,可以用来实现虚拟设备)–组成和工作原理
中断技术:
组成: CPU,I/O控制器 工作原理: ① CPU:向控制器发出I/O命令,然后继续执行计算任务; ② I/O控制器:执行I/O命令,控制外部设备完成指定的I/O操作,然后向CPU发送中断信号; ③ CPU:暂停正在执行的任务,处理I/O中断,完成后再返回,继续执行原来的任务。
DMA技术:
组成:
CPU,内存,DMA控制器(主机与DMA控制器的接口;DMA控制器域块设备的接口;I/O控制逻辑;命令/状态寄存器CR;内存地址寄存器MAR;数据寄存器DR;数据计数器DC)
工作原理:
①当处理器需要读/写一整块数据时,给DMA控制单元发送一条命令,包含:一次读或写的指令、I/O设备的地址、开始读或写的主存地址、需要传送的数据长度等; ②处理器发送完命令后就可处理其它事情; ③DMA控制器自己独立管理整块数据的传送; ④当这个过程完成后,它会向处理器发一个中断请求。处理器只在一块数据开始传送和传送结束时关注一下I/O操作即可。
通道技术:
组成:
每条通道指令包含的信息是:操作码、内存地址、计数、程序结束位、记录结束位。
工作原理:
把DMA方式中CPU以数据块为单位对读/写任务的干预,减少为以一次读/写任务及有关的控制和管理为单位的干预。 同时,又可实现CPU、通道和I/O设备三者的并行操作,从而更有效地提高整个系统的资源利用率。
缓冲技术:
组成: 单缓冲,双缓冲,循环缓冲,缓冲池 工作原理:
在CPU与外设之间建立缓冲区,用于暂存CPU与外设间交换的数据,从而缓冲CPU与外设间速度不匹配的矛盾。
Spooling技术
组成:
• 在磁盘上开辟输入井和输出井; • 在内存中开辟输入缓冲区和输出缓冲区; • OS要有相关的管理进程:SPi,模拟脱机输入;SPo模拟脱机输出。
工程原理:
• 脱机输入和脱机输出 • 在多道环境下,可以用OS的一道管理程序实现从I/O设备输入数据并存放到磁盘上,模拟脱机输入;用OS的另一道管理程序将磁盘上的数据输出到I/O设备上,模拟脱机输出;这种假脱机I/O操作称为Spooling技术。
Spooling是一种虚拟设备技术、一种资源转换技术。
4、设备分配的原则,什么是设备独立性(与设备无关性)
系统在分配设备是,应该考虑这样几个因素: ① 设备的固有属性 ② 设备分配算法 ③ 设备分配时的安全性 ④ 设备独立性
设备独立性,即应用程序独立于具体使用的物理设备。为了实现设备独立性而引入了逻辑设备和物理设备这两个概念。在应用程序中, 使用逻辑设备名称来请求使用某类设备;而系统在实际执行时, 还必须使用物理设备名称。因此,系统须具有将逻辑设备名称转换为某物理设备名称的功能,这非常类似于存储器管理中所介绍的逻辑地址和物理地址的概念。
5、什么是磁盘调度,磁盘调度的目标,磁盘调度算法(FCFS、SSTF、SCAN)的原理、优先考虑的因素(P194-196)
磁盘调度就是当有多个进程同时要求访问磁盘时,安排对磁道访问请求的执行顺序。 磁盘调度的目标是使磁盘的平均寻道时间最少。
先来先服务FCFS:
根据进程请求访问磁盘的先后次序进行调度。
最短寻道时间优先SSFT:
要求访问的磁道与当前磁头所在的磁道距离最近,以使每次的寻道时间最短。
扫描算法SCAN:
不仅考虑到欲访问的磁道与当前磁道间的距离,更优先考虑的是磁头当前的移动方向。
6、为什么要引入设备独立性?如何实现设备独立性?
引入设备独立性,可使应用程序独立于具体的物理设备,是设备分配具有灵活性。另外容易实现I/O重定向。
为了实现设备独立性,必须在设备驱动程序之上设置一层设备独立性软件,用来执行所有I/O设备的公用操作,并向用户层软件提供统一接口。关键是系统中必须设置一张逻辑设备表LUT用来进行逻辑设备到物理设备的映射,其中每个表目中包含了逻辑设备名、物理设备名和设备驱动程序入口地址三项;当应用程序用逻辑设备名请求分配I/O设备时,系统必须为它分配相应的物理设备,并在LUT中建立一个表目,以后进程利用该逻辑设备名请求I/O操作时,便可从LUT中得到物理设备名和驱动程序入口地址。(OS实现设备独立性的方法:设置设备独立性软件(P164)、配置逻辑设备表,实现逻辑设备到物理设备的映射。)
7、什么是虚拟设备?其实现所依赖的关键技术有哪些?
虚拟设备是指通过虚拟技术,可将一台独占设备变换成若干台逻辑设备,供若干个用户(进程)同时使用。由于多台逻辑设备实际上并不存在,而只是给用户的一种感觉,因此被称为虚拟设备。其实现所依赖的关键技术是SPOOLing技术。
8、试说明SPOOLing系统的组成。
• 输入井和输出井; • 输入缓冲区和输出缓冲区; • 输入进程SPi和输出进程SPo。
9、试说明DMA的工作流程
DMA控制器由:主机与DMA控制器的接口、DMA控制器与设备的接口、I/O控制逻辑组成;涉及到的寄存器(在DMA控制器中):CR(指令)、DR(数据)、DC(计数器)、MAR(内存地址,源/目的)。
DMA的工作流程 (1) CPU:当处理器需要读/写一整块数据时,给DMA控制单元发送一条命令,包含:一次读或写的指令、I/O设备的地址、开始读或写的主存地址、需要传送的数据长度等; (2) DMA控制器:识别指令的地址,根据指令内容用设置好CR、MAR、DC的初值; (3) DMA控制器:启动传送指令进行以下操作:
(a) 挪用一个存储器周期传送一个字数据; (b) MAR+一个字长=>MAR,DC-1=>DC © 如果DC=0,则请求中断,否则继续执行(a)、(b)
(4) CPU:在DMA控制数据传送的同时,请求数据I/O的进程被置等待状态,CPU转去调度其他的就绪进程运行,或准备下一次数据传送。
10、试绘图说明把多缓冲用于输出时的情况
多个缓冲区按先进先出队列的顺序构成环形。R为空缓冲区、G为满缓冲区。空、满队列首尾相连,设置空、满队列头指针Nexti、Nextg,如图: [caption id=“attachment_617” align=“aligncenter” width=“177” caption=“设备管理”][/caption] (1) Getbuf(Nexti):写进程申请一个空缓冲区,并将Nexti指针推向下一个空结点; (2) current指向刚申请到的空缓冲区。写进程操作缓冲区current,将要输出的数据从内存写入缓冲区; (3) Releasebuf©:数据写入完成后,释放当前工作缓冲区。这个缓冲区的状态由R变为G。刚装满数据的满缓冲区自然挂到了满队列的末尾; (4) Getbuf(Nextg):读进程申请一个装满数据的缓冲区,并将Nexti指针推向下一个满结点; (5) current指向刚申请到的满缓冲区。读进程操作缓冲区current,将其中的数据读出,从输出设备上输出; (6) Releasebuf©:数据读出完成后,释放当前工作缓冲区。这个缓冲区的状态由G变为R。刚空出的缓冲区自然挂到了空队列的末尾。
11、在实现后台打印时,SPOOLing系统应为请求I/O的进程提供哪些服务?
输出井(磁盘上)、空白的输出缓冲区队列(内存中)、满的输出缓冲区队列(内存中)、输出管理进程、打印管理进程、等待打印任务完成的等待队列。
输出管理进程帮助用户进程将要输出的所有数据组织成一个输出文件,写到打印输出井中;
打印管理进程将打印输出井中的文件逐个经由内存的输出缓冲区送到联机的打印机中打印输出,完成后再删除打印文件。
12、目前常用的磁盘调度算法有哪几种?每种算法优先考虑的问题是什么?
先来先服务:优先考虑请求到达的先后,算法简单、对各进程公正,平均寻道时间长; 最短寻道时间优先:优先考虑与当前存取臂距离最近的柱面上的访问请求,使每次的寻道时间最短; 扫描算法(与循环扫描算法):首先考虑磁头的移动方向,再考虑请求磁道与当前磁的距离。
13、为什么要引入磁盘高速缓冲?何谓磁盘高速缓冲?
目前,磁盘的访问速度远低于内存访问速度,磁盘I/O成为了计算机系统的瓶颈。于是,引入了磁盘的高速缓存来缓解外存和主机间速度的不匹配。
磁盘高速缓存是一组在逻辑上属于磁盘,而物理上是驻留在内存中的存储块。在内存中高速缓存可分成两种形式:第一种是在内存中开辟一个单独的存储空间,来作为磁盘高速缓存,其大小是固定的,不会受应用程序多少的影响;第二种是将所有空闲的内存空间供请求分页系统和磁盘高速缓存共享。此时高速缓存的大小不再是固定的。当磁盘I/O较频繁时,该缓冲区可能包含更多的内存空间;而在应用程序运行得较多时,该缓冲区可能只剩下很少的内存空间。