快要将计算机操作系统看完了,刚才翻起Unix环境高级编程,才知道自己仅仅走了一小步
- 磁盘的结构
磁道,磁道又被划分为扇区,每个扇区固定存储大小512B,一个扇区被称为一个盘块,扇区密度从外面向里面增加,磁盘的存储能力受限于最内道的最大记录密度。
每个盘面对应一个磁头,所有磁头固定在一起,与磁盘中心的距离相同并且一起移动,所有盘片上相对位置相同的磁道组成柱面。扇区是磁盘可以寻址的最小存储单位。 - 磁盘调度算法
一次磁盘读写操作的时间由寻找(寻道时间)时间,延迟时间和传输时间决定。
- 寻找时间
读写信息前,将磁头移动到指定磁道所需要的时间。 - 延迟时间
磁头定位到某一磁道的扇区(块号)所需要的时间。 - 传输时间
磁盘读出或者向磁盘写入数据所经历的时间,取决于每次读出的字节数还有磁盘的旋转速度。
寻找时间和磁盘调度算法有关,延迟时间和传输时间与磁盘旋转速度相关。
- 先来先服务FCFS算法
根据进程请求访问磁盘的先后顺序来进行调度 - 最短寻找时间优先算法SSTF
选择调度处理的磁道是与当前磁头所在磁道距离最近的磁道,使每次的寻找时间最短。容易产生饥饿现象。 - 扫描算法,电梯算法
在磁头当前移动方向上选择与当前磁头所在磁道距离最近的请求作为下一次服务的对象。 - 循环扫描算法C-SCAN
扫描算法的基础上规定磁头单向移动来提供服务,回返的时候直接快速移动至起始端而不服务任何请求。
并且磁头移动至需要到达最远端的一个请求即可返回,不需要到达磁盘端点。
减少延迟时间也可以提高磁盘传输效率的重要因素,可以对扇区进行交替编号,对磁盘片组中的不同盘面错位命名,这样就可以将每个盘面的扇区的访问时间降低。
假设逻辑记录数据连续存放在磁盘空间中,若在盘面上按扇区交替编号连续存放,则连续读写多个记录的时候可以减少磁头的延迟时间。同柱面不同盘面的扇区若能错位编号,连续读写相邻两个盘面的逻辑记录时候也能减少磁头延迟时间。
- 磁盘的管理
- 磁盘初始化
分成扇区以便磁盘控制器来读写,低级格式化。低级格式化为磁盘的每个扇区采用特别的数据结构,每个扇区的数据结构通常由头,数据区域,尾部组成。
下来将磁盘分为一个或者多个柱面组成的分区C盘等,然后对物理分区进行逻辑格式化,创建文件系统。 - 引导块
初始化程序,自举程序来初始化CPU,寄存器和设备控制器,内存,启动操作系统,自举程序找到磁盘上的操作系统内核装入内存,并转到起始地址,开始操作系统的运行。
一小部分的自举程序保留在ROM,完整功能的自举程序保存在磁盘的启动块上,启动块位于磁盘的固定位。拥有启动分区的磁盘称为启动磁盘或系统磁盘。
Tips:
- 磁带是顺序存储设备,存储文件的时候使用顺序存储结构。
- 随机访问,直接访问,可以按照任意次序对数据进行读写操作,光盘,磁盘,U盘。
- 磁盘调度是访问磁道顺序的调度。
- 寻找磁道的过程是机械运动,比较耗费时间。
- 文件的物理结构和磁盘空间的分配方式对应,包括连续分配,链接分配和索引分配。连续分配的磁盘中文件的物理地址连续,而链接分配方式的磁盘中文件的物理地址不连续,与旋转延迟有关。
- 扇区的数据处理时间主要影响传输时间。