当前位置: 首页 > news >正文

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

文章目录

    • 什么是磁臂黏着?
    • 为什么 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 同理

http://www.lryc.cn/news/193292.html

相关文章:

  • 面试题-React(十二):React中不可变数据的力量
  • conda 创建虚拟环境
  • Java的HTML转义工具
  • Flask (Jinja2) 服务端模板注入漏洞复现
  • file_get_contents 与curl 的对比
  • 两个el-date-picker进行互相关联
  • python openai playground使用教程
  • DOCKER本地仓库
  • python写着玩
  • K8s Kubernetes Namespave Pod Label Deployment Service 实战
  • SpringBoot使用随机端口启动
  • NewStarCTF2023week2-ez_sql
  • 力扣-434.字符串中的单词数
  • 【ALO-BP预测】基于蚁狮算法优化BP神经网络回归预测研究(Matlab代码实现)
  • 分布式存储系统Ceph应用详解
  • 人工智能轨道交通行业周刊-第63期(2023.10.9-10.15)
  • OJ项目——统一数据格式返回,我是如何处理的?
  • Open CV 3D Python 环境搭建
  • C#中lock 和 ReaderWriterLock 的使用总结
  • Mac下通过nvm管理node
  • 易点易动固定资产管理系统:RFID出入监控,保障固定资产安全
  • Vue封装组件并发布到npm仓库
  • python+深度学习+opencv实现植物识别算法系统 计算机竞赛
  • 基于springboot实现医院急诊平台系统项目【项目源码】
  • 【02】基础知识:React - jsx语法规则
  • C语言 —— 指针
  • 淘宝店铺所有商品数据接口,淘宝整店所有商品数据接口,淘宝店铺商品接口,淘宝API接口
  • 【Redis】Java客户端使用zset命令
  • 记录一个@Transaction注解引发的bug
  • 解决docker使用pandarallel报错OSError: [Errno 28] No space left on device