【操作系统】磁臂黏着现象

【操作系统】磁臂黏着现象

文章目录

什么是磁臂黏着?为什么 FCFS(First Come First Service) 可以避免磁臂黏着?为什么 scan,cscan 会产生磁臂黏着?为什么 NsetpScan 可以避免磁臂黏着?NScan 原理简介NScan 避免磁臂黏着的原因

为什么 FScan 可以避免磁臂黏着?

什么是磁臂黏着?

系统总是访问磁盘的某个磁道而不响应对其他磁道的访问请求,这种现象称为磁臂黏着

为什么 FCFS(First Come First Service) 可以避免磁臂黏着?

FCFC 是先来先服务,不同的磁道的请求只要排队总会排到的 请求 2(5 号磁道)会在处理完请求 1 (100 号磁道)后处理,即使后续的 n 个请求都在 100 号磁道

为什么 scan,cscan 会产生磁臂黏着?

假设初始时刻,磁头从 0 号磁道开始,向右移动当运动到磁道 100 时,有请求 100, 和 5,如果在处理完请求前,持续有对 100 号磁道的访问请求,那么磁头就会停在 100 号磁道一段时间只有当右侧的请求处理完成了,磁头才会从右往左,去处理 5 号磁道的请求那么磁盘请求的处理顺序就是:1,3,4,…,2+n,最后再处理请求 2

为什么 NsetpScan 可以避免磁臂黏着?

NScan 原理简介

NScan 避免磁臂黏着的原因

还是同样的请求,NScan 会将请求分为 N 个队列,假设 N = 2 吧

子队列的划分方法多样,假设第 1 个子队列大小为 3,剩余的请求全部放到第 2 个子队列

由于请求 1~3 是最先到达的,因此子队列 1 按照 FCFS 算法会被优先服务

虽然请求 2,3 仍然会持续访问 100 号磁道,但这个队列只有 3 个元素,因此 100 号磁道处理完成后,就可以处理 5 号磁道的请求了

特别的,当 N = 1 时,NScan 退化为 FCFS 算法,而 FCFS 不会产生磁臂黏着

为什么 FScan 可以避免磁臂黏着?

FScan 算法实质上是N步SCAN算法的简化,即:FSCAN只将磁盘请求队列分成两个子队列。

一个是由当前所有请求磁盘的进程形成的队列,由磁盘调度按SCAN算法进行处理另一个是在扫描期间,将新出现的所有请求磁盘I/O的进程放入等待处理的请求队列 这样,所有的新请求都将被推迟到下一次扫描时处理,因此和 NScan 同理

相关推荐

泰国斗鱼的14种常见疾病与解决办法参考,涨姿势!~
液晶电视和led电视哪个好?液晶电视和led电视的区别
it's time 的用法解析:表达适当的时机
s365app下载

it's time 的用法解析:表达适当的时机

📅 09-24 👀 1913