OS复习笔记ch11-4

磁盘调度

磁盘的物理结构

经典的温彻斯特盘
image.png
其中的几个概念:

  • 盘面:可以看成是一个操场的平面,不同的盘面通过中间的轴串在一起
  • 磁道:磁道可以看成是操场的跑道,我们知道操场上有外道和内道,最内道中间往往是足球场,而一个个跑道呈圆环状,且外道比内道距离更远,跑起来更费力。磁道类似,如图所示,磁道往往有很多条,但是不同磁道的数据总量一致,所以内道的位密度要比外道大。
  • 扇区:指按照一定的角度,将磁道划分成不同的扇区,每个扇区包含磁道的一部分,也就是磁盘块。扇区是磁盘的最小组成单元,通常是512字节。
  • 柱面:是指不同盘面中相对位置相同的磁道,这些磁道可以立体得看成一个圆柱,形象称之为柱面
  • 磁头:只能水平移动,每次读写数据前,需要靠磁臂移动到相应的磁道。一般的盘片可以正反读写,所以会有一正一反两个磁头。

由于磁盘在组成原理里面也会有所涉及,所以有关磁盘物理结构和其中的逻辑关系这里不在阐述,需要深入的同学可以看看计组。

磁盘的性能参数

类似于CPU的进程调度,磁盘是一个共享结构,对应有一个就绪队列,不同的I/O请求需要磁盘调度。

image.png

访问时间
image.png

  • 寻道/定位时间:Ts,磁头移动到指定柱面的时间
  • 旋转延迟:Td = 1/2r,磁头到访问扇区的时间
  • 传送时间:Tt = b/rN,传输数据的时间
    时间性能计算
    image.png

一般b可能需要连续扇区读取,具体的读写时间取决于磁盘扇区的结构;这里的m是一个常数,n是需要跨越的磁道数,s为启动时间

image.png
题目分析:
已知扇区是磁盘的最小组成单元,通常是512字节,1280KB/512B= 2560个扇区

  1. 如果数据连续分配,那么也就是占2560/320=8个磁道,由于是连续磁道,并且扇区是磁道上的连续扇区,那么只考虑第一次的寻道时间、8个磁道的旋转延迟和数据传输即可,所以总时间是9+(4.15+8.3)* 8 = 108.6ms
  2. 而如果2560扇区是随机分布的,那么每次都要考虑寻道时间、旋转延迟时间和数据传输时间,(9+4.15+8.3/320)* 2560 = 333730.56 ms
    这里的0.026 = 8.3/320是读取一个扇区数据的时间,通过上述计算可以发现磁盘的性能和数据存储方式有很大关系

磁盘调度策略

image.png

我们假设静态的9个就绪进程,需要访问:55, 58, 39, 18, 90, 160, 150, 38, 184的磁道,通过平均跨越的磁道数来理解和比较不同算法之间的差距。

先进先出算法(FIFO)

到目前为止,几乎所有的操作系统内部的算法集锦都会涉及到FIFO,这里也不例外。顾名思义,就是每次只顾眼前人,谁先来处理谁。
image.png
按照每次的移动距离取平均值得到55.3
优点如下:
image.png

缺点也很明显,就是效率不够高,考虑一个极端的情况,如果10,100,20,70,30,80,这样的话指针反复横跳肯定不是最优解。

最短查找时间优先(SSTF)

每次都找离得最近的磁道去查找时间(贪心的思想)
image.png
一开始在100,第一个全局最近的就是90,然后是58,55……

优点:基于贪心,SSTF在效率上有所提升,但也不是最优的算法。
缺点:对中间磁道有利,边缘磁道可能长期得不到响应,不公平。

因为基于贪心,假设一开始磁道的位置处于中心,那么先来的边缘磁道访问请求不占优势,如果访问中间磁道的请求源源不断来,就一直被优先处理。

扫描算法(SCAN)

image.png

扫描算法,顾名思义移动臂在一个方向上移动,满足所有未完成的请求直到到达此方向的最后一个磁道(或没有请求为止,Look策略),然后反向处理
对于即将掉头的扫描点附近的磁道会有偏向或者是不公平:对扫描前进方向上刚刚出现的进程有偏向,而对于刚刚扫描过的磁道的进程请求,进程需要等待很久才会被响应。

SCAN算法,又被称为电梯调度算法。移动臂在往一个方向移动的过程中,类似于电梯往下接人的时候,明知道最下面一层是没有人的,它是不会再往下走的。而对于电梯下降方向来的人都能坐上,但是刚刚走过的楼层就必须等到电梯把所有向下的人带走才能重新回来。

循环扫描算法(C-SCAN)

由于SCAN算法的偏向性,会增加等待的时间。为了解决这样的情况,CSCAN算法的思想是,访问完最里面一个要求服务的序列之后,立即回到最外层欲访问磁道。始终保持一个方向,故也称之为单向扫描调度算法。从最里面的一个磁道立即回到最外层欲访问的磁道,这步的距离是两者磁道号差的绝对值。
简单来说,就两点

  1. 在一个方向上使用扫描(初始化需要确定)
  2. 当到达最后一个磁道时,移动臂直接移动到另一沿的第一个位置,开始扫描。
    image.png

然后,我们综合以上四种算法,加以比较
image.png

  • 效率:从平均寻道长度来看,SSTF和SCAN表现最好,因为它们的平均寻道长度较短。
  • 公平性:SCAN和C-SCAN提供更高的公平性,尤其是C-SCAN,它通过循环单向处理避免了长时间的磁道等待。
  • 选择建议
    • 对于寻道时间敏感的系统,SSTF可能是最佳选择。
    • 如果需要平衡寻道时间和公平性,SCAN是一个好的选择。
    • 对于需要避免磁道饥饿并保证访问周期性的环境,C-SCAN将是更合适的选择。
N步扫描算法(N-step-SCAN)

image.png
把I/O请求队列分列(局部子队列),可以防止磁臂黏着现象,了解即可
当N = 1时,那就是FCFS先来先服务,而N = 请求数,相当于SCAN算法

分步电梯调度算法(FSCAN)

image.png

FSCAN算法将磁盘请求队列分成两个子队列,一个是由当前所有请求磁盘I/O形成的队列,由磁盘调度按SCAN算法进行处理。另一个是在扫描期间,新出现的所有请求I/O磁盘的进程进入等待处理的请求队列中,将所有新的请求会推迟到下一次扫描时处理。该算法同样也可以解决磁臂黏着的问题。了解一下即可

多磁盘管理

RAID( Redundant Array of Independent Disks )即独立磁盘冗余阵列,简称为「磁盘阵列」,其实就是用多个独立的磁盘组成在一起形成一个大的磁盘系统,从而实现比单块磁盘更好的存储性能和更高的可靠性。
RAID 层级的命名会以 RAID 开头并带数字,例如:RAID 0、RAID 1、RAID 5、RAID 6、RAID 7、RAID 01、RAID 10、RAID 50、RAID 60。每种等级都有其理论上的优缺点,不同的等级在两个目标间获取平衡,分别是增加资料可靠性以及增加存储器(群)读写性能。

采用RAID的主要优势是:

  • 可靠性高
  • 磁盘I/O速度快
  • 性能/价格比高

磁盘缓存

磁盘缓存,主存中为磁盘扇区设置的缓冲区,含有磁盘中某些扇区的副本。
磁盘缓存的置换算法,和虚拟存储的淘汰算法类似,比如LRU和LFU,简单了解一下。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/31771.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

QtCharts 饼图只弹出一个扇形切片

前言 QtCharts的基本用法可以参考:QtCharts 饼图的基本用法 (感谢~~) 如上述链接博主运行结果所示: 单击一个扇形切片可以使该扇形切片弹出,但是要收回需要再次单击该切片。当依次单击每个扇形切片后,所有…

【D3.js in Action 3 精译】前言

早在 2017 年,我还是一名渴望迈出职业生涯关键一步的前端开发者。虽然我很热衷于网站开发,但总感觉缺了点什么。我一直希望自己的工程专业背景和对教学的热爱能与新的编程技能相结合。就在这时,搭档建议我学学数据可视化。出于某种原因&#…

论文解读:Pandora: 朝着结合自然语言动作与视频状态的通用世界模型发展

论文《Pandora: 朝着结合自然语言动作与视频状态的通用世界模型发展》探索了构建一个高度集成的AI系统,旨在理解自然语言指令并在视频所代表的视觉环境中执行相应操作,从而推进对复杂动态场景的建模与预测能力。以下是该论文的关键点和贡献的详细解读&am…

针对河南大学数据结构傻逼学堂在线的自动化脚本

首先展示一下我们的答案 {1: [对象], 2: [关系]} {1: [非数值计算], 2: [操作]} {1: [线性表]} [D] [B] [B] [C] [C] {1: [操作]} {1: [数据关系, 数据对象上关系的集合]} {1: [性质相同]} {1: [物理结构]} {1: [存储结构, 操作表示]} [C] [B] [D] [B] [D] [true] [false] [fa…

Polyp-DDPM: Diffusion-Based Semantic Polyp Synthesis for Enhanced Segmentation

Polyp- ddpm:基于扩散的语义Polyp合成增强分割 摘要: 本研究介绍了一种基于扩散的方法Polyp-DDPM,该方法用于生成假面条件下息肉的逼真图像,旨在增强胃肠道息肉的分割。我们的方法解决了与医学图像相关的数据限制、高注释成本和隐私问题的挑…

pywinauto入门指南:轻松掌握Windows GUI自动化

pywinauto库概述: pywinauto是一个Python库,主要用于自动化Windows应用程序的GUI测试和操作.它提供了一组简单而强大的API,可以模拟用户与Windows应用程序的交互,包括点击按钮、输入文本、选择菜单等操作. 安装 ##pywinauto可以通过pip进行安装,打开命令行运行: pip install…

交叉注意力一脚踹进医学图像分割!新成果精度、效率表现SOTA

为解决传统方法的局限性,研究者们提出了将交叉注意力机制应用于医学图像分割。 交叉注意力机制能更有效地整合来自不同模态/尺度的特征,让模型同时捕捉全局和局部信息,加速学习并减少干扰。这样不仅可以提高分割的精度,还可以减少…

深度解析SD-WAN在企业组网中的应用场景

在现代企业快速发展的网络环境中,SD-WAN技术不仅是实现企业各站点间高效连接的关键,也是满足不同站点对互联网、SaaS云应用和公有云等多种业务需求的理想选择。本文将从企业的WAN业务需求出发,对SD-WAN的组网场景进行全面解析,涵盖…

动态库、静态库制作与使用

动态库 在linux中动态库以lib为前缀,so为后缀,中间是库的名字,可自己定义,即libxxx.so在windows中动态库以lib为前缀,dll为后缀,中间名字自定义,即libxxx.dll生成动态链接库直接使用gcc命令,并且需要添加-fPIC(-fpic)以及-shared参数 -fPIC(-fpic)参数作用:使得gcc生成…

日元预计明年开始上涨

被称为“日元先生”的前大藏省(现财务省)财务官榊原英资预测,美元兑日元汇率将在今年底或2025年初逐步升至130。他认为,通缩时代已经过去,通货膨胀即将来临。 《日本经济新闻》6月5日报道,日本财务省于5月3…

机器人----移动

机器人的移动需要指定移动的对象,即目标坐标系。 移动对象坐标系 一般在机器人语言中,通过t参数指定移动的坐标系,移动的坐标系可以直接指定为flange坐标系,或者基于flange坐标系计算的工具(tcp)坐标系。总之,这个移动…

webkit 的介绍

WebKit 是一个开源的网页浏览器引擎,它是 Safari 浏览器和许多其他应用程序的基础。WebKit 最初由苹果公司开发,并在2005年作为开源项目发布。WebKit 的核心组件包括 WebCore 和 JavaScriptCore。以下是 WebKit 的详细介绍: ### WebKit 的主…

oracle12c到19c adg搭建(五)dg搭建后进行切换19c进行数据字典升级

一、备库切主库升级 12c切换为19c主库的时候是由低版本到高版本所以cdb和pdb的数据字典需要进行升级才可以让数据与软件版本兼容。 1.1切换 SQL> alter database recover managed standby database finish; Database altered. SQL> alter database commit to switcho…

javascript 中字符串转化utf8字节数组, 然后在将字节数组转化十六进制字符串

https://www.cnblogs.com/han-guang-xue/p/14386666.html 1. Buffer 是用来处理流操作的 2. 字符串转化utf8字节数组, 然后在将字节数组转化十六进制字符串 /** 将字符串转化为utf-8字节 */ function ToUTF8(str) {var result new Array();var k 0;for (var i 0; i < …

无线桥接两个路由器 实现全屋网络全覆盖

由于房屋结构、面积等因素&#xff0c;单个路由器的信号很难覆盖整个家。这时&#xff0c;我们可以通过无线桥接的方式&#xff0c;将两个路由器连接成一个网络&#xff0c;实现家庭网络的全面覆盖。 一、准备工作 在进行无线桥接之前&#xff0c;我们需要准备以下设备&#…

prior knowledge 先验知识

先验知识&#xff08;Prior Knowledge&#xff09;是指在进行某项研究、分析或决策之前已经掌握的知识或信息。在统计学、机器学习和人工智能中&#xff0c;先验知识具有重要作用&#xff0c;尤其是在构建和优化模型时。 先验知识在统计学中的应用 在贝叶斯统计中&#xff0c…

阿里云使用域名访问部署网站【2024 详细版】

目录 一、注册域名 1.创建信息模板 2.查询注册域名 二、域名设置 1.SSL证书 2.域名解析 3.宝塔设置 一、注册域名 1.创建信息模板 点击右上角【三】-【域名】-【信息模板】-【创建信息模板】- 填写信息 模板分为个人和企业两种&#xff0c;根据情况进行创建即可&…

Per 语言入门学习

语言学习对于很多人来说是一个很有挑战性的任务&#xff0c;尤其是对于初学者来说。但是通过合理的学习方法和坚持不懈的努力&#xff0c;任何人都可以成功地掌握一门新的语言。下面是一个关于语言入门学习的大致指南&#xff0c;希望能对你有所帮助。 一、制定学习计划 在开始…

C++ GPU编程(英伟达CUDA)

安装编译环境 https://developer.download.nvidia.com/compute/cuda/12.5.0/local_installers/cuda_12.5.0_555.85_windows.exe CMakeLists.txt cmake_minimum_required(VERSION 3.10)set(CMAKE_CXX_STANDARD 17) set(CMAKE_BUILD_TYPE Release) #set(CMAKE_CUDA_ARCHITECTUR…

域名反查IP多种方式

域名反查IP是指通过已知的域名来查询其对应的IP地址。以下是几种常用的域名反查IP的方法&#xff1a; 使用ping命令&#xff1a; 在命令行中输入“ping 域名”&#xff0c;例如“ping www.example.com”。 系统会返回该域名对应的IP地址。 这种方法在Windows和Linux系统上都适…