操作系统:输入输出管理(二)磁盘调度算法

一战成硕

    • 5.3 磁盘固态硬盘
      • 5.3.1 磁盘
      • 5.3.2 磁盘的管理
      • 5.3.3 磁盘调度算法

5.3 磁盘固态硬盘

5.3.1 磁盘

磁盘是表面涂有磁性物质的物理盘片,通过一个称为磁头的导体线圈从磁盘存取数据。在读写操作中,磁头固定,磁盘在下面高速旋转。磁盘盘面上的数据存储在一组同心圆中,称为磁道。每个磁道与磁头一样宽,一个盘面有上千个磁道,磁道又划分为几百个扇区,每个扇区固定存储大小,一个扇区称为一个盘块,相邻磁道及相邻扇区通过一定间隙分割开来,以避免精度错误。由于扇区固定圆心角度划分,所以密度从最外道向里道增加,磁盘的存储能力受限于最内道的最大记录密度。
磁盘安装在一个磁盘驱动器中,它由磁头臂,用于旋转磁盘的主轴和用于数据输入输出的电子设备组成,多个盘片垂直堆叠,组成磁盘组,每个盘面对应一个磁头,所有磁头固定在一起,与磁盘中心距离相同且一起移动,所有盘片相对位置相同的磁道组成柱面,扇区是磁盘可寻址的最小单位,磁盘上能存储的物理块数目由扇区数,磁道数及磁盘面数决定,磁盘地址用柱面号·盘面号·扇区号。
磁盘按不同的方式可分为若干类型,磁头相对盘片的途径方向固定的,称为固定头磁盘,每个磁道一个磁头,磁头可移动的,称为活头磁盘,磁头臂可来回伸缩定位磁道,磁盘永远固定在磁盘驱动器中,称为固定盘磁盘,可移动和替换的,称为可换盘磁盘。

5.3.2 磁盘的管理

  1. 磁盘的初始化
    一个新的磁盘只是一个磁性记录材料空白盘,在磁盘可以存储数据之前,必须将他分成扇区,以便磁盘控制器进行读写操作,这个过程称为低级格式化(或物理格式化)低级格式化为每个扇区使用特殊的数据结构,填充磁盘,每个扇区的数据结构通常由头部,数据区域(通常为512B)和尾部组成,头部和尾部包含了一些磁盘控制器的使用信息。
  2. 分区
    在可以使用磁盘存储文件之前,操作系统还要将自己的数据结构记录到磁盘上,分为两部,第一步是将磁盘分为一个或多个柱面组成的分区(即我们熟悉的c盘d盘等形式的分区),每个分区的起始扇区的大小都记录在磁盘主引导记录的分区表中,第二步是,对物理分区进行逻辑格式化(创建文件系统),操作系统将初识的文件系统数据结构存储到磁盘上,这些数据结构包括空闲空间和已分配空间以及一个初识为空目录。
    因扇区单位太小,为了提高效率,操作系统将多个相邻扇区组合在一起,形成一簇,为了更高效地管理磁盘,一簇只能存放一个文件的内容,文件所占用的空间只能是簇的整数倍,如果文件大小小于一簇(甚至是0字节),也要占用一簇的空间。
  3. 引导块
    计算机启动时需要运行一个初始化程序(自举程序),它初始化cpu,寄存器,设备控制器和内存等,接着启动操作系统,为此,自举程序找到磁盘上的操作系统内核,将他加载到内存,并转到起始地址,从而开始操作系统的运行。
    自举程序通常存放在ROM中,为了避免改变自举代码需要改变ROM硬件的问题,通常只在ROM中保留很小的自举程序装入程序,而将完整功能的引导程序保存在磁盘启动块上,启动块位于磁盘固定位置,具有启动分区磁盘称为启动磁盘或系统磁盘。
    在这里插入图片描述
  4. 坏块
    在这里插入图片描述

5.3.3 磁盘调度算法

一次磁盘读写操作时间由寻找(寻道)时间,旋转延迟时间和传输时间决定。
1)寻道时间Ts。活动头磁盘在读写信息前,将磁头移动到指定磁道所需要的时间,这个时间除跨越n条磁道时间外,还包括启动磁臂的时间s。即:
Ts=m*n+s。
m是与磁盘驱动器速度有关的常数,约为0.2ms,磁臂启动时间约为2ms。
2)旋转延迟时间Tr。磁头定位到某一磁道扇区所需要时间,设磁盘的旋转速度为r,则:
Tr=1/2r
对于磁盘,典型的旋转速度为5400转/分,相当于一周11.1ms,则Tr为5.55ms,对于软盘,则其旋转速度为300到600转每分,则Tr为50到100ms。
3)传输时间Tt。从磁盘读出或向磁盘写入数据所经历时间,这个时间取决于每次读写的字节数b和磁盘旋转速度。
Tt=b/rN
r为磁盘每秒的转数,N为一个磁道的字节数。
在磁盘存取时间的计算中。寻道时间与磁盘调度算法相关,而延迟时间的传输时间都与磁盘旋转速度相关,且为线性相关,所以在硬件上,转速是磁盘性能的一个非常重要的参数,总平均存取时间Ta可以表示为:
Ta=Ts+1/2r+b/rN
注意,该平均存取时间公式,但该平均值没有多大意义,因为在实际磁盘IO操作中,存取时间与磁盘调度算法密切相关。

目前常用的磁盘调度算法:
(1)先来先服务(FIFS)
根据进程请求访问磁盘的贤惠顺序进行调度。
公平,若只有少量进程需要访问,且大部分请求都是访问簇聚的文件扇区,则有望达到较好的性能,若有大量进程竞争使用磁盘,则这种算法在性能上往往接近于随机调度,所以实际磁盘调度中会考虑一些更为复杂的调度算法。
在这里插入图片描述
(2)最短寻找时间优先(SSTF)
选择调度处理的磁道是与当前磁头所在磁道距离最近的磁道,所在磁道距离最近的磁道,以便使每次的寻找时间最短,但是这种算法会产生饥饿现象。
在这里插入图片描述
(3)扫描算法(电梯调度算法)
在当前移动方向上选择与当前磁头所在磁道距离最近的请求作为下一次服务的对象。
在这里插入图片描述
(4)循环扫描算法
在扫描算法的基础上规定磁头单向移动来提供服务,回返时直接快速移动至起始端而不服务任何请求。
在这里插入图片描述
(5)LOOK算法
磁头移动只需要到达最远端的一个请求即可返回,不需要到达磁盘端点。
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

第四代智能井盖传感器,万宾科技助力城市安全

在迈向更为智能化、相互联系更为紧密的城市发展过程中,智能创新产品无疑扮演了一种重要的角色。智能井盖传感器作为新型科学技术产物,不仅解决传统井盖管理难的问题,也让城市变得更加安全美好,是城市生命线的一层重要保障。这些平…

Axelar、J.P.Morgan Onyx、Apollo 完成概念验证,向跨区块链自动化投资领域探索

J.P.Morgan Onyx、Apollo、Axelar、Oasis Pro 以及 Provenance Block Chain 展开合作,共同进行互操作性概念验证(Proof-of-Concept,PoC)。 新加坡 — Axelar Inc.、Oasis Pro 、Provenance Blockchain 与 J.P.Morgan Onyx 以及 Apollo 通过新…

人工智能引领环境保护的新浪潮:技术应用及其影响

在全球范围内,环境保护已经成为一个迫切的话题。随着人工智能技术的发展,它开始在环境保护领域扮演越来越重要的角色。AI不仅能够帮助更有效地监测环境变化,还能提出解决方案来应对环境问题。 污染监测与控制: AI系统可以分析来自…

面试求职者

顾x文 SQLite3数据的使用实现了多线程UDP数据收发功能Qt多线程的同步和异步熟悉GDB的调试了解Mysql的性能优化熟悉常见算法:快速排序、希尔排序、归并排序基于Nginx C Mysql Python ICE开发熟练Boost库负责搭建后台服务端,使用Nginx展示前端界面&am…

hadoop 大数据环境配置 配置jdk, hadoop环境变量 配置centos环境变量 hadoop(五)

1. 遗漏一步配置系统环境变量,下面是步骤,别忘输入更新系统环境命令 2. 将下载好得压缩包上传至服务器: /opt/module 解压缩文件存放地址 /opt/software 压缩包地址 3. 配置环境变量: 在/etc/profile.d 文件夹下创建shell文件 …

Python---列表 集合 字典 推导式(本文以 列表 为主)

推导式: 推导式comprehensions(又称解析式),是Python的一种独有特性。推导式是可以从一个数据序列构建另一个新的数据序列(一个有规律的列表或控制一个有规律列表)的结构体。 共有三种推导:列表…

面试经典(4/150)删除有序数组中的重复项 II

面试经典(4/150)删除有序数组中的重复项 II 给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使得出现次数超过两次的元素只出现两次 , 返回删除后数组的新长度。不要使用额外的数组空间,你必须在 原…

【带头学C++】----- 六、结构体 ---- 6.7 结构体的对齐规则

6.7 结构体的对齐规则 6.7.1 知识点引入 6.7.2 结构体自动对齐规则 1、确定分配单位(一行分配多少字节) 结构体中最大的基本类型长度决定 2、确定成员的偏移量 成员偏移量成员自身类型的整数倍 需要根据你所在平台的位数,32位和64为类型大小不一样。cpu一次读取…

前段-用面向对象的方式开发一个水管小鸟的游戏

首先准备好各类空文件 index.js css html 和图片 图片是下面这些,如果没有的可在这里下载 2 开发开始 好了,基础准备工作完毕,开发开始, 首先,先把天空,大地,小鸟的盒子准备好,并…

Android studio配置Flutter开发环境报错问题解决

博主前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住也分享一下给大家 👉点击跳转到教程 报错问题截图 报错原因已经给出: You need Java 11 or higher to build your app with this version of G…

【智能家居】4、智能家居框架设计和代码文件工程建立

目录 一、智能家居项目框架 二、智能家居工厂模式示意 三、代码文件工程建立 SourceInsight创建新工程步骤 一、智能家居项目框架 二、智能家居工厂模式示意 三、代码文件工程建立 创建一个名为si的文件夹用于保存SourceInsight生成的文件信息,然后在SourceInsig…

DocCMS keyword SQL注入漏洞复现 [附POC]

文章目录 DocCMS keyword SQL注入漏洞复现 [附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现 0x06 修复建议 DocCMS keyword SQL注入漏洞复现 [附POC] 0x01 前言 免责声明:请勿利用文章内的相关技术从事非法测…

【ES6.0】- 扩展运算符(...)

【ES6.0】- 扩展运算符... 文章目录 【ES6.0】- 扩展运算符...一、概述二、拷贝数组对象三、合并操作四、参数传递五、数组去重六、字符串转字符数组七、NodeList转数组八、解构变量九、打印日志十、总结 一、概述 **扩展运算符(...)**允许一个表达式在期望多个参数&#xff0…

【超好用的工具库】hutool-all工具库的基本使用

简介(可不看): hutool-all是一个Java工具库,提供了许多实用的工具类和方法,用于简化Java开发过程中的常见任务。它包含了各种模块,涵盖了字符串操作、日期时间处理、加密解密、文件操作、网络通信、图片处…

2311rust到27版本更新

1.23 从Rust1.0开始,有叫AsciiExt的特征来提供u8,char,[u8]和str上的ASCII相关功能.要使用它,需要如下编写代码: use std::ascii::AsciiExt; let ascii a; let non_ascii ; let int_ascii 97; assert!(ascii.is_ascii()); assert!(!non_ascii.is_ascii()); assert!(int_a…

C#多线程Thread、Task

在C#中,线程可以用于完成需要耗费较长时间的操作,而不会阻塞用户界面。一个程序可以有多个线程,每个线程可以并行执行代码。 在C#中,可以使用System.Threading.Thread类来创建和控制线程,使用System.Threading.Mutex类…

javascript二维数组(22)JavaScript 中的数据类型有哪些?如何进行类型转换?

在 JavaScript 中,数据类型主要分为两种:基本类型和对象类型。 基本类型是指原始数据类型,包括: Number:数值型。可以是整数或浮点数。String:字符串型。用于表示文本数据。Boolean:布尔型。包…

ZYNQ7000---FLASH读写

提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、Flash是什么?二、Flash的分类1、内部结构(接口)区分:2、外部接口区分:SPIQPSI Flash: QSPI 控制…

k8s pod 处于Terminating的原因分析和解决处理——筑梦之路

之前整理了一下各种资源长时间无法回收,解决处理的命令行 k8s 各种资源Terminationg状态处理 —— 筑梦之路_k8s自定义资源修改状态-CSDN博客 这里具体整理下pod长时间处于Terminating状态的相关知识,主要是对前面的补充和完善,作为笔记记录…

京东数据挖掘(京东数据采集):2023年Q3电脑行业数据分析报告

近年来,在远程办公、远程教育等需求的刺激下,电脑的销售增长较为显著。不过,随着市场的成熟乃至饱和,电脑销售市场也逐渐出现增长困难、需求疲软等问题。 2023年第三季度,电脑市场的出货量同比下滑。根据鲸参谋电商数据…