百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程文章 > 正文

操作系统基础54-磁盘管理 5、磁盘的管理操作都有哪些?

qiyuwang 2024-10-06 12:25 10 浏览 0 评论

操作系统还负责磁盘管理的其他几个方面。本节讨论磁盘初始化、磁盘引导、坏块恢复等。

磁盘格式化

一个新的磁盘是一个空白盘,它只是一个磁性记录材料的盘子。在磁盘可以存储数据之前,它必须分成扇区,以便磁盘控制器能够读写,这个过程称为低级格式化或物理格式化。
低级格式化为每个扇区使用特殊的数据结构,填充磁盘。每个扇区的数据结构通常由头部、数据区域(通常为512字节大小)和尾部组成。头部和尾部包含了一些磁盘控制器的使用信息,如扇区号和纠错代码(ECC)。
当控制器通过正常I/O写入一个扇区的数据时,ECC采用根据数据区域所有字节而计算的新值来加以更新。在读取一个扇区时,ECC值会重新计算,并与原来存储的值相比较,如果存储和计算的数值不一样,则表示扇区数据区已损坏,并且磁盘扇区可能已坏。
ECC是纠错代码,因为它有足够的信息,以便在只有少数数据损坏时,控制器能够识别哪些位已经改变,并且计算它们的正确值应该是什么。然后它会报告可恢复的软错误。当读或写一个扇区时,控制器自动进行ECC处理。
大多数磁盘在工厂时作为制造过程的一部分就已低级格式化。这种格式化能让制造商测试磁盘,并且初始化逻辑块号到无损磁盘扇区的映射。对于许多磁盘,当磁盘控制器低级格式化磁盘时,还能指定在头部和尾部之间留下多长的数据区。通常有几个选择,如2565121024字节等。采用较大扇区来低级格式化磁盘,意味着每个磁道的扇区数会更少,但也意味着每个磁道的头部和尾部信息会更少,用户数据的可用空间会更多。有的操作系统只能处理512字节的扇区大小。
在可以使用磁盘存储文件之前,操作系统仍然需要将自己的数据结构记录在磁盘上。这分为两步:

  • 第一步是将磁盘分为由柱面组成的多个分区。操作系统可以将每个分区作为一个单独磁盘。例如,一个分区可以存储操作系统的可执行代码,而另一个分区存储用户数据;
  • 第二步是逻辑格式化,或创建文件系统。在这一步,操作系统将初始的文件系统数据结构存储到磁盘上。这些数据结构包括空闲和已分配的空间和一个初始为空的目录。


为了提高效率,大多数操作系统将块组合在一起变成更大的块,经常称为簇。磁盘I/O按完成,而文件系统I/O按完成,有效确保了I/O具有更多的顺序访问和更少的随机访问的特点。
有些操作系统允许特殊程序将磁盘分区作为逻辑块的一个大的有序数组,而没有任何文件系统数据结构。这个数组有时称为原始磁盘,这个数组的I/O称为原始I/O。例如,有些数据库系统喜欢使用原始I/O,因为能够允许它们控制每条数据库记录存储的精确磁盘位置。原始I/O绕过所有文件系统服务,如缓冲区缓存、文件锁定、预取、空间分配、文件名和目录等。虽然某些应用程序可以通过原始分区来实现自己特殊的更为高效的存储服务,但是大多数应用程序在使用常规文件系统服务时会执行的更好。

引导块

为了开始运行计算机,如打开电源或重启时,它必须有一个初始程序来运行。这个初始自举程序往往很简单。它初始化系统的所有部分,从CPU寄存器到设备控制器和内存,接着启动操作系统。为此,自举程序找到磁盘上的操作系统内核,加载到内存,并转到起始地址以便幵始操作系统的执行。
对于大多数计算机,自举程序处在只读存储器(ROM)中。这个位置非常方便,因为ROM不需要初始化而且位于固定位置,这便于处理器在上电或复位时开始执行。并且,由于ROM是只读的,不会受到计算机病毒的影响。它的问题是,改变这种自举代码需要改变ROM硬件芯片。
因此,大多数系统存储一个极小的自举程序在启动ROM中,它的作用是从磁盘上调入完整的引导程序。这个完整的引导程序可以轻松改变:可以简单地将新的版本写到磁盘。完整的引导程序存储在磁盘固定位置上的“启动块”。具有启动分区的磁盘称为启动磁盘或系统磁盘。
引导ROM内的代码指示磁盘控制器将引导块读到内存(这时不加载设备驱动程序),然后开始执行代码。完整的自举程序比引导ROM的自举程序更加复杂。它可以从非固定的磁盘位置处加载整个操作系统,并且开始运行操作系统。即使如此,完整的自举程序可能很小。

下面以Windows为例,分析引导过程。首先,请注意,Windows允许将磁盘分为多个分区:

  • 有一个分区为引导分区,包含操作系统和设备驱动程序。
  • Windows系统将引导代码存在磁盘的第一个扇区,它称为主引导记录(MBR)。引导首先运行驻留在系统ROM内存中的代码。这个代码指示系统从MBR中读取、引导代码。除了包含引导代码,MBR包含:一个表(以列出磁盘分区)和一个标志(以指示从哪个分区引导系统),如上图所示。
  • 当系统找到引导分区,它读取分区的第一个扇区,称为引导扇区,并继续余下的引导过程,这包括加载各种子系统和系统服务

坏块

因为磁盘具有移动部件并且容错差(请记住,磁头恰好飞行在磁盘表面上方),容易出现故障。有时,故障是彻底的,在这种情况下,需要更换磁盘,并且从备份介质上将其内容恢复到新的磁盘。更为常见的是,一个或多个扇区坏掉。大多数磁盘出厂时就有坏块。这些坏块的处理多种多样,取决于使用的磁盘和控制器。
对于简单磁盘,如采用IDE控制器的磁盘,可以手动处理坏块。一种策略是,在格式化磁盘时扫描磁盘以便发现坏块。发现的任何坏块,标记为不可用,以便文件系统不再分配它们。如果在正常操作时块变坏了,则必须人工运行特殊程序(如Linux命令 badlocks),以便搜索坏块并锁定它们。坏块中的数据通常会丢失。
更为复杂的磁盘在恢复坏块时更为智能。它的控制器维护磁盘内的坏块列表。这个列表在出厂低级格式化时初始化,并且在磁盘使用寿命内更新。低级格式化将一些块放在一边作为备用,操作系统看不到这些块。控制器可以采用备用块来逻辑地替代坏块。这种方案称为扇区备用或扇区转寄。
典型的坏扇区事务可能如下:

  1. 操作系统尝试读取逻辑块87
  2. 控制器计算ECC,并且发现扇区是坏的。它向操作系统报告这一发现。
  3. 当下次重启操作系统时,可以运行特殊命令,以告诉控制器通过备用块替代坏块。
  4. 之后,每当系统试图访问逻辑块87时,这一请求转换成控制器的替代扇区的地址。


请注意,控制器的这种重定向可能会使操作系统的磁盘调度算法失效。为此,大多数磁盘在格式化时为每个柱面保留了少量的备用块,还保留了一个备用柱面。当需要重新映射坏块时,控制器尽可能地使用同一柱面的备用扇区。
作为扇区备用的替代方案,有些控制器可以采用扇区滑动来替换坏块。这里有一个例子,假定逻辑块17变坏,并且第一个可用的备用块在扇区202之后。然后,扇区滑动重新映射从17202的所有扇区,将它们全部下移一个扇区。也就是说,扇区202复制到备用扇区,扇区201202,200201,依次类推,直到扇区18复制到扇区19。按这种方式滑动扇区释放扇区18的空间,以使扇区17 能够映射到它。
坏块的更换一般不是全自动的,因为坏块的数据通常会丟失。一些软错误可能触发一个进程,以便复制块数据和备份或滑动块。然而,不可恢复的硬错误导致数据丢失。因此,任何使用坏块的文件必须修复(如从备份磁带中恢复),而且通常需要人工干预。

相关推荐

在Word中分栏设置页码一页两个页码的技巧!

施老师:在正常情况下,Word文档中一页只会出现一个页码。但在某种情况下,比如说:用了分栏后,我们希望一页中出现两个页码,那应该如何实现呢?今天,就由宁双学好网施老师来为大家讲一下,利用域来实现一页两...

如何在关键时刻向上自荐(如何在关键时刻做出正确选择)

抓住机会,挺身而出有种时刻叫“关键时刻”,关键时刻,作为一个认为自己有能力的、训练有素的人,应该考虑挺身而出,甚至应该不考虑就挺身而出。...

WPS Word:跨页的文档表格,快速调整为一页。#Excel

如何快速将跨页的文档表格调整为一页?需要根据两种情况分别处理。如果表格所有行的行高相同,调整为一页的方法有两种。第一种方法是将光标移动到表格内,然后将鼠标移动到表格右下角的方框处,按住鼠标左键向上拖动...

word文档插入下一页分节符(word下一页分页符)

在word文档中,对文档页面进行分页是特别常见的操作,其中的下一页分节符也是用得比较多的,但是一些人不太清楚在哪里设置,也不知道它具体能实现的功能是什么。接下来看看如何在word文档中插入下一页分节符...

word文档如何设置某一页纸张的方向

word文档页面方向有横向和纵向,纵向是默认的纸张方向,有时我们需要将页面设置为横向,或只设置其中某一页方向,应该怎么操作呢?一起来看看下面的详细介绍第一步:...

word怎么单独设置一页为横向(word2019怎样设置单独一页为横向)

word里面其中一页可以改为横向的吗?经过实际操作发现是完全可以的。...

Word如何设置分栏,如何一页内容同时显示一栏和两栏

我们使用Word文档,有时需要用到两栏的排版,甚至一页内容同时包含一栏和两栏的排版,这种格式怎么设置呢?具体步骤如下:首先是两栏排版的设置,直接点击Word文件上方工具栏【布局】,选择【分栏】下面的【...

Word怎么分页?这三个方法可以帮到你

我们不仅可以利用Word编辑文档,还可以编辑文集呢。但是有时候会出现两个部分的文章长短不一,我们需要对文档进行分页处理。这样可以方便我们对文档进行其他操作。那么Word怎么分页呢?大家可以采用下面这...

Word内容稍超一页,如何优化至单页打印?

如何将两页纸的内容,缩到一页打印呢?有时候一页纸多一点内容,我们完全可以缩一下,放到一页来打印。...

[word] word 表格如何跨行显示表头、标题

word表格如何跨行显示表头、标题在Word中的表格如果过长的话,会跨行显示在另一页,如果想要在其它页面上也显示表头,更直观的查看数据。难道要一个个复制表头吗?当然不是,教你简单的方法操作设置Wo...

Word表格跨页如何续上表?(word如何让表格跨页不断掉)

长文档的表格跨页时,你会发现页末空白太多了,这时要怎么调整?选中整张表格,右击【表格属性】,点击【行】选项,之后勾选【允许跨页断行】,点击确定即可解决空白问题。...

Word怎么连续自动生成页码,操作步骤来了!

Word怎么连续自动生成页码,操作步骤来了!...

word文档怎么把两页合并成一页内容?教你4种方法

word怎么把两页合并成一页?word怎么把两页合并成一页?用四种方法演示一下。·方法一:把这一个文档合并成一页,按ctrl加a全选文档,然后右键点击段落,弹出的界面行距改成固定值,磅值可以改小一点,...

如何将Word中的一页的纸张方向设置为横向?这里提供详细步骤

默认情况下,MicrosoftWord将页面定向为纵向视图。虽然这在大多数情况下都很好,但你可能拥有在横向视图中看起来更好的页面或页面组。以下是实现这一目标的两种方法。无论使用哪种方法,请注意,如果...

Word横竖混排你会玩吗?(word横排竖排混合)

我们在用Word排版的时候,一般都是竖版格式,但偶尔会需要到一些特殊的版式要求,比如文档中插入的一个表格,横向的内容比较多,这时就需要用到横版,否则表格显示不全。这种横竖版混排的要求,在Word20...

取消回复欢迎 发表评论: