面试题答案
一键面试磁盘管理要点
- 磁盘调度算法:
- 先来先服务(FCFS):按请求到达顺序进行调度。
- 最短寻道时间优先(SSTF):优先处理离当前磁头位置最近的请求。
- 扫描算法(SCAN):磁头从磁盘一端移到另一端,途中处理请求,到达另一端后反向移动。
- 循环扫描算法(C - SCAN):磁头单向移动,到达一端后立即返回另一端,继续单向移动处理请求。
- 磁盘空间分配方式:
- 连续分配:每个文件在磁盘上占有一组连续的块。优点是简单,支持顺序访问和直接访问;缺点是易产生外部碎片,文件大小不易动态增长。
- 链接分配:分为隐式链接和显式链接。隐式链接中,文件的每个块包含指向下一块的指针;显式链接使用文件分配表(FAT)记录文件块的链接关系。优点是解决了外部碎片问题,文件大小可动态增长;缺点是隐式链接不支持直接访问,显式链接的FAT需要占用额外空间。
- 索引分配:为每个文件建立一个索引块,索引块中存放文件各块的物理地址。优点是支持直接访问,文件大小可动态增长;缺点是索引块本身需要占用额外空间,对于小文件可能开销过大。
不同磁盘调度算法优缺点
- 先来先服务(FCFS):
- 优点:实现简单,公平对待每个请求。
- 缺点:平均寻道时间较长,特别是当请求顺序杂乱时,性能较差。适用于请求数量少且请求分布均匀的场景。
- 最短寻道时间优先(SSTF):
- 优点:平均寻道时间比FCFS短,能有效提高I/O性能。
- 缺点:可能导致“饥饿”现象,即远离当前磁头位置的请求长时间得不到处理。适用于I/O请求频繁且对响应时间有要求的场景。
- 扫描算法(SCAN):
- 优点:能避免“饥饿”现象,具有较好的公平性,平均寻道时间也较短。
- 缺点:在磁头换向时,可能会有一些请求等待较长时间。适用于对I/O响应时间要求不太严格,但追求整体效率的场景。
- 循环扫描算法(C - SCAN):
- 优点:进一步优化了SCAN算法,减少了磁头换向时的等待时间,在一些场景下能提高效率。
- 缺点:相比SCAN算法,实现略复杂,在某些情况下可能会增加不必要的寻道距离。适用于对磁盘读写效率要求较高,且对响应时间分布有一定要求的场景。