大容量存储结构

本章讨论文件系统的最底层:次级存储(外存)结构。

首先是大容量存储结构概述,不做过多介绍。
其次是磁盘的各种调度算法。
最后是磁盘管理。

1 大容量存储结构概述

磁盘

固态磁盘(SSD)、磁带。

2 磁盘调度算法

对于磁盘驱动器,我们需要它又较快的访问速度和较宽的磁盘带宽

对于磁盘,访问时间包括寻道时间和旋转延迟。
磁盘带宽是传输字节的总数除以从服务请求开始到最后传递结束时的总时间。

每当进程需要进行磁盘I/O操作时,它就向操作系统发出一个系统调用。
如果磁盘驱动器和控制器空闲,就立即处理请求。如果磁盘驱动器和控制器忙,则服务请求会添加到磁盘驱动器的待处理请求队列中。

当一个请求完成时,操作系统选择哪一个待处理的请求服务?就需要磁盘调度算法。

(1)FCFS调度
FCFS算法根据进程请求访问磁盘的先后顺序进行调度,这是一种最简单的调度算法。

如果只有少量进程需要访问,且大部分请求都是访问簇聚的文件扇区,则有望达到较好的性能;但如果有大量进程竞争使用磁盘,那么这种算法在性能上往往接近于随机调度。

(2)最短寻找时间优先(Shortest Seek Time First, SSTF)算法
SSTF算法选择调度处理的磁道是与当前磁头所在磁道距离最近的磁道,以使每次的寻找时间最短。即SSTF选择最接近磁头位置的待处理请求。

SSTF算法本质上时一种最短作业优先(SJF)调度;与SJF调度一样,可能会导致“饥饿”现象。

(3)SCAN调度
SCAN算法在磁头当前移动方向上选择与当前磁头所在磁道距离最近的请求作为下一次服务的对象。磁臂从磁盘的一端开始,向另一端移动;移动每个柱面时,请求处理;当达到磁盘的另一端时,磁头移动方向反转。

由于磁头移动规律与电梯运行相似,故又称为电梯调度算法。SCAN算法对最近扫描过的区域不公平,因此,它在访问局部性方面不如FCFS算法和 SSTF算法好。

(4)C-SCAN调度
在扫描算法的基础上规定磁头单向移动来提供服务,回返时直接快速移动至起始端而不服务任何请求。由于SCAN算法偏向于处理那些接近最里或最外的磁道的访问请求,所以使用改进型的C-SCAN算法来避免这个问题。

(5)LOOK调度
釆用SCAN算法和C-SCAN算法时磁头总是严格地遵循从盘面的一端到另一端,显然,在实际使用时还可以改进,即磁头移动只需要到达最远端的一个请求即可返回,不需要到达磁盘端点。

这种形式的SCAN算法和C-SCAN算法称为LOOK和C-LOOK调度。这是因为它们在朝一个给定方向移动前会查看是否有请求。

SSTF是常见的。

3 磁盘管理

(1)磁盘格式化
一个新的磁盘只是一个含有磁性记录材料的空白盘。在磁盘能存储数据之前,它必须分成扇区以便磁盘控制器能进行读和写操作,这个过程称为低级格式化(物理分区)。

低级格式化为磁盘的每个扇区釆用特别的数据结构。每个扇区的数据结构通常由头、数据区域(通常为512B大小)和尾部组成。头部和尾部包含了一些磁盘控制器所使用的信息。

为了使用磁盘存储文件,操作系统还需要将自己的数据结构记录在磁盘上:
第一步:将磁盘分为由一个或多个柱面组成的分区(即我们熟悉的C盘、D盘等形式的分区);
第二步:对物理分区进行逻辑格式化(创建文件系统),操作系统将初始的文件系统数据结构存储到磁盘上,这些数据结构包括空闲和已分配的空间以及一个初始为空的目录。

(2)引导块
计算机启动时需要运行一个初始化程序(自举程序),它初始化CPU、寄存器、设备控制器和内存等,接着启动操作系统。为此,该自举程序应找到磁盘上的操作系统内核,装入内存,并转到起始地址,从而开始操作系统的运行。
(关于计算机的启动过程,请看《计算机是如何启动的?》)

自举程序通常保存在ROM中,为了避免改变自举代码需要改变ROM硬件的问题,故只在ROM中保留很小的自举装入程序,将完整功能的自举程序保存在磁盘的启动块上,启动块位于磁盘的固定位。拥有启动分区的磁盘称为启动磁盘或者系统磁盘

(3)坏块
由于磁盘有移动部件且容错能力弱,所以容易导致一个或多个扇区损坏。部分磁盘甚至从出厂时就有坏扇区。根据所使用的磁盘和控制器,对这些块有多种处理方式。

对于简单磁盘,如电子集成驱动器(IDE)。坏扇区可手工处理,如MS-DOS的Format 命令执行逻辑格式化时便会扫描磁盘以检查坏扇区。坏扇区在FAT表上会标明,因此程序不会使用。

对于复杂的磁盘,如小型计算机系统接口(SCSI),其控制器维护一个磁盘坏块链表。该链表在出厂前进行低级格式化时就初始化了,并在磁盘的整个使用过程中不断更新。低级格式化将一些块保留作为备用,对操作系统透明。控制器可以用备用块来逻辑地替代坏块,这种方案称为扇区备用

参考:http://c.biancheng.net/cpp/html/2628.html

13.大容量存储结构(磁盘管理)相关推荐

  1. 1.2.7存储结构-磁盘管理:磁盘移臂调度算法、先来先服务(FCFS)、最短寻道时间优先(SSTF)、扫描算法(SCAN)、循环扫描(CSCAN)

    1.2.7存储结构-磁盘管理:磁盘移臂调度算法.先来先服务(FCFS).最短寻道时间优先(SSTF).扫描算法(SCAN).循环扫描(CSCAN) 先来先服务(FCFS) 最短寻道时间优先(SSTF) ...

  2. 17 操作系统第四章 磁盘管理 磁盘的结构 磁盘调度算法 减少磁盘延迟时间的方法

    文章目录 1 磁盘的结构 1.1 磁盘.磁道.扇区 1.2 磁盘如何读取数据 1.4 盘面.柱面.磁盘的物理地址 1.5 磁盘的分类 1.6 磁盘的结构小结 2 磁盘调度算法 2.1 一次磁盘读/写操 ...

  3. linux 磁盘管理三部曲——(1)磁盘结构,认识分区

    最近小编整理了磁盘管理的相关知识,发现还是挺多的,所有就分了三个部分来给大家分享一下: 1.磁盘结构,认识分区 2.管理分区,文件系统格式化 3.mount挂载,/etc/fstab配置文件 这篇就先 ...

  4. Android5.0 外部磁盘管理(代码摘自google)

    一. 整体架构分析 1.1 应用程序接口API 1.1.1 文件位置 frameworks/base/core/java/android/os/storage/StorageManager.java ...

  5. Linux磁盘管理——df、du、磁盘分区、格式化、挂载、LVM

    2019独角兽企业重金招聘Python工程师标准>>> Linux磁盘管理 一. df命令 df命令参数功能:检查文件系统的磁盘空间占用情况.可以利用该命令来获取硬盘被占用了多少空间 ...

  6. IT运维面试问题总结-基础服务、磁盘管理、虚拟平台和系统管理

    简述 LVM 的含义及特点. LVM 的含义及优势?/boot 是否可建立在 LVM 卷上,为什么? 参考答案 1)LVM:用来整合磁盘空间和文件系统的一种逻辑机制,通过将多个物理分区/磁盘从逻辑上组 ...

  7. 第二十天: Linux文件管理+Linux备份压缩+网络与磁盘管理+shell与安装

    Linux第二天 1 Linux文件管理 1.1 touch命令 在Windows系统中,我们如果想创建一个文本文档或者word文件的时候,通常的做法是 鼠标右键---新建---文本文档,这样的话,我 ...

  8. Linux磁盘管理和文件系统

    文章目录 1.前言 2.磁盘结构 2.1设备文件 2.2设备的命名规则 (1)物理设备 (2)虚拟磁盘设备 (3)创建设备文件 2.3硬盘类型 (1)硬盘接口类型 (2)服务器硬盘大小 (3)机械硬盘 ...

  9. 基于LVM的磁盘管理

    一.几个概念 LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理 ...

  10. RAID磁盘阵列和LVM磁盘管理

    RAID是英文Redundant Array of Independent Disks的缩写,中文简称为独立冗余磁盘阵列.简单的说,RAID是一种把多块独立的硬盘(物理硬盘)按不同的方式组合起来形成一 ...

最新文章

  1. APUE学习笔记-11.5线程终止
  2. python yield用法
  3. 静态布局、自适应布局、流式布局、响应式布局、弹性布局简析、BFC
  4. Apache配置代理服务器的方法(2)
  5. 数据结构-单链表(C语言代码)
  6. SLAM:SLAM之VSLAM的简介
  7. 解决逆向工程mapper映射文件不发布问题
  8. modbus调试时间超时_Java调试器和超时
  9. 简易分享功能(非第三方)
  10. 手机按公式计算机,请问用手机上的自带计算器怎样进行度分秒的计算?
  11. 【python学习】python的面向对象编程
  12. laravel中faker的方法总结
  13. 制定小目标的软件APP哪款好
  14. linux怎么编译ipa,如何使用XCode 4创建ipa文件及提交应用程序
  15. 苹果采集插件全套教程-苹果cmsV10采集插件
  16. 运行JavaWeb项目报错Access denied for user ‘root‘@‘localhost‘ (using password: YES)
  17. 传递给窗口过程函数的lParam参数指针
  18. 打造高速浏览器,逐鹿搜索市场,搜狗高速浏览器2.0值得期待
  19. 读书笔记005:南怀瑾:如何做到精神内敛?
  20. springboot+solr实现搜索引擎

热门文章

  1. Dragonfly 基于 P2P 的文件和镜像分发系统
  2. c语言关于性别的程序,输入性别并记录男女个数还要算出男女平均年龄的c语言程序怎样写...
  3. C++实现通讯录管理系统
  4. 基于Java开发证券交易撮合系统的尝试
  5. 你想知道的优惠券业务,SkrShop告诉你
  6. Cuba Platform Introduce (Cuba平台介绍)
  7. 向《天真的女孩投降》观后感
  8. 广告公司的招聘启事中,对职位的独到理解
  9. 怎么直接运行js文件
  10. 国内智能工厂建设现状以及未来发展趋势介绍