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

一战成硕

    • 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,一经查实,立即删除!

相关文章

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

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

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

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

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

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

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

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

【带头学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 前言 免责声明:请勿利用文章内的相关技术从事非法测…

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

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

ZYNQ7000---FLASH读写

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

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

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

德迅云安全为您介绍关于抗D盾的一些事

抗D盾概述: 抗D盾是新一代的智能分布式云接入系统,接入节点采用多机房集群部署模式,隐藏真实服务器IP,类似于网站CDN的节点接入,但是“抗D盾”是比CDN应用范围更广的接入方式,适合任何TCP 端类应用包括&am…

GB28181 编码规则说明

背景: GB/T28181-2011 《安全防范视频监控联网系统信息传输、交换、控制技术要求》中规定了联网系统应对前端设备、监控中心设备、用户终端ID进行统一编码,该编码具有全局唯一性。这就是国标编码。编码分20位和18位,其中18位编码已经淘汰。下文中&#…

搭建yum源并定时同步

一 、安装yum源 1-准备yum目录 cd /data/www/html createrepo -v ./目录 2-安装服务 yum -y install httpd 3-配置服务 /etc/httpd/conf/httpd.conf 4.配置/etc/yum.repo.d/local.rpeo 二、定时更新yum源 #1. 同步整个源到指定目录 [rootV10SP1-1 pac]# reposync -p /root/…

python 随机数生成

生成随机整数 使用 randint() 函数可以生成指定范围内的随机整数。 import random # 生成1到10之间的随机整数 random_int random.randint(1, 10) print(random_int) 生成随机浮点数 random() 方法用于生成 0 到 1 之间的随机浮点数。 import random # 生成0到1之间…

[msg_msg] corCTF2021 -- fire_of_salvation

前言 msg_msg 是 kernel pwn 中经常用作堆喷的结构体. 其包含一个 0x30 大小的 header. 但 msg_msg 的威力远不如此, 利用 msg_msg 配合其他堆漏洞可以实现任意地址读写的功能. 程序分析 本题给了源码, 可以直接对着源码看. 并且题目给了编译配置文件, 所以可以直接编译一个…

Linux/麒麟系统上部署Vue+SpringBoot前后端分离项目

目录 1. 前端准备工作 1.1 在项目根目录创建两份环境配置文件 1.2 环境配置 2. 后端准备工作 2.1 在项目resources目录创建两份环境配置文件 2.2 环境配置 3. 前后端打包 3.1 前端打包 3.2 后端打包 4、服务器前后端配置及部署 4.1 下载、安装、启动Nginx 4.2 前端项目部署…

Elasticsearch搜索分析引擎本地部署与远程访问

文章目录 系统环境1. Windows 安装Elasticsearch2. 本地访问Elasticsearch3. Windows 安装 Cpolar4. 创建Elasticsearch公网访问地址5. 远程访问Elasticsearch6. 设置固定二级子域名 Elasticsearch是一个基于Lucene库的分布式搜索和分析引擎,它提供了一个分布式、多…

【小白的Spring源码手册】 BeanFactoryPostProcessor的注册和用法(BFPP)

目录 前言应用1. 手动注册2. 自动注册3. 优先级 前言 沿用上一篇文章的流程图,我们的注解类应用上下文中的AnnotationConfigApplicationContext#scan(String...)方法已经将所有BeanDefinition注册到了IoC容器中。完成注册后,开始执行AbstractApplicatio…