【操作系统】磁臂黏着现象
文章目录
- 什么是磁臂黏着?
- 为什么 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 同理
相关文章:
【操作系统】磁臂黏着现象
文章目录 什么是磁臂黏着?为什么 FCFS(First Come First Service) 可以避免磁臂黏着?为什么 scan,cscan 会产生磁臂黏着?为什么 NsetpScan 可以避免磁臂黏着?NScan 原理简介NScan 避免磁臂黏着的…...
面试题-React(十二):React中不可变数据的力量
一、不可变数据的概念 不可变数据意味着数据一旦创建,就不能被更改。在React中,每次对数据的修改都会返回一个新的数据副本,而不会改变原始数据。这种方式确保了数据的稳定性和一致性。 二、Props中的不可变数据 在React中,组件…...
conda 创建虚拟环境
1.为什么要创建虚拟环境 我们在做开发或者跑论文实验可能会同时进行多个任务,这些任务可能会依赖于不同的python环境,比如有的用到3.6有的用到3.7,这时我们创建不同版本的python,放到虚拟环境中给不同的任务分别提供其所需要的版本…...
Java的HTML转义工具
引言 在开发web应用程序时,我们经常需要处理用户输入的数据并将其显示在网页上。然而,用户输入的数据可能包含HTML标签或特殊字符,如果直接在网页上显示这些数据,会导致XSS攻击或显示错误的结果。为了解决这个问题,我…...
Flask (Jinja2) 服务端模板注入漏洞复现
文章目录 Flask (Jinja2) 服务端模板注入漏洞1.1 漏洞描述1.2 漏洞原理1.3 漏洞危害1.4 漏洞复现1.4.1 漏洞利用 1.5 漏洞防御 Flask (Jinja2) 服务端模板注入漏洞 1.1 漏洞描述 说明内容漏洞编号漏洞名称Flask (Jinja2) 服务端模板注入漏洞漏洞评级高危影响版本使用Flask框架…...
file_get_contents 与curl 的对比
在讲区别前大家对file_get_contents 只是停留在get 方法其实file_get_contents也可以进行post请求该方法如下 $content []; $options array(http > array(method > POST,// header 需要设置为 JSONheader > Content-type:application/json,content > json_en…...
两个el-date-picker进行互相关联
elementui两个el-date-picker进行互相关联_element-ui两个时间控件进行联动_沈清秋.的博客-CSDN博客...
python openai playground使用教程
文章目录 playground介绍Playground特点模型设置和参数选择四种语言模型介绍 playground应用构建自己的playground应用playground python使用 playground介绍 OpenAI Playground是一个基于Web的工具,旨在帮助开发人员测试和尝试OpenAI的语言模型,如GPT-…...
DOCKER本地仓库
概述 随着docker的应用越来越多,安装部署越来越方便,批量自动化的镜像生成和发布都需要docker仓库的本地化应用。 试用了docker的本地仓库功能,简单易上手,记录下来以备后用。 环境 centos:CentOS release 7.0 (F…...
python写着玩
摄氏温度转化为华氏温度 #摄氏温度转化为华氏温度 celsius float(input("请输入摄氏度:")) fahrenheit(9/5)*celsius32 print("华氏温度是%.1f"%fahrenheit) 计算圆柱体的体积 #计算圆柱体的体积 radius , length map( float,input("请…...
K8s Kubernetes Namespave Pod Label Deployment Service 实战
本章节将介绍如何在kubernetes集群中部署一个nginx服务,并且能够对其进行访问。 Namespace Namespace是kubernetes系统中的一种非常重要资源,它的主要作用是用来实现多套环境的资源隔离或者多租户的资源隔离。 默认情况下,kubernetes集群中…...
SpringBoot使用随机端口启动
1.获取可用端口工具类 import java.net.InetAddress; import java.net.Socket; import java.util.Random;public class ServerPortUtil {private static final int MAX_PORT 65535;private static final int MIN_PORT 8000;public static String getAvailablePort() {Random…...
NewStarCTF2023week2-ez_sql
闭合之后尝试判断字段数,存在WAF,使用大小写绕过(后面的sql语句也需要进行大小写绕过) ?id1 Order by 5-- 测出有5列 ?id1 Order by 6-- 查一下数据库名、版本、用户等信息 ?id1Union Select database(),version(),user(),4,…...
力扣-434.字符串中的单词数
Idea 利用C中的 stringstream 指定字符分割字符串 class Solution { public:int countSegments(string s) {int cnt 0;stringstream ss(s);string word;while(ss >> word){cnt;}return cnt;} };...
【ALO-BP预测】基于蚁狮算法优化BP神经网络回归预测研究(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
分布式存储系统Ceph应用详解
Ceph的应用 一、Ceph 存储池(Pool)1.1 Ceph存储池的基本概念1.2 原理1.3 一个Pool资源池应该包含多少PG数?1.4 Ceph 存储池相关管理命令1.4.1 创建1.4.2 查看1.4.3 修改1.4.4 删除 二、 CephFS文件系统MDS接口三、创建CephFS文件系统MDS接口3.1 服务端操作Step1 在管…...
人工智能轨道交通行业周刊-第63期(2023.10.9-10.15)
本期关键词:一体化智慧列车运行系统、车辆数字化运维管理、智能传感器、PHM、LKJ 1 整理涉及公众号名单 1.1 行业类 RT轨道交通人民铁道世界轨道交通资讯网铁路信号技术交流北京铁路轨道交通网上榜铁路视点ITS World轨道交通联盟VSTR铁路与城市轨道交通RailMetro…...
OJ项目——统一数据格式返回,我是如何处理的?
目录 前言 OJ项目中是如何处理的 1、准备一个类,作为统一的数据返回格式 2、准备一个类,实现ResponseBodyAdvice接口 3、我们如何写返回值更好 4、进一步优化返回值 小结 前言 关于SpringBoot的同一功能处理,本博主在这篇博客已经有介…...
Open CV 3D Python 环境搭建
1、安装Windows-Python环境 下载exe 并安装 https://python.p2hp.com/downloads/windows/index.html 安装路径随意, 基本一路默认,下一步、下一步 注意有个钩:添加到环境变量 检测是否成功安装Python 环境 CMD输入python 2、安装OpenCV -Python 包来自清华大学…...
C#中lock 和 ReaderWriterLock 的使用总结
线程锁是多线程并发共享数据,保证一致性的工具。多线程可以同时运行多个任务但是当多个线程同时访问共享数据时,可能导致数据不同步。当有多个线程访问同一对象的加锁方法或代码块时,同一时间只有一个线程在执行,其余线程必须要等…...
iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘
美国西海岸的夏天,再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至,这不仅是开发者的盛宴,更是全球数亿苹果用户翘首以盼的科技春晚。今年,苹果依旧为我们带来了全家桶式的系统更新,包括 iOS 26、iPadOS 26…...
简易版抽奖活动的设计技术方案
1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...
C++:std::is_convertible
C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...
盘古信息PCB行业解决方案:以全域场景重构,激活智造新未来
一、破局:PCB行业的时代之问 在数字经济蓬勃发展的浪潮中,PCB(印制电路板)作为 “电子产品之母”,其重要性愈发凸显。随着 5G、人工智能等新兴技术的加速渗透,PCB行业面临着前所未有的挑战与机遇。产品迭代…...
五年级数学知识边界总结思考-下册
目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解:由来、作用与意义**一、知识点核心内容****二、知识点的由来:从生活实践到数学抽象****三、知识的作用:解决实际问题的工具****四、学习的意义:培养核心素养…...
leetcodeSQL解题:3564. 季节性销售分析
leetcodeSQL解题:3564. 季节性销售分析 题目: 表:sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...
OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 在 GPU 上对图像执行 均值漂移滤波(Mean Shift Filtering),用于图像分割或平滑处理。 该函数将输入图像中的…...
Linux 内存管理实战精讲:核心原理与面试常考点全解析
Linux 内存管理实战精讲:核心原理与面试常考点全解析 Linux 内核内存管理是系统设计中最复杂但也最核心的模块之一。它不仅支撑着虚拟内存机制、物理内存分配、进程隔离与资源复用,还直接决定系统运行的性能与稳定性。无论你是嵌入式开发者、内核调试工…...
Spring AI Chat Memory 实战指南:Local 与 JDBC 存储集成
一个面向 Java 开发者的 Sring-Ai 示例工程项目,该项目是一个 Spring AI 快速入门的样例工程项目,旨在通过一些小的案例展示 Spring AI 框架的核心功能和使用方法。 项目采用模块化设计,每个模块都专注于特定的功能领域,便于学习和…...
深度学习之模型压缩三驾马车:模型剪枝、模型量化、知识蒸馏
一、引言 在深度学习中,我们训练出的神经网络往往非常庞大(比如像 ResNet、YOLOv8、Vision Transformer),虽然精度很高,但“太重”了,运行起来很慢,占用内存大,不适合部署到手机、摄…...
