问答题 下面的操作应该分别在哪些层次完成?
问答题 为磁盘读操作计算磁道、扇区和磁头。
【正确答案】
【答案解析】应该在设备驱动程序中完成。
问答题 向设备寄存器写命令。
【正确答案】
【答案解析】应该在设备驱动程序中完成。
问答题 检查用户是否可以使用设备。
【正确答案】
【答案解析】应该在设备无关的操作系统软件层完成。
问答题 将二进制整数转换为可打印的ASCII字符。
【正确答案】
【答案解析】应该由用户层I/O完成。 [解析] 首先我们来看这些功能是不是应该由操作系统来完成。操作系统是一个代码相对稳定的软件,它很少发生代码的变化。如果(1)由操作系统完成,那么操作系统就必须记录逻辑块和磁盘细节的映射,操作系统代码就会急剧膨胀,而且对新型介质的支持也会引起代码的变动。如果(2)也由操作系统完成,那么操作系统需要记录不同生产厂商的不同数据,而且后续新厂商和新产品也无法得到支持。
因为(1)和(2)都与具体的磁盘类型有关,因此为了能够让操作系统尽可能多地支持各种不同型号的设备,(1)和(2)应该由厂商所编写的驱动程序完成。
至于(4)应该由用户来完成,因为只有用户知道将二进制整数转换为ASCII码的格式(使用二进制还是十进制,有没有特别的分隔符,等等)。
因为(3)涉及安全问题,所以应该由操作系统完成。