计算机组成原理与系统结构——外部存储器
笔记内容及图片整理自XJTUSE “计算机组成原理与系统结构” 课程ppt,仅供学习交流使用,谢谢。
磁盘
磁盘是一个由非磁性材料构成的圆形盘片(称为基片),上面涂抹可磁化材料。传统的基片一直是铝制或铝合金的,最新的引入了玻璃基片,它具有以下优点:
1)改进磁膜表面的均匀性,提高磁盘的可靠性
2)减少整体表面缺陷,降低读写错误
3)具有更好的刚度,减少磁盘动态
4)具有更强的抗冲击和防破坏能力
磁性读写机制
数据通过被称为磁头的导电线圈记录在磁盘上,之后再从磁盘取出。读写操作磁头是静止的,而盘面则在其下方旋转,磁头可以是单个读写头,也可以是多个读写头。
写入机制利用了流过线圈的电流会产生磁场的事实。电脉冲被发送到写磁头,由此产生的磁图案被记录到下面的表层上,正负电流产生不同的脉冲信号因而产生不同的图案。导线中的电流在磁盘间隙上产生不同的磁区,分别表示0、1。反转电流方向便反转介质上磁化方向。
传统读取机制利用了磁场相对线圈移动会产生电流的事实。当磁盘表面在磁头下方旋转时,它会产生与已记录的磁极相同的电流,此时读取磁头的结构与写入磁头的结构基本相同。
现代读取机制分离了读写磁头,需要单独的读取磁头,它的位置靠近写入磁头。读取磁头由部分屏蔽磁阻(MR)传感器组成,MR材料有电阻,取决于在其下方移动的介质的磁化方向。通过使电流经过MR传感器,电阻变化被检测为电压信号,MR设计允许更高频率的操作,这保证了更高的存储密度和操作速度。
数据组织和格式
磁头是一种相对较小的设备,可以对在其下方旋转的盘片的一部分进行读写,这使得盘片上的数据被组织成一组同心环(称为磁道),每条磁道的宽度都与磁头相同,每个盘面上都有上千条磁道,相邻磁道由磁道间隙隔开以最小化磁头错误或磁场干扰造成的误差。
下图描述了这种数据布局,其数据密度从外到内逐渐增加,通过以恒定角速度(CAV)旋转磁盘便可用相同速率扫描信息。使用CAV的优点是可以通过磁道和扇区直接寻址各个数据块,缺点是外层较长磁道上存储的数据量只能等于内层较短磁道上存储的数据量。
物理特性
固定磁头磁盘——每条磁道都有一个读写磁头,所有磁头都安装在固定刚性臂的头部。
移动磁头磁盘——仅有一个读写磁头,它被安装在可移动臂上。
可更换磁盘——可从驱动器中取出并用另一个磁盘替换,它能提供无限的存储容量,使系统间的数据传输更加便捷。
不可更换磁盘——可永久安装在磁盘驱动器中,PC机的硬盘就是不可更换磁盘。
双面磁盘——磁化涂层在盘片的两面都有,适用于大部分磁盘系统。
单面磁盘——磁化涂层仅存在于在盘片的一面,适用于一些较便宜的磁盘系统。
多盘片——磁盘驱动器容纳多个垂直堆叠的盘片,它们之间距离一英寸。多盘片使用可移动磁头,每个盘片表面都有一个读写磁头。下图为多盘片的图示。
磁盘性能参数
磁盘I/O操作取决于计算机系统、操作系统以及I/O通道和磁盘控制器硬件的性质。下图为磁盘I/O传输的一般时序图。
多进程系统
设备等待时间——在多进程系统中,当一个进程请求I/O时,I/O任务将排队等待设备空闲。
通道等待时间——若I/O通道繁忙,需要等待它空闲。
以上两部分时间是不确定的。
寻道时间
寻道时间指磁盘臂移动到所需磁道要花费的时间。寻道时间包含初始启动时间以及当访问臂达到一定速度后遍历需跨越磁道花费的遍历时间。然而遍历时间不是磁道数量的线性函数,而是包含了把磁头放到目标磁道后直到确认磁道标识的时间。
估算公式:
Ts—寻道时间,S—初始启动时间,n—遍历时间,m—与磁盘驱动程序相关的常数
旋转延迟
除了软盘,磁盘的旋转速度从3600rpm(16.7ms转一圈)到20000rpm(3ms转一圈)
典型硬盘转速为7200rpm(8.4ms转一圈),平均旋转延迟为4.2ms
通常软盘转速为300~600rpm,平均延迟为100~200ms
传输时间
磁盘传输时间取决于要传输的字节数和磁盘的旋转速度。
估算公式:
T—磁盘传输时间,b—要传输的字节数,N—单位磁道上的字节数,r—转速,单位为转/秒
读写时间
读写时间是寻道时间、旋转延迟和传输时间的总和。
平均访问时间Ta估算公式: Ts—平均寻道时间
相关案例
一个转速为15000rpm、平均寻道时间为4ms、512B/扇区、500sectors/track的磁盘,假设我们希望读取一个由2500个扇区组成的文件,总共1.28MB,请估计总读写时间。
1)序列组织 2)数据随机分布
RAID
通过使用多个磁盘,可以各种方式组织数据,利用增加冗余来提高可靠性,但这可能使开发用于多个平台和操作系统的数据库方案变得困难。业界有种多磁盘数据库设计的标准方案,独立磁盘冗余阵列RAID。RAID方案由0级-6级共七个级别组成,它们并非层级关系,而是指定了不同的设计架构,他们有着三个共同特征:
1)RAID是一组物理磁盘驱动器,操作系统将其看作一个逻辑驱动器
2)数据分布在阵列的物理驱动器上,分布方案称为条带
3)冗余磁盘容量用于存储奇偶校验信息,以保证磁盘故障时数据的可恢复性
RAID有效地解决了冗余需求。虽然允许多磁头和执行器同时操作能获得更高的I/O和传输速率,但使用多个设备增加了故障概率。为了弥补这种可靠性的下降,RAID利用存储奇偶校验信息来恢复由于磁盘故障而丢失的数据。
其他暂不做要求。
固态驱动器
固态驱动器(SSD)是一种由固态组件制成的存储设备,可以被用来代替硬盘驱动器(HDD)。“固态”一词指用半导体制成的电路,SSD现在主要使用NAND闪存。
SSD与HDD的比较
随着基于闪存的SSD成本的降低以及性能与位密度的提高,SSD与HDD的竞争日益激烈。SSD与HDD相比具有以下优势:
1)每秒高性能输入/输出操作数(IOPS)——显著提高I/O子系统的性能
2)耐用性——不易受到物理冲击和振动
3)更长的使用寿命——SSD不易受到机械磨损
4)更低的功耗——与同等大小HDD相比,SSD功耗要低得多
5)更安静、更凉爽的运行能力——空间需求少,能源成本低,运行环保
6)更低的访问时间和延迟率——SSD比HDD的旋转磁盘要快10倍以上
SSD组成
主机系统上,操作系统调用文件系统软件来访问磁盘上的数据,文件系统调用I/O驱动软件,I/O驱动软件提供对特定SSD产品的主机访问。下图接口组件是指主机处理器与SSD外围设备之间的物理接口和电气接口。
实际问题
以下为SSD特有的两个实际问题,而HDD不用面对。
1)随着设备的使用,SDD性能有缓慢下降的趋势。把一页写入闪存需要从闪存中读整个块并将其放入RAM缓冲区,然后更新RAM缓冲区中合适的页。在块可被写回闪存前,必须擦除整个闪存块,然后缓冲区中的整个块就可以被写回闪存了。
磁盘占用越满,文件碎片化越严重,写入速度越慢,为写操作预留空间和TRIM命令(允许操作系统通知SSD哪些数据块不再使用以便内部擦除)是解决方案。
2)闪存经过一定数量的写入后变得不可使用。当闪存单元受压时,它们会失去记录和保持数值的能力。延长SSD寿命的技术包括使用高速缓存对闪存进行前端的处理以延迟和分组写入操作,使用磨损均衡算法跨单元块上均匀分布写入,以及复杂坏块管理技术。
大多数闪存设备都会估计自己的剩余寿命,以便系统能够预测故障并采取先发制人的行动。
光存储器
光盘
光盘CD是数子音频系统,是一种不可擦除盘,能存储超过70分钟的音频信息。CD-ROM是光盘只读存储器,数据存储在涂有高反射涂层的聚碳酸酯表面的一系列微观凹坑中。通过反射激光读取,凹坑可能会改变激光的强度,光电传感器将其转换为数字信号。
CD-ROM容量大约为680MB,其上数据被组织为一系列的块。下图是典型CD-ROM块格式示例图,模式0指空白数据字段,模式1指2048字节数据和一个纠错码,,模式2指2336字节数据,没有纠错码。
由于CD-ROM使用了恒定线速度,其上的随机访问比较困难。定位一个特定地址需要通过将磁头移动到一般区域,调整转速,读取地址,通过微调、查找找到并访问特定的扇区。
CD-ROM的优缺点
优点:容量大、易于批量生产、成本低、可拆卸、坚固耐用
缺点:CD-ROM速度<硬盘速度、只读而不能被更新、脆弱
数字通用光盘
数字通用光盘容量巨大,不仅取代录像机的录像带,而且取代PC机和服务器的CD-ROM。用它记录的电影图像质量高,还可以像音频CD一样随机访问。大量数据可被压缩到光盘,是CD-ROM的7倍。DVD容量更大源于其于CD的三个不同点:
1)位在DVD上排列更紧密,且DVD使用的激光波长更短
2)DVD在第一层凹坑之上增加了第二层凹坑
3)DVD-ROM不同于CD,数据可以记录在双面上
磁带
磁带系统使用与磁盘系统相同的读取和记录技术。磁带上的数据被构造为沿长度方向运行的多个平行磁道。传统磁带系统使用9磁道,1次存储1字节,第9条磁道作为奇偶校验位;较新的磁带系统使用18/36磁道,这种形式的数据记录被称为并行记录。现代的磁带系统则使用串行记录,数据以位序列的形式沿着每条磁道排列,且在磁带上以连续的块进行读写。磁带上的块用间隙隔开,被称为记录间隙。磁带的格式有助于定位物理记录。
相关文章:

计算机组成原理与系统结构——外部存储器
笔记内容及图片整理自XJTUSE “计算机组成原理与系统结构” 课程ppt,仅供学习交流使用,谢谢。 磁盘 磁盘是一个由非磁性材料构成的圆形盘片(称为基片),上面涂抹可磁化材料。传统的基片一直是铝制或铝合金的࿰…...

如何使用 Browserless 抓取动态网站?
什么是动态网页? 动态网页是指其内容并非完全直接嵌入在静态HTML中,而是通过服务器端或客户端渲染生成的网页。 它可以根据用户的操作实时显示数据,例如在用户点击按钮或向下滚动页面时加载更多内容(如无限滚动)。这…...

第21~22周Java主流框架入门-Spring 2.SpringAOP面向切面编程
1.Spring AOP (Aspect-Oriented Programming) 1. 1. 什么是 Spring AOP? AOP(面向切面编程) 是 Spring 提供的一种可插拔的组件技术,允许我们在软件运行过程中添加额外的功能。场景:假设有两个模块,用户管…...

Flutter不常用组件----InteractiveViewer
在现代移动应用开发中,用户互动性是提升体验的关键。Flutter 提供了多种组件来帮助开发者实现丰富的交互功能,其中一个强大的组件便是 InteractiveViewer。它允许用户通过手势对内容进行缩放、平移和旋转,适用于需要用户查看大图、地图或者其…...

【LeetCode HOT 100】详细题解之二分查找篇
【LeetCode HOT 100】详细题解之二分查找篇 35 搜索插入位置思路代码(左闭右闭)代码(左闭右开) 74 搜索二维矩阵思路代码(左闭右闭) 34 在排序数组中查找元素的第一个和最后一个位置思路代码 33 搜索旋转排序数组思路代码 153 寻找旋转排序数组中的最小值思路代码 4 寻找两个正…...

管理篇(顶级思维模型(31个))(待做)
目录 一、成长进阶模型 二、优势探索模型 三、优势层次模型 四、人生定位模型 五、看懂人性模型 六、如何抉择模型 七、本质思考模型 八、心流模型 九、精力管理模型 十、高效沟通模型 十一、100%传递模型 十二、高效倾听模型 十三、高效表达模型 十四、精准提问模…...

十一、数据库配置
一、Navicat配置 这个软件需要破解 密码是:123456; 新建连接》新建数据库 创建一个表 保存出现名字设置 双击打开 把id设置为自动递增 这里就相当于每一次向数据库添加一个语句,会自动增长id一次 二、数据库的增删改查 1、Vs 建一个控…...

day02 -- docker
1.docker的介绍 Docker 是一个开源的应用容器引擎,基于 Go语言 并遵从 Apache2.0 协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使…...

ecmascript标准
1. 简介 1.1. 概述 ECMAScript(简称ES)是JavaScript编程语言的一个标准化版本。它是为网络开发设计的一种轻量级的脚本语言,主要用于在网页上实现交互性和动态效果。ECMAScript是该语言的标准名称,而JavaScript是其最知名和广泛使用的实现。 1.2. 特点 跨平台性 :ECMAS…...

在Linux命令行中一行执行多个命令
原文地址链接: https://kashima19960.github.io/2024/10/22/Linux/在Linux命令行中一行执行多个命令/,一般有最新的修改都是在我的个人博客里面,所以在当前平台的更新会比较慢,请见谅😃 前言 在shell中一个一个命令行,…...

u盘快速格式化后怎么恢复文件:深入解析与全面指南
U盘,凭借其小巧便携、易于使用的特点,成为了我们日常生活中不可或缺的数据存储工具。然而,有时为了清除病毒、解决文件系统错误或准备存储新数据,我们可能需要对U盘进行快速格式化。但这一操作往往伴随着一个严峻的问题࿱…...

青少年编程能力等级测评CPA C++(二级)试卷(2)
青少年编程能力等级测评CPA C(二级)试卷(2) 一、单项选择题(共20题,每题3.5分,共70分) CP2_2_1.下列C程序段中,对二维数组arr的定义不正确是( &…...

aws 把vpc残留删除干净
最近忘了把vpc 删干净导致又被收了冤大头钱 在删除vpc 的收发现又eni在使用,但是忘了是哪个资源在占用 先用命令行把占用的资源找出来停掉 使用 AWS 命令行界面(CLI)来查看 VPC 的使用情况 列出子网: aws ec2 describe-subnets …...

平衡二叉树最全代码
#include<stdio.h> #include<stdlib.h>typedef struct Node {int val;int height;struct Node *left;struct Node *right; }Node;//创建新结点 Node* newNode(int val) {Node *node (Node*)malloc(sizeof(Node));node->val val;node->height 1;node->l…...

数据库表的创建
运用的环境是pychram python3.11.4 创建一个表需要用到以下语法 注释已经写清楚各种语法的含义,记住缩进是你程序运行的关键,因为程序是看你的缩进来判断你的运行逻辑,像我这个就是缩进不合理导致的报错 那么今天分享就到这里,谢…...

【MySQL 数据库】之--基础知识
1. MySQL 数据库基础概念 数据库: 逻辑上存储和管理数据的集合。MySQL 是一个常用的关系型数据库管理系统。 2. 创建数据库 要创建一个新的数据库,可以使用 CREATE DATABASE 语句。 语法: CREATE DATABASE 数据库名; 示例: CREATE DATABASE my_database; 注意事…...

Flume面试整理-如何处理Flume中的数据丢失
在Apache Flume中,数据丢失是一个可能出现的严重问题,特别是在处理大规模数据时。数据丢失通常会发生在数据从Source(源)到Channel(通道),或从Channel到Sink(汇)传输的过程中。如果不处理得当,Flume的崩溃或网络故障可能会导致丢失的数据无法恢复。以下是几种常见的F…...

文件处理新纪元:微信小程序的‘快递员’与‘整理师’
嗨,我是中二青年阿佑,今天阿佑将带领大家如何通过巧妙的文件处理功能,让用户体验从‘杂乱无章’到‘井井有条’的转变! 文章目录 微信小程序的文件处理文件上传:小程序的“快递服务”文件下载:小程序的“超…...

应付账款优化,自动化管理5要点
优化应付账款流程对企业现金流至关重要。通过自动化、规范采购订单、管理供应商、设计高效流程及保留数字记录,可显著提升效率与精确度。ZohoBooks在线财务记账软件助您简化应付账款处理,确保业务顺畅。 1、自动化您的应付账款流程 通过自动化你的应付账…...

Win安装Redis
目录 1、下载 2、解压文件并修改名称 3、前台简单启动 4、将redis设置成服务后台启动 5、命令启停redis 6、配置文件设置 1、下载 【下载地址】 2、解压文件并修改名称 3、前台简单启动 redis-server.exe redis.windows.conf 4、将redis设置成服务后台启动 redis-server -…...

手把手带你安装U9【win10+sql+U9】,同样适用U9C的安装
一、Win10操作系统设置 1、Windows 10内置账号administrator启用 a、登录到Windows 10系统以后,鼠标右键点击桌面左下角“win图标”,在弹出画面选择“命令提示符(管理员)”或”windows power shell(管理员)”,如下图: b、在”命令提示符(管理员)”或”windows power sh…...

若依前后端框架学习——新建模块(图文详解)
若依框架—新建模块 一、项目地址1、后端启动2、前端启动 二、生成代码1、添加菜单2、创建表结构3、生成代码2、编辑一些基本信息,然后点击提交3、生成代码,压缩包里有前端和后端代码 三、配置后端模块1、新建模块2. 修改pom.xlm2.1 修改第一个pom.xml 2…...

【LaTeX和Word版】写论文时如何调整公式和文字的间距
在撰写论文时,公式和文字段落的间距可能会显得不一致,特别是插入的公式占用单独一行时。这种情况下,可以通过以下两种方法来调整公式和文字段落的间距,使论文排版看起来更加整齐和一致。 1. 使用 LaTeX 调整段落间距 (1) 调整行…...

快乐数--双指针
一:题目 题目链接:. - 力扣(LeetCode) 二:算法原理 三:代码编写 int Sum(int n){int sum 0;while(n){sum pow(n%10,2);n / 10;}return sum;}bool isHappy(int n) {int slow n,fast Sum(n);while(slow …...

论文阅读-三维结构几何修复(导-4)
摘要 解决了3D数字模型中大洞修复的问题。 通过基于字典学习的方法解决了缺失区域推断问题,该方法利用从单个自相似结构和在线深度数据库中得出的几何先验。利用几何先验提供的线索,从洞的边界周围自适应地传播局部3D表面平滑性来恢复底层表面。在合成…...

数字货币交易所源码开发:场外(OTC)与币币交易所系统的构建指南
在区块链技术迅速发展的推动下,数字货币市场的需求大幅增加。数字货币交易所作为加密货币的主要交易场所,成为了开发者和企业关注的焦点。市场上有多种交易模式可供选择,最常见的是场外交易(OTC)和币币交易。本篇文章将…...

C++ 进阶:类相关特性的深入探讨
⭐在对C 中类的6个默认成员函数有了初步了解之后,现在我们进行对类相关特性的深入探讨! 🔥🔥🔥【C】类的默认成员函数:深入剖析与应用(上) 【C】类的默认成员函数:深入剖…...

C++ 多态、虚析构、模板类、常函数、虚继承、虚函数和纯虚函数相关知识和问题总结
1. C 中的多态 多态(Polymorphism)是面向对象编程中的一个重要特性,它允许使用相同的接口来表示不同的类型。由于派生类重写基类方法,然后用基类引用指向派生类对象,调用方法时候会进行动态绑定,这就是多态…...

计算机组成原理一句话
文章目录 计算机系统概述存储系统指令系统 计算机系统概述 指令和数据以同等地位存储在存储器中,形式上没有差别,但计算机应能区分他们。通过指令周期的不同阶段。 完整的计算机系统包括,1)软件系统:程序、文档和数据&…...

【Linux】僵尸进程和孤儿进程
一、僵尸进程 何为僵尸进程? 在 Unix/Linux 系统中,正常情况下,子进程是通过父进程创建的,且两者的运行是相互独立的,父进程永远无法预测子进程到底什么时候结束。当一个进程调用 exit 命令结束自己的生命时ÿ…...