碌,忙则等待;否则将该通道分配给进程。
(6) 只有在设备、控制器和通道三者都分配成功时,这次的设备分配才算成功,然后便可启动设备进行数据传送。
17.何谓设备虚拟?实现设备虚拟时所依赖的关键技术是什么? 答:设备虚拟是指把独占设备经过某种技术处理改造成虚拟设备。
可虚拟设备是指一台物理设备在采用虚拟技术后,可变成多台逻辑上的虚拟设备,则可虚拟设备是可共享的设备,将它同时分配给多个进程使用,并对这些访问该物理设备的先后次序进行控制。
18.试说明SPOOLing 系统的组成。
答:SPOOLing 系统由输入井和输出井、输入缓冲区和输出缓冲区、输入进程 SPi 和输出进程 SPo 三部分组成。
19.在实现后台打印时,SPOOLing 系统应为请求I/O 的进程提供哪些服务? 答:在实现后台打印时,SPOOLing 系统应为请求 I/O的进程提供以下服务: (1)由输出进程在输出井中申请一空闲盘块区,并将要打印的数据送入其中; (2)输出进程为用户进程申请空白用户打印表,填入打印要求,将该表挂到请求打印队列。
(3)一旦打印机空闲,输出进程便从请求打印队列的队首取出一张请求打印表,根据表中要求将要打印的数据从输出井传送到内存缓冲区,再由打印机进行打印。
20.试说明设备驱动程序具有哪些特点。 答:设备驱动程序具有如下特点:
(1)是请求 I/O 进程与设备控制器间的一个通信程序; (2)驱动程序与 I/O 设备的特性紧密相关; (3)驱动程序与 I/O 控制方式紧密相关;
(4)驱动程序与硬件紧密相关,部分程序用汇编语言书写,基本部分往往固化在ROM中。
21.试说明设备驱动程序应具有哪些功能? 答:设备驱动程序的主要功能包括: (1)将接收到的抽象要求转为具体要求;
(2)检查用户I/O请求合法性,了解I/O 设备状态,传递有关参数,设置设备工作方式;
(3)发出I/O 命令,启动分配到的I/O设备,完成指定I/O 操作;
(4)及时响应由控制器或通道发来的中断请求,根据中断类型调用相应中断处理程序处理;
(5)对于有通道的计算机,驱动程序还应该根据用户 I/O 请求自动构成通道程序。 22.设备中断处理程序通常需完成哪些工作? 答:设备中断处理程序通常需完成如下工作:
(1) 唤醒被阻塞的驱动程序进程;(2) 保护被中断进程的CPU环境;(3) 分析中断原因、转入相应的设备中断处理程序;(4) 进行中断处理;(5) 恢复被中断进程。
23.磁盘访问时间由哪几部分组成?每部分时间应如何计算?
答:磁盘访问时间由寻道时间Ts、旋转延迟时间Tr、传输时间Tt 三部分组成。 (1)Ts 是启动磁臂时间s 与磁头移动n条磁道的时间和,即Ts = m × n + s。 (2)Tr是指定扇区移动到磁头下面所经历的时间。硬盘15000r/min时Tr为2ms;软盘300或600r/min时Tr为50~100ms。
(3)Tt 是指数据从磁盘读出或向磁盘写入经历的时间。Tt 的大小与每次读/写的字节数b和旋转速度有关:Tt = b/rN。
24.目前常用的磁盘调度算法有哪几种?每种算法优先考虑的问题是什么?
答:目前常用的磁盘调度算法有先来先服务、最短寻道时间优先及扫描等算法。 (1) 先来先服务算法优先考虑进程请求访问磁盘的先后次序;
(2) 最短寻道时间优先算法优先考虑要求访问的磁道与当前磁头所在磁道距离是否最近; (3) 扫描算法考虑欲访问的磁道与当前磁道间的距离,更优先考虑磁头当前的移动方向。 25.为什么要引入磁盘高速缓冲?何谓磁盘高速缓冲?
答:目前磁盘的I/O速度远低于内存的访问速度,通常低上4-6个数量级。因此,磁盘I/O已成为计算机系统的瓶颈。为提高磁盘I/O的速度,便引入了磁盘高速缓冲。磁盘高速缓冲是指利用内存中的存储空间,暂存从磁盘中读出的一系列盘块中的信息。
26.在设计磁盘高速缓冲时,如何实现数据交付?
答:数据交付是指将磁盘高速缓存中的数据传给请求进程。当进程请求访问某个盘块中的数据时,由核心先查看磁盘高速缓冲,看其中是否存在所需盘块数据的拷贝。若有便直接从中提取数据交付给请求进程,避免了访盘操作,本次访问速度提高4-6 个数量级;否则先从磁盘中将要访问的数据读入并交付给请求者进程,同时送高速缓存以便下次直接读取。
27.何谓提前读、延迟写和虚拟盘?
答:提前读是指在读当前盘块的同时,将下一个可能要访问的盘块数据读入缓冲区,以便需要时直接从缓冲区中读取,无需启动磁盘。延迟写是指在写盘块时,将对应缓冲区中的立即写数据暂时不立即写以备不久之后再被访问,只将它置上“延迟写”标志并挂到空闲缓冲队列的末尾。当移到空闲缓冲队首并被分配出去时,才写缓冲区中的数据。只要延迟写块仍在空闲缓冲队列中,任何要求访问都可直接从其中读出数据或将数据写入其中,而不必去访问磁盘。虚拟盘又称RAM盘,是利用内存空间仿真磁盘。其设备驱动程序可以接受所有标准的磁盘操作,但这些操作不是在磁盘上而是在内存中,因此速度更快。
28.廉价磁盘冗余阵列是如何提高对磁盘的访问速度和可靠性的?
答:廉价磁盘冗余阵列RAID是利用一台磁盘阵列控制器,统一管理和控制一组(几台
到几十台)磁盘驱动器,组成高度可靠快速大容量的磁盘系统。
操作系统将RAID中的一组物理磁盘驱动器看作一个单个的逻辑磁盘驱动器。用户数据和系统数据可分布在阵列的所有磁盘中,并采取并行传输方式,大大减少数据传输时间和提高了可靠性。