提示:枕上诗书闲处好,门前风景雨来佳。
5.3.1 磁盘的结构
知识总览
磁盘 磁道 扇区
如何从磁盘中读/写数据
盘面 柱面
所以比如这里下图中,黄色的地方组成了一个柱面,
磁盘的物理地址
磁盘的分类
知识回顾
磁盘调度算法
知识总览
磁盘的读写操作需要的时间
寻道:也就是寻找对应的磁道,
延迟时间:定位到磁道上特定的扇区,所以说磁盘的转速越快延迟时间越短,
每一个磁道可存N字节的数据,因此b字节的数据需要b/N个磁道才能存储,而读/写一个磁道所需要的时间刚好又是转一圈所需要的时间1/r,所以传输时间等于(1/r)* (b/N)
影响不了延迟时间和传输时间所以我们能进行优化的只有寻道时间,
先来先服务算法FCFS
最短寻找时间优先SSTF
扫描算法SCAN
注意扫描算法是有一个边界的(不管边界有没有数据都要道边界),下面两个算法就是对上面扫描算法的优化,
改进1(LOOK 调度算法)
改进2(循环扫描算法CSCAN)
注意这里只是单纯的对scan的第二个缺点确定进行优化,还有有边界的,无论边界有没有都是需要移动的边界的,所以下面第三种优化方式就是对两种方式同时优化
改进三(C-LOOK调度算法)
其实就是对上面两种改进方式的结合
知识回顾
就是若是某个方向上没有磁道请求了,就直接返回即可不需要到边界,
对比以上几种磁盘调度算法,FCFS 算法太过简单,性能较差,仅在请求队列长度接近于1时才较为理想:SSTF算法较为通用和自然:SCAN算法和C-SCAN算法在磁盘负载较大时比较占优势。
5.3.3 减少磁盘延迟时间的方法
前情回顾
缩短延迟时间的方法:交替编号
磁盘地址结构的设计
(00,000,000)~(00,000,111)也就是0号盘面,0号柱面的八个扇区,由于是采用交替编址,也就是需要两圈,第一圈0,1,2,3四个扇区 第二圈,4,5,6,7四个扇区,然后读取(00,001,000) ~ (00,001,111)盘面号为0柱面号为1,所以也就需要移动磁头到外面一个磁道,启动磁头臂,移动磁头所需要的时间较长,
若是柱面号再去,磁盘号在后,前面读取(000,00,000)~ (000,01,111)是和之前是相同的,当盘面转完两圈之后,就可以读完了,
然后读取(000,01,000)~(000,01,111)也就是对应的一号盘面的最内磁道,此时也就不需要移动磁臂,直接激活对应的磁面即可,
答:读取地址连续的磁盘块时,采用(柱面号,盘面号,扇区号)的地址结构可以减少磁头移动消耗的时间
缩短延迟时间的方法:错位命名
若是相邻的盘面相对位置相同处扇区编号相同也就是可能会增加延迟时间,
知识回顾
5.3.4 磁盘的管理
磁盘初始化
C盘是属于同一同一个柱面不同盘面的,可能是含有多个柱面,这样分的原因自然是为了减少寻道时间,只需要激活对应的磁盘即可
在可以使用磁盘存储文件之前,操作系统还要将自己的数据结构记录到磁盘上,分为两步:第一步是,将磁盘分为由一个或多个柱面组成的分区(即我们熟悉的C盘、D盘等形式的分区),每个分区的起始扇区和大小都记录在磁盘主引导记录的分区表中;第二步是,对物理分区进行逻辑格式化(创建文件系统),操作系统将初始的文件系统数据结构存储到磁盘上,这些数据结构包括空闲空间和已分配的空间以及一个初始为空的目录。
因扇区的单位太小,为了提高效率,操作系统将多个相邻的扇区组合在一起,形成一簇(在Linux中称为块)。为了更高效地管理磁盘,一簇只能存放一个文件的内容,文件所占用的空间只能是簇的整数倍;如果文件大小小于一簇(甚至是0字节),也要占用一簇的空间。
引导快
当我们完成物理格式化逻辑格式化之后,就可以将操作系统安装到磁盘中了,计算机开机要运行一个自举程序进行初始化CPU,初始化内存,以及寄存器等硬件部件等,
计算机开机时需要进行一系列初始化的工作,这些初始化工作是通过执行初始化程序(自举程序)完成的,存放于ROM只读存储器中,ROM中的数据在出厂时就写入了,并且以后不能进行修改,
所以自举装入程序很小,所以是可以保证不会改变的,若是自举程序需要改变,则可以通过修改引导快中的数据便可,这种方案的特点就是自举程序的修改会很方便,
坏块的管理
坏了、无法正常使,的扇区就是“坏块”。这属于硬件故障,操作系统是无法修复的。应该将坏块标记出来,以免错误地使用到它
知识回顾
启动系统时,首先运行 ROM 中的引导代码 (bootstrap)。为执行某个分区的操作系统的初始化程序,需要先执行磁盘引导程序以指示引导到哪个分区,然后执行该分区的引导程序,用于引导该分区的操作系统。
物理格式化(又称低级格式化,通常出厂时就已完成)的作用是为每个磁道划分扇区,安排扇区在磁道中的排列顺序,并对已损坏的磁道和扇区做“坏”标记等。随后将磁盘的整体存储空间划分为相互独立的多个分区 (如 Windows 中划分 C 盘、D 盘等),这些分区可以用作多种用途,如安装不同的操作系统和应用程序、存储文件等。然后进行逻辑格式化(又称高级格式化),其作用是对扇区进行逻辑编号、建立逻辑盘的引导记录、文件分配表、文件目录表和数据区等。最后才是操作系统的安装。
5.3.5 固态硬盘SSD
固态硬盘就是通过这些黑色的小芯片来存储数据的,而机械硬盘则是通过磁性物质来存储数据的,固态硬盘是基于闪存技术,大家熟悉的U盘也是基于闪存技术,本质上闪存属于一个电可擦除的ROM,也就是EEPROM,
固态硬盘的结构
固态硬盘(SSD)是一种基于闪存技术的存储器。它与U盘并无本质差别,只是容量更大,存取性能更好。一个 SSD由一个或多个闪存芯片和闪存翻译层组成,闪存芯片替代传统旋转磁盘中的机械驱动器,而闪存翻译层将来自CPU的逻辑块读写请求翻译成对底层物理设备的读写控制信号,因此闪存翻译层相当于扮演了磁盘控制器的角色。
系统通过系统总线向这个SSD指明一个逻辑块号,这个逻辑地址经过这个闪存翻译层翻译之后,会映射到一个具体的物理地址,所以闪存翻译层就是一个地址变换的工作,一个固态硬盘中可能包括多个闪存芯片,每个闪存芯片包含多个块,而每个块包含多个页,系统对固态硬盘的读写是以页为单位的,若是使用磁盘作为存储介质则是以块或者扇区为单位的,所以磁盘的一个块或者扇区对应的是固态硬盘的一个页,所以这里固态硬盘中的块相当于一个磁道,
若是其中某一块的某一页已经有数据了,则需要将这一整块擦除已才能往里面某一页写数据,这也就会导致其他的页也会消失,所以需要将这个要擦除的页的信息的数据换到其他块中,也就需要修改逻辑块号和对应的物理页号之间的映射关系,所以固态硬盘的读比写要快得多,固态硬盘是通过电路直接定位到物理地址,而机械硬盘是通过移动磁臂,所以固态硬盘更快读,
静态磨损均衡是指在没有写入数据时,SSD监测并自动进行数据分配,从而使得各块的擦写更加均衡,并不是说写入时每次都选择存放老数据的块。文章来源:https://www.toymoban.com/news/detail-464925.html
固态硬盘的寿命
文章来源地址https://www.toymoban.com/news/detail-464925.html
到了这里,关于操作系统第五章——输入输出管理(下)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!