IO管理

Q: I/O设备统一编址与独立编址,地址上的区别
A: 统一编址,IO设备的地址与存储器的地址不能有重叠
独立编址,IO设备的地址与存储器的地址可以有重叠

Q: 能够使用访存指令访问独立编址的IO设备吗?为什么?
A: 不可以
独立编址,导致IO设备的地址可能与存储器地址相同(不论是按字节编址还是按其他方式编址)
需要IO设备访问指令才行

Q: IO软件层次结构,四层软件,一层硬件,以及每一层的作用
A:

在块设备输入时,假定
从设备将一块数据输入到缓冲区的时间为 T,
操作系统将该缓冲区中的数据传送到工作区的时间为 M,
CPU 对这一块数据进行处理的时间为 C.
单缓冲区处理每块数据的平均时间为 {Max(C,T)+M}.
双缓冲区处理每块数据的平均时间为 {Max(C+M,T)}.
解释可以看这里

Q: 什么是SPOOLing(假脱机) 技术?
A: 在磁盘上为输入井与输出井开辟空间
来自IO设备的输入存储到输入井中,等到CPU需要用到IO数据时,直接从输入井读取
CPU的输出存储到输出井中,等到IO设备空闲的时候,直接从输出井中读取

Q: 程序员利用系统调用打开 I/O 设备时,通常使用的设备标识是
逻辑设备名还是物理设备名
A: 逻辑设备
一般由设备独立性软件进行逻辑设备名到是物理设备名的映射

缓冲区技术???
内存中设置磁盘缓冲区

磁盘管理

磁盘读取时间={寻道时间+旋转延迟时间+传输时间}

磁盘转速为 Round Per Second
旋转延迟时间={}

Q: 什么是短寻道时间优先(SSTF)算法?
A: 对于一个寻道序列,每次选择调度的是与当前磁头最近的磁道,使每次的寻道时间最短

Q: 短寻道时间优先(SSTF)算法会有饥饿问题吗?
A: 会的
可能一直在磁道的某片扇区来回寻道,其他磁道产生饥饿

Q: 什么是扫描(SCAN)算法
A: 只有磁头移动到最外侧磁道时才能向内移动,移动到最内侧磁道时才能向外移动

Q: 循环扫描(Circular SCAN,C-SCAN)算法与扫描(SCAN)算法的区别
A: 扫描:来回移动
循环扫描:单向移动,例如只能从最外到最里

Q: SCAN算法有什么缺点,需要提出Circular SCAN算法来弥补?
A: SCAN 算法对最近扫描过的区域不公平
例如,磁道宽为100,此时正从75向100移动.
此时刻同时出现了对于50,60,70,80,90,100的访问请求
处理的次序为80,90,100,70,60,50
最近扫描过的区域响应最晚

Q: 为什么SCAN方法的局部性不够好?
A: 例如,磁道宽为100,此时正从75向100移动.
某个程序需要70,75,80磁道的数据,只能用75-80-100-70的次序访问

Q: SCAN,C-SCAN与LOOK,C-LOOK的区别
A: SCAN,C-SCAN扫描到磁盘最边缘磁道
LOOK,C-LOOK扫描到访问序列最边缘磁道

Q: 什么是磁头臂黏着?
A: 一直有对某个磁道的访问请求,磁头一直留在该磁道

Q: FCFS,SSTF,SCAN,C-SCAN,LOOK,C-LOOK,哪些没有磁头臂黏着?为什么?
A: 只有FCFS没有磁头臂黏着
其他的磁盘调度算法,如果一直有对某个磁道的访问请求,磁头一直留在该磁道