操作系统概念(十)——大容量存储器结构

一、简介

(一)、磁盘

1、一种大容量的外存
2、通过在磁片上进行磁记录可以保存信息。每一盘分两个磁面,每个磁面分为多个圆形磁道,每个磁道分为多个扇区,同一个磁臂位置所涵盖的磁道集合构成了柱面
3、磁盘所表现的传输速率低于有效的传输速率,是磁头从磁性介质读取比特速率,但不同于os传输块的传输速率

(二)、磁带

1、通过读写磁头进行磁性读写
2、火线:一个借口,将外部设备连接到计算机系统

二、磁盘结构

1、可以看做一个一维的逻辑块的数组,逻辑块是最小的传输单位
2、一位逻辑块数组an顺序映射到磁盘的扇区,扇区0是最外面柱面的第一个磁道的第一个扇区。先按磁道内扇区顺序,再按照柱面内磁道顺序,再按照从外向内的柱面顺序
3、外部磁道的扇区数可以多40%,因此内道到外道的为密度要不断降低以保证数据率不变

三、磁盘附属

1、计算机访问磁盘有两种方式:
①I/O端口(主机附属存储):包含信号传递方式与DMA方式
②分布式文件系统的远程主机(网络附属存储)
2、主机附属存储:封装在主机内,通过本地的I/O端口进行访问
3、网络附属存储NAS:通过远程进程调用接口来访问NAS,提供了一个共享存储池的方便方法,命名和访问与主机附属一致,但效率更低,性能更差
4、存储区域网络SAN:NAS的缺点之一是存储I/O操作必须使用数据网络的带宽,因此增加了网络通信延迟;SAN是服务器与存储单元之间的私有网络

四、磁盘调度

1、磁盘调度的评价要求为磁头的移动距离
2、OS的任务之一是有效地使用硬件,对磁盘驱动器来说,就是较快的访问速度与较宽的磁盘带宽
3、磁盘带宽:总传递字节数除以以服务请求开始到传递时间结束的时间
4、访问时间:包括寻道时间与旋转延迟,我们需要最小化寻到时间
5、磁盘调度算法是OS的一个独立模块

(一)、FCFS调度

1、即先进先出调度,可以解决饥饿问题,但是不是最优化算法

(二)、SSTF调度

1、从当前磁头位置选择距离最近的(即具有最短寻道时间的)请求
2、本质上是一种最短作业优先(STF)调度,是一种局部最优算法
3、不是最优算法,但是一般是FCFS调度的1/3
4、可能导致某些请求的饥饿,因为需要考虑到请求并不一定是同时到达的
5、是一种普通且性能较好的调度算法,比较合适

(三)、SCAN调度

1、也叫电梯调度,磁臂在磁盘上来回移动,磁头来回扫描,如果当前位置恰好有请求,则执行该请求
2、需要知道磁头当前位置以及移动方向
3、可以改善饥饿,但是仍然可能发生饥饿(书上这里说是不可能导致饥饿,但经过思考之后,发现还是有可能的。考虑到请求不一定是同时到达的,如果磁盘读写慢于请求到达的速度,就有可能一直停留在一个磁头位置。举个例子:食堂打饭的时候,一个阿姨负责三个窗口,并且来回扫描进行打饭,如果一个窗口的人非常多,且一直往前挤,那么,阿姨就不得不一直给这个窗口的人打饭)

(四)、C-SCAN调度

1、是SCAN的一种变种,磁头从磁盘的一段移动到另一端,处理请求,但返回的时候不处理请求,相当于把柱面看做一个环形链表
2、我个人的见解是:之前磁头是在磁盘的一个半径上做往复运动,而现在,是做一个跳转的单向运动

(五)、LOOK调度

1、与SCAN类似,但是不会运行到磁头的另一端,即不会走过磁盘的整个宽度,而是只移动到一个方向上最远的请求为止

(六)、C-LOOK调度

1、与C-SCAN类似,但是不会运行到磁头的另一端,即不会走过磁盘的整个宽度,而是只移动到一个方向上最远的请求为止

五、磁盘管理

(一)、磁盘格式化

1、低级格式化:也叫物理格式化,将磁盘分成磁盘控制器能读和能写的扇区,为每一个扇区采用特别的数据结构。
2、数据结构图通常由头、数据区域和尾部组成,头与尾包含了一些磁盘控制器所使用的的信息,如扇区号和错误代码
3、为了能存储文件,OS必须在磁盘上记录一定的数据结构,有两步,首先是进行分区,然后进行逻辑格式化(高级格式化,用来创建文件系统)
4、OS可以将每个分区当做一个独立的磁盘
5、在逻辑格式化的时候,OS将初始的文件系统数据结构存储到磁盘上,包括空闲与已分配的空间和一个初始为空的目录

(二)、引导块

1、在重启时会运行一个初始化程序,即自举程序,会初始化系统的各个方面,从CPU寄存器到设备控制器与内存,接着启动OS,为此,自举程序需要能够找到内核,并装入内存,并转到OS的起始位置
2、个人认为:在加电后,首先执行加电自检程序(POST程序),这个程序是在BIOS上的(BIOS是在ROM芯片上),如果有错误将会终止开机;否则执行自举程序(bootstrap)这个程序是在0扇区那400个字节上的。如果没有二级引导程序(很久以前的老系统,OS不大)会直接将OS内核装入内存,并跳转到OS的第一条指令
3、个人认为,BIOS包括了上面的上电自检程序、自举程序(初始化)、引导程序,由硬件基本输入输出程序存储在ROM芯片上,程序中有中断例程、系统设置、POST程序、自检程序,这个自举程序并不是上面的自举程序
4、绝大多是PC,自举程序保存在ROM中,因为ROM不用初始化且位于固定位置,而且是制度的,不会受到计算机病毒的影响。但只是一小部分,完整的自举程序在磁盘的启动快上,位于固定位置,称为启动磁盘或系统磁盘。小的自举程序的作用时进一步从磁盘上调入更为完整的自举程序。这一段我更倾向于将自举程序看成引导程序。
5、如windows2000,其启动代码在第一个扇区(主引导记录MBR)

(三)、坏块

1、坏掉的一个或多个扇区
2、对于简单磁盘可以人工处理,如通过format查找,或chkdsk查找(仅用于使用中损坏),会发生数据丢失
3、更复杂的磁盘,控制器(磁盘)维护着一个磁盘坏块链表,低级格式化将一些块放在一边备用,OS看不到,当有坏块的时候,控制器可用备用块进行替代

六、交换空间管理

1、交换空间:虚拟内存使用磁盘空间作为主存的扩展,就是发生块交换(页面置换)的区域
2、在普通文件系统上加以创建,或者在一个独立的磁盘分区。通常是文件系统内的一个简单大件(外部碎片可能导致多次寻道而增加空间),也可以是创建在独立的磁盘分区上(内部碎片可能增加)

七、RAID结构

RAID有两个方向,即可靠性和性能,分别通过冗余和分散实现

(一)、磁盘冗余阵列技术

1、由多个小的磁盘产生冗余实现可靠性
2、假设一个磁盘出错率(多长时间可能出一次错)为a,那么n个磁盘的概率为a/n,可能出错的时间变短了,所以需要引入冗余,存储额外信息,在出错的时候可以进行替换修补
3、最简单的方法是镜像,即复制每一个磁盘

(二)、分散

1、即通过并行处理的方式改变性能。如数据分散,通过在多个磁盘上分散数据,可以改善传输率,有两种方式:
①位级分散:多个磁盘上分散每个字节的各个位,8个磁盘可以合并为单个磁盘使用,每秒能够处理的访问和单个磁盘一致,但可接触的数据更多了,能访问的数据为8倍,相当于磁盘合并
②块级分散:一个文件的块可以分散在多个磁盘上
2、磁盘并行的目的:
①通过负荷平衡,增加多个小访问(页访问)的吞吐量
②降低大访问的响应时间,相当于不再需要更换磁盘了

(三)、RAID级别

镜像可靠性高,但是昂贵;分散可以提高传输率,但没有改变可靠性,因此,可以通过分散与奇偶校验的方式,提供不同方案的冗余,由于方案的不同性价比,可以产生不同的级别:
1、RAID 0:无冗余,按块级进行分散
2、RAID 1:磁盘镜像,按块级进行分散
3、RAID 2:内存方式的差错纠正代码结构,内存系统本身一个字节会有一个奇偶位,可以检测单个位的错误。差错纠正方案要求存在两个或多个额外的校验位,可以存在于不同的磁盘,并可以通过校验位磁盘重新构造被损坏的数据。四个数据盘对应三个校验盘
4、RAID 3:位交织奇偶结构,位级分散,此时只需要一个校验盘,就可以针对四个数据盘进行校正
5、RAID 4:块交织奇偶结构,块级分散,此时校验位并不是额外位,而是其他磁盘相应块的奇偶块,此时只需要一个校验盘,就可以针对四个数据盘进行校正
6、RAID 5:快交织分布奇偶结构,块级分散,将数据与奇偶校验分布在所有的n+1个磁盘,奇偶校验位与数据位相互交织,是最常用的结构
7、RAID 6:P+Q冗余方案,用差错纠正码,如每4个位用2个位的冗余数据,而不是奇偶位
8、RAID 0+1:每一组磁盘先进行分散,再进行镜像,如果一个磁盘发生错误所有的都无法进行使用
9、RAID 1+0:每一组磁盘先进行镜像,再进行分散,如果一个磁盘发生错误其他的仍可以使用

(四)、第三级存储结构

1、可移动磁盘:软盘、次光盘、光盘
2、磁带:大容量、对随机访问处理很慢
3、未来技术:全息照相存储器,MEMS(微电子机械系统)

八、OS作业

OS的两个主要任务是管理物理设备和为应用程序提供一个虚拟机器的抽象,有两种磁盘抽象方案:
①生设备:只是数据块的阵列
②文件系统
1、应用接口:绝大多数磁盘和磁带都会有用于驱动器使用的应用接口,绝大多是磁带驱动器有一个rea position以返回磁头所在的逻辑块号,写的时候会删除写之后位置的所有内容
2、文件命名:一般不对可移动介质的命名空间问题解决,而是让应用程序与用户来决定如何访问与解释数据,幸运的是,目前已经进行了标准化
3、层次存储管理:采用自动光盘塔,切换磁带或光盘驱动器内有可移动盘,而无需人工干预。层次存储系统扩展了存储层次,加入了可移动存储,用来扩展文件系统
4、性能:包含速度、可靠性、价格
①速度:包括带宽(驱动器的持续带宽、有效带宽)和延迟
②可靠性:可移动磁盘弱于固定磁盘
③价格:主存大于磁盘

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值