操作系统基础:磁盘组织与管理【下】

在这里插入图片描述

在这里插入图片描述

🌈个人主页:godspeed_lucip
🔥 系列专栏:OS从基础到进阶


  • ⚖️1 减少延迟时间
    • ⚙️1.1 存在延迟时间的原因
    • ⚙️1.2 减少延迟的方法
      • 🧪1.2.1 交替编号
      • 🧪1.2.2 错位命名
    • ⚙️1.3 总结
  • ⚖️2 磁盘的管理
    • 🧰2.1 总览
    • 🧰2.2 什么是磁盘初始化
      • ⚗️2.2.1 物理格式化
      • ⚗️2.2.2 将磁盘分区
      • ⚗️2.2.3 逻辑格式化
    • 🧰2.3 引导块
      • ⚗️2.3.1 初始化程序(自举程序)
      • ⚗️2.3.2 引导块
    • 🧰2.4 坏块
      • ⚗️2.4.1 什么是坏块
      • ⚗️2.4.2 如何解决坏块的问题
    • 🧰2.5 总结
  • ⚖️3 固态硬盘
    • 🏹3.1 总览
    • 🏹3.2 SSD组成
      • 📡3.2.1 示意图
      • 📡3.2.2 解释
    • 🏹3.3 SSD的读取特性
      • 📡3.3.1 固态硬盘的读取过程
      • 📡3.3.2 固态硬盘的擦除/写过程
      • 📡3.3.3 固态硬盘支持随机访问
    • 🏹3.4 SSD的磨损均衡技术
      • 📡3.4.1 SSD的缺点
      • 📡3.4.2 什么是磨损均衡技术
      • 📡3.4.3 分类
  • 🕮 4 总结


⚖️1 减少延迟时间

⚙️1.1 存在延迟时间的原因

假设磁盘的基本结构如图所示。事实上,在实际的磁盘中,磁头每读取一个扇区的内容后,需要一定的处理时间,但是盘片是在不停的旋转的,所以假设磁头读完2号扇区后再想读3号扇区,必须等盘片转完一圈才可以。此时会产生较大的延迟。
image1
image2

⚙️1.2 减少延迟的方法

🧪1.2.1 交替编号

image3
如图,假设磁盘需要读入0-1号扇区的内容,当读完0号扇区的内容后经过一段时间的处理,此时磁头在盘面4,此时只需要等待磁头从4转到1号就可以读取。
image4

🧪1.2.2 错位命名

(1)磁盘的物理地址为什么是(柱面号,盘面号,扇区号)而不是(盘面号,柱面号,扇区号)?

①对于第二种表示方式,
image5
则转第一圈的时候,可以读取0、2、4、6的磁道的数据;转第二圈可以读取1、3、5、7的磁道的数据。
此时(00,000,111)的数据全部读完,为了读取(00,001,000)-(00,001,111)的数据,需要将读写头往外移动一个磁道的距离,这种移动属于物理层面的移动,耗费时间较长。

②对于第一种表示方式,
image6
与前文类似,读取(000,00,111)的数据需要转两圈。接下来为了读取(000,01,000)-(000,01,111)的数据(分布在两个盘面上),示意图如图所示。则只需要将0号磁头关闭并激活1号磁头即可。并再次转两圈就可以读取完成。
这种方式无须物理移动磁头,耗费时间更短
image7

(2)什么是错位命名?
不同盘面不同扇区的命名是错开的。如图所示
image8

(3)不采用错位命名的读取过程
如果不采用错位命名,则磁盘的物理结构的示意图如图所示
image9
假设想读取的数据为0号盘面的7号扇区、1号盘面的0号扇区
注意:
1. 这种地址连续的读取很常见)。
2. 不同的盘面是连轴转动的。

则首先会转一圈读取0号盘面的7号扇区,而读取完数据还需要花费一定的时间进行处理,而盘面是不间断转动的,因此虽然此时1号磁头已经到了1号盘面的0号扇区,但是也并不可以立即读取,而等到可以读取的时候磁头已经不在扇区的开始处了。所以又需要转一圈,整个过程耗费时间较长

(4)采用错位命名的读取过程
如果采用错位命名,则磁盘的物理结构的示意图如图所示
image8
则当0号盘面的7号扇区的数据处理完毕,此时1号盘面的磁头可能已经在7号扇区的中间,再等上一小段时间就可以读取数据。此种方法耗费时间较短。

⚙️1.3 总结

image10

⚖️2 磁盘的管理

🧰2.1 总览

image1

🧰2.2 什么是磁盘初始化

⚗️2.2.1 物理格式化

image2
如图所示:
image3

⚗️2.2.2 将磁盘分区

image4
如图所示
image5

⚗️2.2.3 逻辑格式化

image6

🧰2.3 引导块

⚗️2.3.1 初始化程序(自举程序)

(1)什么是自举程序?
image7
(2)ROM
image8
(3)存在的问题
初始化程序一般较大,很难保证不出错,但是ROM是不可更改的,当程序出错时就无法更改

⚗️2.3.2 引导块

(1)如何改进ROM的问题?
为了解决ROM的问题,通常是将自举块存放在系统内,ROM钟存放自举装入程序,这种程序一般而言较小,出错的可能性很小
image9
(2)什么是引导块?
image10

🧰2.4 坏块

⚗️2.4.1 什么是坏块

image11

⚗️2.4.2 如何解决坏块的问题

(1)FAT标记
image12
(2)替换坏块
image13

🧰2.5 总结

image14

⚖️3 固态硬盘

🏹3.1 总览

image1

🏹3.2 SSD组成

📡3.2.1 示意图

image2

📡3.2.2 解释

系统对于固态硬盘的读取是以页为单位,多个页组成了一个块,多个块组成了一个芯片,多个芯片组成了一个芯片组。
对应到机器硬盘:
系统对于机器硬盘的读取是以扇区为单位,多个扇区组成一个磁道,多个磁道促成一个盘面,多个盘面组成一个盘面组。

因此存在对应关系:

固态硬盘机器硬盘
扇区
磁道
芯片盘面
芯片组盘面组

🏹3.3 SSD的读取特性

📡3.3.1 固态硬盘的读取过程

系统将需要读/写的逻辑块号传入硬盘,硬盘的闪存翻译层将逻辑块号翻译为物理页号,再从此物理地址中取出内容传给系统

📡3.3.2 固态硬盘的擦除/写过程

由于固态硬盘对数据的擦除是以块为单位的。假如此时一个块有3个页,其中0、1页有数据,而此时又想在0页写数据。则此时需要将0、1页的数据移到其余空闲块,并进行擦除后才可以写入。
同时,数据的物理地址改变后,闪存翻译层还需要同步改变这些数据的逻辑块号、物理地址的映射关系

📡3.3.3 固态硬盘支持随机访问

可以直接通过电路定位到物理地址。而机器硬盘只可以通过磁头的移动进行读写,不支持随机访问。

🏹3.4 SSD的磨损均衡技术

📡3.4.1 SSD的缺点

当SSD中的一个块被擦除太多次后会坏掉,也就是不可以再次写入数据。当然,机器硬盘不存在这一点特点。

📡3.4.2 什么是磨损均衡技术

对于坏掉的块或磨损过于严重的块,闪存翻译层会改变逻辑块号与物理地址的映射关系,不再将数据存入该块

📡3.4.3 分类

①动态磨损均衡
image3
②静止磨损均衡
image4

🕮 4 总结

操作系统,如默默守护的守夜者,无声地管理硬件与软件的交流,为计算机创造和谐秩序。

它是无形的引导者,让复杂的任务变得井然有序,为用户提供无忧体验。

操作系统的巧妙设计,让计算机变得更加智能高效,让人与科技之间的交流更加顺畅。

在每一次启动中,它如信任的伙伴,带领我们进入数字世界的奇妙旅程。

渴望挑战操作系统的学习路径和掌握进阶技术?不妨点击下方链接,一同探讨更多操作系统的奇迹吧。我们推出了引领趋势的💻OS专栏:《OS从基础到进阶》 ,旨在深度探索OS的实际应用和创新。🌐🔍

在这里插入图片描述

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Leetcode刷题笔记题解(C++):590. N 叉树的后序遍历

思路&#xff1a;类似于二叉树的排序&#xff0c;这里需要将子树进行依次递归遍历&#xff0c;前序遍历也与之类似 /* // Definition for a Node. class Node { public:int val;vector<Node*> children;Node() {}Node(int _val) {val _val;}Node(int _val, vector<N…

蓝桥杯Web应用开发-CSS3 新特性【练习一:属性有效性验证】

练习一&#xff1a;属性有效性验证 页面上有一个邮箱输入框&#xff0c;当你的输入满足邮箱格式时&#xff0c;输入框的背景颜色为绿色&#xff1b;当你的输入不满足要求&#xff0c;背景颜色为红色。 新建一个 index2.html 文件&#xff0c;在其中写入以下内容。 <!DOCTYP…

2024-02-06(Sqoop)

1.Sqoop Apache Sqoop是Hadoop生态体系和RDBMS&#xff08;关系型数据库&#xff09;体系之间传递数据的一种工具。 Sqoop工作机制是将导入或者导出命令翻译成MapReduce程序来实现。在翻译出的MapReduce中主要是对inputformat和outputformat进行定制。 Hadoop生态包括&#…

python30-Python的运算符结合性和优先级

1&#xff09;所有的数学运算都是从左向右进行的&#xff0c;Python 语言中的大部分运算符也是从左向右结合的&#xff0c;只有单目运算符、赋值运算符和三目运算符例外&#xff0c;它们是从右向左结合的&#xff0c;也就是说&#xff0c;它们是从右向左运算的。 2&#xff09…

怎么理解 Redis 事务

背景 在面试中经常会被问到&#xff0c;redis支持事务吗&#xff1f;事务是怎么实现的&#xff1f;事务会回滚吗&#xff1f;又是一键三连&#xff0c;我下面分析下&#xff0c;看看能不能吊打面试官 什么是Redis事务 事务是一个单独的隔离操作&#xff1a;事务中的所有命令…

Spring的学习(上)

1、Spring的Beans.xml 一个beans.xml示例&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www.springframework.org/schema/beans"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:sch…

树莓派Pico入门

文章目录 1. Pico概述1.1 微处理器1.2 GPIO引脚1.3 MicroPython优点 2. 硬件准备2.1 购买清单2.2 软件需求 3. 安装MicroPython3.1下载固件3.2把固件安装到硬件里3.3补充 4. 第一个程序5. 验证运行效果6. 扩展应用 1. Pico概述 1.1 微处理器 ARM Cortex-M0 (频率 133MHz) 1.…

代码随想录算法训练营第43天 | 1049.最后一块石头的重量 II + 494.目标和 + 474.一和零

今日任务 1049. 最后一块石头的重量 II 494. 目标和 474.一和零 1049.最后一块石头的重量 II - Medium 题目链接&#xff1a;力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 有一堆石头&#xff0c;用整数数组 stones 表示。其中 stones[i] 表示…

高速接口PCB布局指南(五)高速差分信号布线(三)

高速接口PCB布局指南&#xff08;五&#xff09;高速差分信号布线&#xff08;三&#xff09; 1.表面贴装器件焊盘不连续性缓解2.信号线弯曲3.高速信号建议的 PCB 叠层设计4.ESD/EMI 注意事项5.ESD/EMI 布局规则 tips&#xff1a;资料主要来自网络&#xff0c;仅供学习使用。 …

Android:国际化弹出框

3.13 风格与主题、国际化 1、应用国际化 应用国际化,通过修改系统语言,应用显示语言跟着改变。 选择Locale,点击>>符号。 创建多个国家,地区strings.xml文件,有一个默认strings.xml文件,各个stirngs.xml中<string>标签中保持一致。 示例: 创建t_language.…

Linux 问题的故障定位

主要介绍各种问题定位的工具以及会结合案例分析问题 1. 分析问题 What-现象是什么样的 When-什么时候发生 Why-为什么会发生 Where-哪个地方发生的问题 How much-耗费了多少资源 How to do-怎么解决问题 2. cpu 针对应用程序&#xff0c;我们通常关注的是内核CPU调度…

【翻译】 Processing的安卓项目构建(译者用的是Android Studio)

原文链接&#xff1a;https://github.com/processing/processing-android/wiki/Building-Processing-for-Android&#xff0c;版本Apr 2, 2023 译者声明&#xff1a;这个文档是开源公开的&#xff0c;协议是GNU协议。译者自己得使用这个文档&#xff0c;所以才翻译的&#xff0…

java SpringBoot2.7整合Elasticsearch(ES)7 进行文档增删查改

首先 我们在 ES中加一个 books 索引 且带有IK分词器的索引 首先 pom.xml导入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-elasticsearch</artifactId> </dependency>applicatio…

立足智能存取解决方案|HEGERLS智能托盘四向车储存制动能量 实现能源回收

对于商业配送和工业生产的企业而言&#xff0c;如何能高效率、低成本进行低分拣、运输、码垛、入库&#xff0c;用以提升仓库空间的利用效率&#xff0c;是现在大多企业急需要解决的行业痛点。对此&#xff0c;为了解决上述痛点&#xff0c;近年来&#xff0c;物流仓储集成商、…

orin nx 安装paddlespeech记录

nx配置&#xff1a; 模块 版本说明 CPU 8核 内存 16G Cuda版本 11.4 Opencv版本 4.5.4 Tensorrt版本 5.1 Cudnn版本 8.6.0.166 Deepstream版本 6.2 Python版本 3.8 算力 100T 安装paddlepaddle&#xff1a; 去飞桨官网下载jetpack版本的&#xff1a;下…

Docker关于conda环境的导出和导入

Docker关于conda环境的导出和导入 1、常用命令&#xff1a;2、环境导出&#xff1a;3、两个服务器之间的文件传输命令&#xff1a;4、环境导入&#xff1a;5、快速进入容器6、其他问题解决记录&#xff1a; 1、常用命令&#xff1a; docker pull -- 从远程仓库将镜像下载至本地…

HDFS架构 之 服务视图

1 、简介 为实现以上特性,HDFS包含的各个服务模块都是经过精心设计的,HDFS的服务视图如图。 HDFS的服务视图包含三大部分:核心服务、公共服务和拓展服务。 2、 核心服务 1)Namenode。HDFS系统采用中心化设计,即Master/Slave架构。这里的Namenode即是Master,主要作用是管…

瑞_力扣LeetCode_二叉树相关题

文章目录 说明题目 144. 二叉树的前序遍历题解 题目 94. 二叉树的中序遍历题解 题目 145. 二叉树的后序遍历题解 题目 105. 从前序与中序遍历序列构造二叉树题解 题目 106. 从中序与后序遍历序列构造二叉树题解 &#x1f64a; 前言&#xff1a;本文章为瑞_系列专栏之《刷题》的…

基于微信小程序的学生公寓宿舍电费管理系统的研究与实现

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…

c++多态(1) -- 子类型及什么是多态

目录 代码分析: 代码中我们使用了三种方式: 为什么子类对象可以赋值给父类对象? 子类型的传递性: 使用父类的指针指向子类的对象: 总结: 子类型和多态的联系及什么是多态 那父类指针指向子类对象的用处在哪? 子类型: 从名字看就知道和继承有关。 子类型…