第六章 存储器层次结构 第一节 存储技术之磁盘存储

2023-11-02

磁盘能比RAM存储更大的信息,但是读取速度上比DRAM慢了10万倍,比SRAM慢了100万倍。

1. 磁盘构造

在这里插入图片描述

  • 磁盘是由盘片(platter)构成

  • 盘片中央有一个可以旋转的主轴,它使得盘片以固定的旋转速率旋转

  • 每个盘片有两面或者称为表面,表面覆盖着磁性记录材料。

  • 一个磁盘表面由一组磁道组成

  • 一个磁道由一组扇区组成

  • 每个扇区包含相等的数据位(通常512字节)

  • 扇区之间由一些间隙(gap)分隔开,这些间隙中不存储数据位。间隙存储用来标识扇区的格式化位

  • 磁盘是由一个或多个叠放在一起的盘片组成的,整个装置通常被称为磁盘驱动器(disk drive), 简称为磁盘

  • 柱面指多个盘片驱动器的构造, 这里, 柱面是所有盘片表面上到主轴中心的距离相等的磁道的集合。例如, 如果一个驱动器有三个盘片和六个面, 每个表面上的磁道的编号都是一致的, 那么柱面k就是6个磁道k的集合

2.磁盘容量

三个因素:

  • 记录密度(recordi ng dens ity)(位/英寸):磁道一英寸的段中可以放入的位数。
  • 磁道密度(track dens ity)(道/英寸):从盘片中心出发半径上一英寸的段内可以有的磁道数。
  • 面密度(areal dens ity)(位/平方英寸):记录密度与磁道密度的乘积。

最初:将每个磁道分为数目相同的扇区,扇区的数目是由最靠内的磁道能记录的扇区数决定的。为了保持每个磁道有固定的扇区数,越往外的磁道扇区隔得越开。随着面密度的提高,扇区之间的间隙(那里没有存储数据位)变得不可接受地大。
后来:柱面的集合被分割成不相交的子集合,称为记录区(recording zone) 。每个区包含一组连续的柱面。一个区中的每个柱面中的每条磁道都有相同数最的扇区,这个扇区的数量是由该区中最里面的磁道所能包含的扇区数确定的。

磁 盘 容 量 公 式 : 每 个 扇 区 的 字 节 数 ∗ 每 个 磁 道 的 平 均 扇 区 数 ∗ 每 个 盘 面 的 磁 道 数 ∗ 2 个 盘 面 ∗ 盘 片 数 量 磁盘容量公式:每个扇区的字节数 * 每个磁道的平均扇区数 * 每个盘面的磁道数 * 2个盘面 * 盘片数量 2

3.磁盘操作

1.操作流程

在这里插入图片描述
磁盘用读/写头(read/write head)来读写存储在磁性表面的位, 而读写头连接到一个传动臂(actuator arm)一端, 如图所示。通过沿着半径轴前后移动这个传动臂, 驱动器可以将读/写头定位在盘面上的任何磁道上。这样的机械运动称为寻道(seek )。一旦读/写头定位到了期望的磁道上, 那么当磁道上的每个位通过它的下面时, 读/写头可以感知到这个位的值(读该位), 也可以修改这个位的值(写该位)。有多个盘片的磁盘针对每个盘面都有一个独立的读/写头, 如图所示。读/写头垂直排列, 一致行动。在任何时刻, 所有的读/写头都位于同一个柱面上。

磁盘总是密封的,如果进入灰尘会造成读写头冲撞,导致磁盘无法使用。

2.访问时间

磁盘以扇区大小的块来读写数据。对扇区的访问时间有三个主要的部分:寻道时间、旋转时间和传送时间。

1.寻道时间

是指读写头移动到目标磁道上的时间。

2.旋转时间

是指读写头移动到期望磁道之后,驱动器等待目标扇区的第一个位旋转到读写头下。

3.传送时间

当目标扇区的第一个位位于读/写头下时,驱动器就可以开始读或者写该扇区的内容了。

计算示例
在这里插入图片描述
(RPM是指转每秒)

可以看出,访问扇区的第一个字节废掉了大部分的时间,而读取剩下的扇区,并没有耗费很长时间。

4.逻辑磁盘块

为了对操作系统隐藏这样的复杂性,现代磁盘将它们的构造呈现为一个简单的视图,一个B个扇区大小的逻辑块的序列,编号为0, 1, …, B-1。磁盘封装中有一个小的硬件/固件设备,称为磁盘控制器,维护着逻辑块号和实际(物理)磁盘扇区之间的映射关系。当操作系统想要执行一个I/O操作时,例如读一个磁盘扇区的数据到主存,操作系统会发送一个命令到磁盘控制器,让它读某个逻辑块号。控制器上的固件执行一个快速表查找,将一个逻辑块号翻译成一个(盘面,磁道,扇区)的三元组,这个三元组唯一地标识了对应的物理扇区。控制器上的硬件会解释这个三元组,将读/写头移动到适当的柱面,等待扇区移动到读/写头下,将读/写头感知到的位放到控制器上的一个小缓冲区中,然后将它们复制到主存中。

为什么磁盘的最大使用量比磁盘容量要小
磁盘控制器必须对磁盘进行格式化,然后才能在该磁盘上存储数据。格式化包括用标识扇区的信息填写扇区之间的间隙,标识出表面有故障的柱面并且不使用它们,以及在每个区中预留出一组柱面作为各用,如果区中一个或多个柱面在磁盘使用过程中坏掉
了,就可以使用这些备用的柱面。因为存在着这些备用的柱面,所以磁盘制造商所说的格式化容量比最大容量要小。

5. 连接I/O设备

一个典型的I/O总线结构如下如所示,它连接了CPU、主存和I/O设备。
在这里插入图片描述I/O总线比系统总线和内存总线慢,可以繁多的第三方IO设备,有以下几种类型:

  1. 通用串行总线(Universal Serial Bus, USB)控制器是一个连接到USB总线的设备的中转机构。
  2. 图形卡(或适配器)包含硬件和软件逻辑,它们负责代表CPU在显示器上画像素。
  3. 主机总线适配器将一个或多个磁盘连接到I/O总线,使用的是一个特别的主机总线接口定义的通信协议。
    SCSI和SATA是两个比较常用的磁盘接口
    SCSI 磁盘通常比SATA 驱动器更快但是也更贵。
    SCSI 主机总线适配器(通常称为SCSI 控制器)可以支持多个磁盘驱动器。SATA 适配器只能支持一个驱动器。
  4. 其他的设备,例如网络适配器,可以通过将适配器插入到主板上空的扩展槽中

注意:这里I/O总线只是一种简单抽象。

6.访问磁盘

CPU使用一种称为内存映射I/O的技术来向I/O设备发射命令。
在使用内存映射I/O的系统中, 地址空间中有一块地址是为与I/O设备通信保留的。每个这样的地址称为一个I/O端口。当一个设备连接到总线时,它与一个或多个端口相关联(或它被映射到一个或多个端口)。

下面将这个流程简单描述一下:

1.CPU发起磁盘读

假设磁盘控制器映射到端口0xa0。随后,CPU可能通过执行三个对地址0xa0的存储指令, 发起磁盘读

  • 第一条指令是发送一个命令字, 告诉磁盘发起一个读, 同时还发送了其他的参数, 例如当读完成时, 是否中断CPU
  • 第二条指令指明应该读的逻辑块号
  • 第三条指令指明应该存储磁盘扇区内容的主存地址。
    在这里插入图片描述

2.DMA传输

CPU发起指令之后,就去做别的事情去了。在磁盘控制器收到来自CPU的读命令之后, 它将逻辑块号翻译成一个扇区地址, 读
该扇区的内容, 然后将这些内容直接传送到主存, 不需要CPU的干涉。

设备可以自己执行读或者写总线事务而不需要CPU干涉的过程, 称为直接内存访问(DirectMemory Access, DMA)。这种数据传送称为DMA 传送CDMA transfer)。

在这里插入图片描述

3. 中断通知

在这里插入图片描述

在DMA 传送完成,磁盘扇区的内容被安全地存储在主存中以后,磁盘控制器通过给CPU 发送一个中断信号来通知CPU。基本思想是中断会发信号到CPU 芯片的一个外部引脚上。这会导致CPU 暂停它当前正在做的工作,跳转到一个操作系统例程。这个程序会记录下I/O已经完成,然后将控制返回到CPU 被中断的地方。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

第六章 存储器层次结构 第一节 存储技术之磁盘存储 的相关文章

  • 终端连接控制(stty的编写)

    终端连接控制 stty的编写 一 背景 文件与目录在之前已经学习过了 文件中包含着数据 这些数据可以被读出 写入 也可以用以操作 但文件不仅仅是计算机唯一的数据来源 计算机的数据还可以来自于许多的外部设备 比如扫描仪 照相机 鼠标等输入设备
  • texlive支持中文的简单方法

    1 确保tex文件的编码方式是UTF 8 2 在文档开始处添加一行命令即可 即 usepackage UTF8 ctex 如下所示 documentclass article usepackage UTF8 ctex begin artic
  • 计算机网路基础 - 一些基本概念与网络结构

    1 基本概念 计算机网络 通信技术 计算机技术 是两项技术紧密结合的产物 通信系统的基础模型 计算机网络 是指将地理位置不同 具有独立功能的多台计算机及其外部设备 通过通信线路连接 在网络操作系统 网络管理软件及网络通信协议的管理和协调下
  • Client-Server问题

    1 实验内容与要求 需要创建客户Client和服务器Server两个进程 它们通过管道进行通信 Client进程派生3个生产者线程 一个管道线程 共享一个20个slots的缓冲区 每个生产者线程随机产生一个数据 打印出来自己的id 进程 线
  • Linux使用nvida-smi查看GPU类型

    nvida smi提供一个查看GPU信息的方法 然而这种方式不能查看GPU型号 型号被省略成了GeForce RTX 208 如果我们需要查看GPU的型号 只需要运行nvidia smi L即可 mrfive ubuntu nvidia s
  • CF、SF、OF、ZF标志位

    没学汇编 这种题我真是做一道错一道 OF overflow flag 溢出标志位 溢出标志位 OF 1 表示带符号整数运算时结果发生溢出 对于无符号整数运算 OF没有意义 对于有符号数的溢出判断方式有 1 采用一位符号位 思想为 或 则为溢
  • 红帽7.9部署telnet服务

    升级ssh 为预防万一提前配置telnet服务 安装软件包 yum install telnet server yum install xinetd xinetd加入开机自启 systemctl enable xinetd service
  • 操作系统 段页式存储管理

    一 引入 分页系统是以页面作为内存分配的基本单位 能有效地提高内存利用率 但信息共享等不方便 分段系统是以段作为内存分配的基本单位 它能够更好地满足用户多方面的需要 信息共享 动态链接等 但采用分区方式管理物理内存 仍然存在碎片问题 段页式
  • Windows驱动开发(一)第一个驱动程序

    首先我们需要了解 在操作系统中 是分两种权限的 一种是内核态 我们也称为0环 一种是用户态 称之为3环 而在我们的电脑中 驱动程序是运行在内核态的 这意味着和操作系统内核是在同一权限的 而普通的应用程序的权限是最低的 高权限谁不想拥有呢 因
  • Linux 内核中的 Device Mapper 机制

    Linux 内核中的 Device Mapper 机制 尹 洋 在读博士生 尹洋 中科院计算所国家高性能计算机工程技术研究中心的在读博士生 主要从事服务部署和存储资源管理以及Linux块设备一级的开发和研究工作 简介 本文结合具体代码对 L
  • 内存管理——分页分段

    一 分页存储管理 1 页面与页框 1 页面 将一个进程的逻辑地址空间分成若干个大小相等的片 称为页面或页 并为各页加以编号 2 页框 相应于页面 把内存空间分成和页面相同大小的若干个存储块 称为 物理 块或页框 frame 3 页内碎片 在
  • 《深入理解计算机系统》实验四Architecture Lab

    前言 深入理解计算机系统 实验四Architecture Lab下载和官方文档机翻请看 深入理解计算机系统 实验四Architecture Lab下载和官方文档机翻 我觉得这个文档对整个实验很有帮助 如果你的Y86 64环境还没安装好可以看
  • 【操作系统】王道考研 p42 段页式管理方式

    段页式管理方式 知识总览 分段 分页管理方式中最大的优缺点 关于段式管理会产生外部碎片 ps 分段管理中产生的外部碎片也可以用 紧凑 来解决 只是需要付出较大的时间代价 分段 分页 段页式管理 示意图 先分段 后分页 段页式管理的逻辑地址结
  • 磁盘调度算法笔记和练习题

    磁盘调度算法 先来先服务FCFS 最短寻道时间优先SSTF 扫描调度SCAN 练习题 先来先服务FCFS 最短寻道时间优先SSTF 扫描调度SCAN 它是一次只响应一个方向上的请求 这个方向上的请求都响应完了 再掉头处理另一个方向上的 有点
  • 如何快速构建CMBD系统-glpi

    脚本后续更新及迭代将由kkitDeploy项目代替 https github com luckman666 kkitdeploy server 请大家持续关注kkitDeploy 一 CMBD系统构建步骤 起初 开发这套CMBD系统是为了帮
  • C#实现FTP文件夹下载功能【转载】

    网上有很多FTP单个文件下载的方法 前段时间需要用到一个FTP文件夹下载的功能 于是找了下网上的相关资料结合MSDN实现了一段FTP文件夹下载的代码 实现的思路主要是通过遍历获得文件夹下的所有文件 当然 文件夹下可能仍然存在文件夹 这样就需
  • MacOS中清除原有ssh公钥方法

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 用ssh的跳转登录服务器后 ssh会把你每个你访问过计算机的公钥 public key 都记录在 ssh known hosts 当下次访问相同计算机时 SSH会核对公钥
  • I/O设备模型

    I O设备模型 绝大部分的嵌入式系统都包括一些I O Input Outut 输入 输出 设备 例如仪器上的数据显示屏 工业设备上的串口通信 数据采集设备上用于保存数据的Flash或SD卡 以及网络设备的以太网接口等 I O设备模型框架 R
  • 【操作系统xv6】学习记录4-一级页表与二级页表

    占位
  • 【操作系统xv6】学习记录4-一级页表与二级页表

    占位

随机推荐

  • SpringCloud Alibaba学习06-链路追踪

    六 链路追踪 在大型系统的微服务化构建中 一个系统被拆分成了许多模块 这些模块负责不同的功能 组合成系统 最终可以提供丰富的功能 在这种架构中 一次请求往往要涉及到多个服务 互联网应用构建在不同的软件模块集上 这些软件模块 有可能是有不同的
  • QML 遍历QtObject的所有属性

    1 简述 QML中 所有的Qml对象都从QtObject继承 QtObject就是QObject 利用元对象可以获获取QObject的所有属性 槽函数 注册的枚举 读取的QML对象属性打印如下 获取了属性名称 类型 类型名 属性值 方法1
  • Hash转magnet magnet:?xt=urn:btih:

    Hash码之前加上 magnet xt urn btih 注意空格和标点
  • 【OpenGL】opengl shader内置变量和函数

    1 uint CreateShader enum type 创建空的shader object type VERTEX SHADER 2 void ShaderSource uint shader sizeicount const stri
  • 关于thinkphp union多表关联查询 后排序及分页实现

    遇到的问题 1 union后直接排序或分页报错 Incorrect usage of UNION and ORDER BY 2 fetchSql得到的查询语句是没有 括起来的 3 buildSql 得到的查询语句有 括起来的 例如 查询语句
  • typeScript面试必备之-通识一

    现在玩ts的前端越来越多 作为马上来临的春季招聘 前端的小伙伴你准备好了吗 ts越来越像java 更加规整 个人认为这是一个大趋势 Typescript 介绍 1 TypeScript 是由微软开发的一款开源的编程语言 2 TypeScri
  • java获取所有方法及注释_获取类的方法上的所有方法上的注解

    最近在加深注解这块的理解 很多框架都使用到了注解 直接上代码 注解的实现类 Anno java package com robot test import java lang annotation ElementType import ja
  • 《The Road Less Traveled》,心智成熟之旅

    少有人走的路 Scott Peck 规矩 人生苦海无边 人生不是享乐的过程 是解决一个个问题的过程 这个过程中我们会遇到越来越多的问题 我们要正视问题 而不是选择忽略 忽略问题不会使它消失 到后面也是要自己承担 通俗来说就是 现在所受的苦很
  • 梳理百年深度学习发展史-七月在线机器学习集训营助你把握深度学习浪潮

    作为机器学习最重要的一个分支 深度学习近年来发展迅猛 在国内外都引起了广泛的关注 然而深度学习的火热也不是一时兴起的 而是经历了一段漫长的发展史 接下来我们了解一下深度学习的发展历程 1 深度学习的起源阶段 图1 AI之父 马文 明斯基 1
  • 列表页曝光埋点实现

    列表页曝光埋点实现 以商品为例 要求 商品一半以上出现在视窗中时 上报该行的商品 快速滑动过去的商品不上报 滑动过程中如果一行商品一直未消失在视野中 一半以上 不能重复上报 滑出视野的商品 再次滑入视野时需要再次上报 分析 需要以下信息 商
  • Mybatis---resultMap详解

    目录 一 resultMap介绍 二 自定义映射关系 一 resultMap介绍 该标签的作用是自定义映射关系 Mybatis可以将数据库结果封装到对象中 是因为结果集和对象属性名相同 也就是你写的pojo类型的参数名和数据库的字段名相同
  • Your account has been blocked. fatal: Could not read from remote repository

    1 首先设置自己的账户 https blog csdn net qq 38125058 article details 81209667 2 然后 删除在git配置密码的文件下 home kevin ssh 删除别人的文件
  • Reactive Streams, flux, mono介绍之白话版

    目录 要解决的问题 解决原理 解决方法 发布者Publisher 订阅者Subscriber 订阅对象Subscription 处理者Processor 源码简析 spring中响应式流的应用 服务端技术栈 响应式Http客户端 服务端修改
  • NodeJs入门(一)

    1 process nextTick callback 它的功能是为事件循环设置一项任务 nodeJs会在下一个事件循环时调用callback Node js是单线程的 除了系统IO之外 在它的事件轮询过程中 同一时间只会处理一个事件 你可
  • windows server2016创建AD域账户并登录

    上篇介绍了Windows Server2016下安装配置AD域 查看文章请点这里 接下来介绍创建AD域账户并登录域账户的流程步骤 创建域账户 1 右键AD服务器 选择Active Directory管理中心 2 右键AD名称 选择新建 组织
  • TCP 通信流程

    1 TCP通信过程 TCP 是一个面向连接的 安全的 流式传输协议 这个协议是一个传输层协议 1 面向连接 是一个双向连接 通过三次握手完成 断开连接需要通过四次挥手完成 2 安全 tcp 通信过程中 会对发送的每一数据包都会进行校验 如果
  • Java中使用JDBC操作Postgresql

    目录 在Rocky Linux上安装postgresql 用IntelliJ创建JavaFx项目 画一个表格 建立数据库访问 在Rocky Linux上安装postgresql Rocky的仓库中自带了postgresql安装包 我们直接用
  • ffmpeg: error while loading shared libraries: libavdevice.so.57

    编译完ffmpeg后 在终端敲ffmpeg 反馈如下 ffmpeg error while loading shared libraries libavdevice so 57 cannot open shared object file
  • 在matlab中寻找曲线上离原点距离最近的点的坐标的思考

    syms y x linspace 2 2 200 n length x g for i 1 n a x i t vpa solve y 1 a 2 y 2 sin a cos y y 3 g g t end 对于这个代码主要是想算出对应x
  • 第六章 存储器层次结构 第一节 存储技术之磁盘存储

    磁盘能比RAM存储更大的信息 但是读取速度上比DRAM慢了10万倍 比SRAM慢了100万倍 1 磁盘构造 磁盘是由盘片 platter 构成 盘片中央有一个可以旋转的主轴 它使得盘片以固定的旋转速率旋转 每个盘片有两面或者称为表面 表面覆