从01开始 从01开始
首页
  • 计算机科学导论
  • 数字电路
  • 计算机组成原理

    • 计算机组成原理-北大网课
  • 操作系统
  • Linux
  • Docker
  • 计算机网络
  • 计算机常识
  • Git
  • JavaSE
  • Java高级
  • JavaEE

    • Ant
    • Maven
    • Log4j
    • Junit
    • JDBC
    • XML-JSON
  • JavaWeb

    • 服务器软件
    • Servlet
  • Spring
  • 主流框架

    • Redis
    • Mybatis
    • Lucene
    • Elasticsearch
    • RabbitMQ
    • MyCat
    • Lombok
  • SpringMVC
  • SpringBoot
  • 学习网课的心得
  • 输入法
  • 节假日TodoList
  • 其他
  • 关于本站
  • 网站日记
  • 友人帐
  • 如何搭建一个博客
GitHub (opens new window)

peterjxl

人生如逆旅,我亦是行人
首页
  • 计算机科学导论
  • 数字电路
  • 计算机组成原理

    • 计算机组成原理-北大网课
  • 操作系统
  • Linux
  • Docker
  • 计算机网络
  • 计算机常识
  • Git
  • JavaSE
  • Java高级
  • JavaEE

    • Ant
    • Maven
    • Log4j
    • Junit
    • JDBC
    • XML-JSON
  • JavaWeb

    • 服务器软件
    • Servlet
  • Spring
  • 主流框架

    • Redis
    • Mybatis
    • Lucene
    • Elasticsearch
    • RabbitMQ
    • MyCat
    • Lombok
  • SpringMVC
  • SpringBoot
  • 学习网课的心得
  • 输入法
  • 节假日TodoList
  • 其他
  • 关于本站
  • 网站日记
  • 友人帐
  • 如何搭建一个博客
GitHub (opens new window)
  • 计算机历史

  • 数字电路

  • 计算机组成原理

  • 汇编语言

  • C语言

  • 数据结构

  • 操作系统

    • 我的操作系统学习笔记

    • 我的操作系统实验笔记

    • 操作系统网课-王道考研

      • 0_课程白嫖指南
      • 1_1_操作系统的概念(定义)、功能和目标
      • 1_2_操作系统的特征
      • 1_3_操作系统的发展与分类
      • 1_4_操作系统的运行机制与体系结构
      • 1_5_中断和异常
      • 2_1_1_进程的定义、组成、组织方式、特征
      • 2_1_6_系统调用
      • 2_1_2_进程的状态与转换
      • 2_1_3_进程控制
      • 2_1_4_进程通信
      • 2_1_5_线程概念和多线程模型
      • 2_2_1_处理机调度的概念、层次
      • 2_2_2_进程调度的时机、切换与过程、方式
      • 2_2_3_调度算法的评价指标
      • 2_2_4_FCFS、SJF、HRRN调度算法
      • 2_2_5_调度算法:时间片轮转、优先级、多级反馈队列
      • 2_3_1_进程同步、进程互斥
      • 2_3_2_进程互斥的软件实现方法
      • 2_3_3_进程互斥的硬件实现方法
      • 2_3_4_信号量机制
      • 2_3_5_用信号量实现进程互斥、同步、前驱关系
      • 2_3_6_生产者-消费者问题
      • 2_3_7_多生产者-多消费者问题
      • 2_3_8_吸烟者问题
      • 2_3_9_读者-写者问题
      • 2_3_10_哲学家进餐问题
      • 2_3_11_管程
      • 2_4_1_死锁的概念(1)
      • 2_4_2_死锁的处理策略—预防死锁
      • 2_4_3_死锁的处理策略—避免死锁
      • 2_4_4_死锁的处理策略—检测和解除
      • 3_1_1_内存的基础知识
      • 3_1_2_内存管理的概念
      • 3_1_3_覆盖与交换
      • 3_1_4_连续分配管理方式
      • 3_1_5_动态分区分配算法
      • 3_1_6_基本分页存储管理的基本概念
      • 3_1_7_基本地址变换机构
      • 3_1_8_具有快表的地址变换机构
      • 3_1_9_两级页表
      • 43_3_1_10_基本分段存储管理方式
      • 3_1_11_段页式管理方式
      • 3_2_1_虚拟内存的基本概念
      • 3_2_2_请求分页管理方式
      • 3_2_3_页面置换算法
      • 3_2_4_页面分配策略
      • 4_1_1_初识文件管理
      • 4_1_2_文件的逻辑结构
      • 4_1_3_文件目录
      • 4_1_4_文件的物理结构(上)
      • 4_1_4_文件的物理结构(下)
      • 54_4_1_5_文件存储空间管理
      • 4_1_6_文件的基本操作
      • 4_1_7_文件共享
      • 4_1_8_文件保护
      • 4_1_9_文件系统的层次结构
      • 4_2_1_磁盘的结构
      • 4_2_2_磁盘调度算法
      • 4_2_3_减少磁盘延迟时间的方法
      • 4_2_4_磁盘的管理
        • 磁盘初始化
        • 引导块
        • 磁盘的坏块
        • 小结
      • 5_1.2_I-O控制器
      • 5_1.3_I-O控制方式
      • 65_5_1_1_I-O设备的概念和分类
      • 5_1_4_I-O软件层次结构
      • 5_1_5_I-O核心子系统
      • 5_1_6_假脱机技术
      • 5_1_7_设备的分配与回收
      • 5_1_8_缓冲区管理
    • 操作系统
  • Linux

  • 计算机网络

  • Git

  • 数据库

  • 计算机小知识

  • 编译原理

  • 名人堂

  • 计算机基础
  • 操作系统
  • 操作系统网课-王道考研
2023-05-15
目录

424_磁盘的管理

# 4.2_4_磁盘的管理

‍各位同学大家好,在这个小节中我们会介绍磁盘管理相关的几个很简单的知识点,‍‍我们首先会介绍什么是磁盘初始化,磁盘初始化的过程中需要做些什么   另外我们会介绍引导快或者说起起始块的概念

最后我们会介绍对于磁盘坏块的一个管理,

​

‍

‍

# 磁盘初始化

首先来看一下什么是磁盘初始化。‍‍我们的磁盘刚被制造出来的时候,其实是只被划分成了一个的磁道

​

‍

‍

在磁盘正式出场之前,还需要进行一个叫做低级格式化或者叫物理格式化的过程,‍‍这个过程一个划分扇区的过程

​

‍

‍

一个扇区可以分为头、‍‍尾还有数据区域这样三个部分,每个扇区的数据区域所能存放的数据数量都是相同的,比如说可以存放512个字节

所以咱们之前所聊到的一个扇区可以存放的数据的大小,其实指的是数据区域可以存放的大小,‍‍像头和尾这两个部分可以做什么?‍‍还记不记得咱们在讲文件的物理结构的时候,‍‍讲过一种链式结构,也就是把文件的那些数据块用链接的方式把它连起来。‍‍前一个数据块指向下一个数据块的指针,其实就可以保存在尾部这个部分。‍‍也就是说这个链接指针并不需要占用数据区域,这样的话可以方便操作系统管理。‍‍

另外管理扇区需所需要的那些数据结构一般也是放在头和尾的位置。比如说像扇区校验码,‍‍大家在计组当中应该也学过基偶校验、还有循环冗余校验码等等,‍‍这些校验码可以用来检查数据区域当中存放的这些数据是否发生了错误,‍‍这样的话可以大幅度的提高磁盘存储数据的一个可靠性。‍‍

总之一个扇区由头数据区域为三个部分组成,‍‍扇区的划分其实是在出厂之前低级格式化,也就物理格式化的时候进行的

‍

‍

在我们正式开始使用磁盘之前,还需要对磁盘进行逻辑上的分区,‍‍每个分区由若干个相邻的柱面组成这所谓的分区,其实就是我们平时熟悉的c盘,‍‍d盘,e盘

​

‍

‍

‍

在划分了分区之后,需要进行下一步叫做逻辑格式化。‍‍逻辑格式化所做的事情主要就是创建文件系统,包括要创建这些根目录文件,‍‍并且要把那些用于存储空间管理的数据结构也进行初始化,比如说像咱们之前学过的位示图,空闲分区表等等,‍‍也是在逻辑格式化这个步骤当中给建立的,这是磁盘初始化的时候需要做的几个事情。‍‍

​

‍

‍

# 引导块

接下来我们来看一下什么是磁盘的引导块,‍‍在我们的磁盘完成了物理格式化,还有磁盘分区和逻辑格式化之后,‍‍我们就可以把操作系统的那些相关数据把它写到磁盘中了,‍‍也就是我们所谓的自己安装操作系统的一个过程。‍‍

在计算机开机启动的时候,其实是需要进行一系列的初始化工作的,包括初始化CPU、初始化内存,‍‍然后初始化像寄存器之类的一些硬件部件,‍‍但是这个初始化的过程需要执行所谓的初始化程序也叫自举程序。‍‍一般来说自主程序是存放在ROM,也就是只读存储器当中的,‍‍而ROM中的数据是在出场的时候就已经写到了 ROM当中,并且以后就不能再修改。‍‍

一般来说ROM是在出场的时候就直接集成在了我们的电脑主板上,‍‍也就是说计算机开机的时候,它首先会读取ROM当中的这些程序,并且执行这些程序来完成初始化的工作。‍‍但是我们来思考一下,我们把自己程序放在ROM当中会有什么问题呢?‍‍假设我们的自己程序需要更新的话,那么就会很不方便,因为ROM当中的数据是无法更改的,‍‍但是由于自举程序本身又比较复杂,所以我们不太可能保证自己程序相关的数据永远不改变。‍‍这个问题怎么解决呢?‍‍

​

‍

‍

现在的操作系统一般是指在ROM当中存放很小的一个自举装入程序,‍‍而完整的自举程序会存放在磁盘的启动块,也就是这儿所说的引导块,‍‍或者叫启动分区上,‍‍比如说存放在c盘的这几个盘块上,那么这些区域就可以称作启动分区,或者叫引导块启动块。‍‍

启动块规定必须在磁盘的固定位置,当计算机开机的时候,首先会执行ROM中的自举装入程序,‍‍在执行自己装入程序的过程当中, CPU就可以知道‍‍接下来需要执行的自举程序,是存放在硬盘当中的哪个位置的,通过自举装入程序的引导,‍‍CPU就可以从磁盘中读取完整的字符程序,这样的话就可以完成初始化。‍‍

自举装入程序的复杂度不高很小,所以其实是可以保证自举装入程序是不会出错的,不需要更改的。‍‍

而自举程序需要更改的话,我们就把自举程序放在磁盘的固定位置,‍‍这样的话当自举程序需要更新的时候,就只需要重新把这些引导块当中的数据把它重写一下,更新一下就可以了。‍‍

所以这种方案带来的好处就是自己程序的更新会变得很方便,一般来说拥有启动分区或者叫引导块启动块的‍‍逻辑磁盘就被称为启动磁盘或者叫系统磁盘。像平时咱们‍‍很熟悉的c盘就是系统磁盘,也就是说其实c盘的某一个固定位置是装了我们的自举程序的,‍‍这是引导块的作用。‍‍

​

‍

‍

# 磁盘的坏块

接下来我们再来看一下对磁盘的坏块应该进行什么样的管理,所谓的坏块就是指那些坏了的‍‍无法正常使用的扇区就是坏块,‍‍这属于一种硬件故障,操作系统是无法通过软件的方式把它进行修复的。‍‍所以为了防止我们错误的使用这些坏块,我们就必须把这些坏块给标记出来。‍‍

在简单的磁盘系统当中,可以在进行逻辑格式化的时候,来标明哪些磁盘块是坏块,比如说我们可以把它在FAT也‍‍也就是文件分配表上进行一个标注,‍‍标记为坏块的这些块之后,不再分配给任何一个文件就可以了。‍‍

由于操作系统在对存储空间进行管理的时候,肯定是需要读取文件分配表的内容的,‍‍而哪些块是坏块是记录在文件分配表当中的,因此采用这种方式的话,‍‍对这个操作系统是不透明的。‍‍

而对于复杂的磁盘系统来说,磁盘控制器这样的一个磁盘内部的硬件部件会负责维护一个叫做坏块链的链表,‍‍顾名思义就是把这些坏块用某种方式把它们链接起来,‍‍在磁盘出厂的时候,其实就有可能已经有一些坏块了,所以在出场之前就会对这些坏块进行一个检查,‍‍在低级格式化也就物理格式化的时候,就需要把这个坏块链进行初始化。‍‍

另外磁盘控制器还会保留一些好的备用扇区,用来替换这些坏块。‍‍比如说此时操作系统想要使用这一个本来已经坏掉的块,那么在硬件的层次,‍‍磁盘控制器这个硬件部件就会用其中的某一个好的这种备用块‍‍来替换这个块块,但是这个过程对于操作系统是透明的,操作系统是不可知的,‍‍这种方案也被称为扇区备用,这是对磁盘的坏块进行管理的两种方法。‍‍

​

‍

# 小结

那么这个小节我们介绍了磁盘的初始化需要做一些什么事情,分为低级格式化、磁盘分区,还有逻辑格式化这样三个步骤,大家需要理解,并且‍‍各个步骤需要做的是一些什么事情,‍‍

之后我们介绍什么是引导块,引导块主要是要用于存放自己程序的,‍‍在开机的时候一定需要运行自己程序才可以完成初始化的过程。

最后我们介绍了两种坏块的管理方式,‍‍这个小节的内容都不难理解,大家只需要有个印象,能应付选择题就可以了。

‍

​

‍

在GitHub上编辑此页 (opens new window)
上次更新: 2023/5/16 10:03:43
4_2_3_减少磁盘延迟时间的方法
5_1.2_I-O控制器

← 4_2_3_减少磁盘延迟时间的方法 5_1.2_I-O控制器→

Theme by Vdoing | Copyright © 2022-2023 粤ICP备2022067627号-1 粤公网安备 44011302003646号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式