北京航空航天大学计算机学院-2020春操作系统课程
题目作者为北航计算机学院操作系统课程组,答案为博主原创。水平有限,无法保证作答正确性,如有错误敬请批评指正。部分作答源自百度谷歌等其他资料,如有侵权联系删除
1 I/O控制有哪几种?简述他们区别。
程序控制IO方式需要CPU在IO操作进行时保持忙等状态,中断驱动与它的区别在于在IO操作过程中释放了CPU,IO完成后触发中断来通知CPU进行处理。DMA相对于中断驱动的进步在于,一方面其可以处理一批数据再通知CPU而中断驱动要在每个数据IO完成后触发中断,另一方面中断驱动触发中断需要上下文切换等操作,而DMA由控制器完成,只有开始和结束才通知CPU。通道技术在DMA的基础之上进一步减少CPU的干预,使用独立于CPU的指令体系,可以进行较复杂的IO控制。
2 何为设备独立性?如何实现设备独立性?
设备独立性是操作系统把所有外部设备统一当作成文件来看待,只要安装它们的驱动程序,任何用户来都可以像使用文件一样,操纵、使用这些设备,而不必知道自它们的具体存在形式。为了提高操作系统的可适应性和可扩展性,在现代操作系统中都毫无例外地实现了设备独立性,也称为设备无关性。即应用程序独立于具体使用的物理设百备。
为了实现设备独立性,现代操作系统引入了逻辑设备和物理设备这两个概念,在应用程序中使用逻辑设备名称来请求使用某类设备,而系统在实际执行时,还必须使用物理设备名称。系统需具有将逻辑设备名称转换为某物理设备名称的功能。
3 在I/O系统中引入缓冲的主要原因是什么?某文件占10个磁盘块,现要把该文件的磁盘块逐个读入主存缓冲区,并送用户区进行分析。一个缓冲区与磁盘块大小相等。把一个磁盘块读入缓冲区的时间为100μs,缓冲区数据传送到用户区的时间是50μs,CPU对一块数据进行分析的时间为50μs。分别计算在单缓冲区和双缓冲区结构下,分析完该文件的时间是多少?
引入缓冲技术的原因:提高外设利用率,匹配CPU与外设的不同处理速度,减少对CPU的中断次数,提高CPU和I/O设备之间的并行性。
单缓冲结构下数据IO的过程示意如下,其中T代表读入缓冲区的时间,M代表缓冲区传送到用户区的时间,C代表CPU对数据分析的时间:
读入时间T大于处理时间C,因此每一个磁盘块数据需要的时间为T+M=150μs,所有数据完成的时间为(T+M)*10+C=1550μs
双缓冲结构下数据IO的过程示意如下,其中T代表读入缓冲区的时间,M代表缓冲区传送到用户区的时间,C代表CPU对数据分析的时间:
在CPU传输和处理一个缓冲区数据的过程中,IO设备可以向另一个缓冲区读入数据。由于M和C的时间之和恰好等于T,每一个数据块需要的时间只有T=100μs,所有数据完成的时间为T*10+M+C=1100μs
4 假设磁盘请求以柱面10、35、20、70、2、3 和38的次序到达。寻道时磁头每移动一个柱面需要6ms,磁头起停时间忽略不计,计算以下各算法所需的寻道时间是多少:
a) 假设磁头初始位置为0, 先来先服务
b) 假设磁头初始位置为0, 最短寻道时间优先
c) 查看扫描(Look)算法,假设磁头初始位置为15,方向向上(向大柱面号)
先来先服务,磁头移动的次序为:
0 → 10 → 35 → 20 → 70 → 2 → 3 → 38 0 \rightarrow 10 \rightarrow 35 \rightarrow 20 \rightarrow 70 \rightarrow 2 \rightarrow 3 \rightarrow 38 0→10→35→20→70→2→3→38
寻道总时间:(10+25+15+50+68+1+35) * 6 = 1224ms
最短寻道时间优先,磁头移动的次序为:
0 → 2 → 3 → 10 → 20 → 35 → 38 → 70 0 \rightarrow 2 \rightarrow 3 \rightarrow 10 \rightarrow 20 \rightarrow 35 \rightarrow 38 \rightarrow 70 0→2→3→10→20→35→38→70
寻道总时间:(2+1+7+10+15+3+32) * 6 = 420ms
查看扫描Look算法,磁头移动的次序为:
15 → 20 → 35 → 38 → 70 → 10 → 3 → 2 15 \rightarrow 20 \rightarrow 35 \rightarrow 38 \rightarrow 70 \rightarrow 10 \rightarrow 3 \rightarrow 2 15→20→35→38→70→10→3→2
寻道总时间:(5+15+3+32+60+7+1) * 6 = 738ms