硬盘基本知识(磁头、磁道、扇区、柱面),格式化容量计算

计算差:

   在购买硬盘之后,细心的人会发现,在操作系统当中硬盘的容量与官方标称的容量不符,都要少于标称容量,容量越大则这个差异越大。标称40GB的硬盘,在操作系统中显示只有38GB;80GB的硬盘只有75GB;而120GB的硬盘则只有114GB。这并不是厂商或经销商以次充好欺骗消费者,而是硬盘厂商对容量的计算方法和操作系统的计算方法有不同而造成的,不同的单位转换关系造成的。

众所周知,在计算机中是采用二进制,在电脑世界里,以2的次方数为“批量”处理Byte会方便一些,整齐一些。每1024Byte为1KB,每1024KB为1MB,每1024MB为1GB,每1024GB为1TB,而在国际单位制中TB、GB、MB、KB是“1000进制”的数,为此国际电工协会(IEC)拟定了"KiB"、“MiB”、“GiB"的二进制单位,专用来标示“1024进位”的数据大小;而硬盘厂商在计算容量方面是以每1000为一进制的,每1000字节为1KB,每1000KB为1MB,每1000MB为1GB,每1000GB为1TB,在操作系统中对容量的计算是以1024为进位的,并且并未改为"KiB"、“MiB”、“GiB"的二进制单位,这差异造成了硬盘容量“缩水”。
 

容量关系

计算机硬盘存储容量通常使用字节(B,Byte)、千字节(KB,KiloByte)、兆字节(MB,MegaByte)、吉字节(GB,Gigabyte)、太字节(TB,TeraByte)、拍字节(PB,PetaByte)、艾字节(EB,ExaByte)、泽字节(ZB,ZettaByte)、尧字节 (YB,YottaByte)和BB(BrontoByte)、NB(NonaByte)、 DB(DoggaByte)等来衡量。

1 KB=2^10 B=1024 B;

1 MB=2^10 KB=1024 KB=2^20 B;

1 GB=2^10 MB=1024 MB=2^30 B;

1 TB=2^10 GB=1024 GB=2^40 B;

1 PB=2^10 TB=1024 TB=2^50 B;

1 EB=2^10 PB=1024 PB=2^60 B;

1 ZB=2^10 EB=1024 EB=2^70 B;

1 YB=2^10 ZB=1024 ZB=2^80 B;

1 BB=2^10 YB=1024 YB=2^90 B;

1 NB=2^10 BB=1024 BB=2^100 B;

1 DB=2^10 NB=1024 NB=2^110 B。

 

 

概述

  1. 盘片(platter)
  2. 磁头(head)
  3. 磁道(track)
  4. 扇区(sector)
  5. 柱面(cylinder)

盘片 片面 和 磁头

硬盘中一般会有多个盘片组成,每个盘片包含两个面,每个盘面都对应地有一个读/写磁头。受到硬盘整体体积和生产成本的限制,盘片数量都受到限制,一般都在5片以内。盘片的编号自下向上从0开始,如最下边的盘片有0面和1面,再上一个盘片就编号为2面和3面。
如下图:

 

图1

扇区 和 磁道

下图显示的是一个盘面,盘面中一圈圈灰色同心圆为一条条磁道,从圆心向外画直线,可以将磁道划分为若干个弧段,每个磁道上一个弧段被称之为一个扇区(图践绿色部分)。扇区是磁盘的最小组成单元,通常是512字节。(由于不断提高磁盘的大小,部分厂商设定每个扇区的大小是4096字节)

图2

磁头 和 柱面

硬盘通常由重叠的一组盘片构成,每个盘面都被划分为数目相等的磁道,并从外缘的“0”开始编号,具有相同编号的磁道形成一个圆柱,称之为磁盘的柱面。磁盘的柱面数与一个盘面上的磁道数是相等的。由于每个盘面都有自己的磁头,因此,盘面数等于总的磁头数。 如下图

 

图3

磁盘容量计算

(格式化容量)存储容量 = 磁头数 × 磁道(柱面)数 × 每道扇区数 × 每扇区字节数

图3中磁盘是一个 3个圆盘6个磁头,7个柱面(每个盘片7个磁道) 的磁盘,图3中每条磁道有12个扇区,所以此磁盘的容量为:

存储容量 6 * 7 * 12 * 512 = 258048

每个磁道的扇区数一样是说的老的硬盘,外圈的密度小,内圈的密度大,每圈可存储的数据量是一样的。新的硬盘数据的密度都一致,这样磁道的周长越长,扇区就越多,存储的数据量就越大。

非格式化容量: 非格式化容量=记录面数*(每面的磁道数*内圆周长*最大位密度)

 

 

磁盘读取响应时间

  1. 寻道时间:磁头从开始移动到数据所在磁道所需要的时间,寻道时间越短,I/O操作越快,目前磁盘的平均寻道时间一般在3-15ms,一般都在10ms左右。
  2. 旋转延迟:盘片旋转将请求数据所在扇区移至读写磁头下方所需要的时间,旋转延迟取决于磁盘转速。普通硬盘一般都是7200rpm,慢的5400rpm。
  3. 数据传输时间:完成传输所请求的数据所需要的时间。
    小结一下:从上面的指标来看、其实最重要的、或者说、我们最关心的应该只有两个:寻道时间;旋转延迟。

读写一次磁盘信息所需的时间可分解为:寻道时间、延迟时间、传输时间。为提高磁盘传输效率,软件应着重考虑减少寻道时间和延迟时间。

块/簇

概述

磁盘块/簇(虚拟出来的)。 块是操作系统中最小的逻辑存储单位。操作系统与磁盘打交道的最小单位是磁盘块。
通俗的来讲,在Windows下如NTFS等文件系统中叫做簇;在Linux下如Ext4等文件系统中叫做块(block)。每个簇或者块可以包括2、4、8、16、32、64…2的n次方个扇区。

为什么存在磁盘块?

读取方便:由于扇区的数量比较小,数目众多在寻址时比较困难,所以操作系统就将相邻的扇区组合在一起,形成一个块,再对块进行整体的操作。

分离对底层的依赖:操作系统忽略对底层物理存储结构的设计。通过虚拟出来磁盘块的概念,在系统中认为块是最小的单位。

page

操作系统经常与内存和硬盘这两种存储设备进行通信,类似于“块”的概念,都需要一种虚拟的基本单位。所以,与内存操作,是虚拟一个页的概念来作为最小单位。与硬盘打交道,就是以块为最小单位。

扇区、块/簇、page的关系

  1. 扇区: 硬盘的最小读写单元
  2. 块/簇: 是操作系统针对硬盘读写的最小单元
  3. page: 是内存与操作系统之间操作的最小单元。

扇区 <= 块/簇 <= page



作者:jijs
链接:https://www.jianshu.com/p/9aa66f634ed6
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/553955.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

常用校验码(奇偶校验码、海明校验码、CRC校验码)

转载自&#xff1a;https://www.cnblogs.com/VersionP1/p/7779251.html &#xff0c;作者&#xff1a; FunnyOne 常用校验码&#xff08;奇偶校验码、海明校验码、CRC校验码&#xff09; 一、奇偶校验码二、海明校验码三、CRC校验码 计算机系统运行时,各个部之间要进行数据交…

原码、反码、补码、移码

版权声明&#xff1a;本文为CSDN博主「刘水镜」的原创文章&#xff0c;遵循 CC 4.0 BY-SA 版权协议&#xff0c;转载请附上原文出处链接及本声明。 原文链接&#xff1a;https://blog.csdn.net/liushuijinger/article/details/7429197 原码&#xff1a; 如果机器字长为n&#…

【计算机系统】指令流水线

前言 流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。各部件同时处理是针对不同指令而言的&#xff0c;比如说&#xff0c;指令流水线把一条指令分为取指、分析和执行3部分&#xff0c;可以同时处理取指和分析&#xff0c;但是不能同时处理一个部…

Gantt(甘特图)与PERT(项目计划评审技术)图,项目关键路径和松弛时间

甘特图也叫做进度管理图。 他是一种简单的水平条形图&#xff0c;它以日历为基准描述项目任务&#xff0c;水平轴表示日历时间线&#xff0c;每一个线条表示一个任务&#xff0c;任务名称垂直的列在左边列中&#xff0c;图中的线条的起点和终点对应水平轴上的时间&#xff0c;…

学习阮一峰Javascript模块化编程,requireJS使用

使用背景NOW&#xff1a; 网站功能逐渐丰富&#xff0c;网页中的js也变得越来越复杂和臃肿&#xff0c;原有通过script标签来导入一个个的js文件这种方式已经不能满足现在互联网开发模式。 项目需要一个团队分工协作、进度管理、单元测试等等......开发者不得不使用软件工程的…

阮一峰的JavaScript 的 this 原理

一、问题的由来 学懂 JavaScript 语言&#xff0c;一个标志就是理解下面两种写法&#xff0c;可能有不一样的结果。 var obj {foo: function () {} };var foo obj.foo;// 写法一 obj.foo()// 写法二 foo()上面代码中&#xff0c;虽然obj.foo和foo指向同一个函数&#xff0c;…

计算机基础:IP地址,子网掩码,默认网关,DNS服务器

如图各项IP地址、子网掩码、默认网关、DNS服务器分别都代表什么意思 &#xff08;一&#xff09;IP地址 IP是32位二进制数据&#xff0c;通常以十进制表示&#xff0c;并以“.”分隔。IP地址是一种逻辑地地址&#xff0c;用来标识网络中一个个主机&#xff0c;IP有唯一性&#…

解决vue的{__ob__: observer}取值问题

vue编码中经常出现获取到的数据是&#xff1a;{__ob__: Observer} 格式的&#xff0c;详细如下 可能导致后续数据操作错误&#xff0c;如何获取其中的数值呢 解决方法如下&#xff1a; 将返回的数据data先转换为JSON字符串形式&#xff0c;然后再从字符串形式转换成JSON格式JS…

软考计算机基础:存储系统

软考计算机存储系统笔记&#xff1a; 存储器分类&#xff1a; 1、按存储位置分为内存和外存&#xff1b; 2、按存储材料分为磁存储&#xff08;使用磁存储介质&#xff09;、半导体存储&#xff08;分为双极型和MOS型&#xff0c;根据数据是否需要刷新可以分为静态SRAM存储器…

vscode统计代码行数,前端开发配置、快捷键使用

1、统计代码行数 使用场景是项目年终统计行数。 实现&#xff1a;在需要统计得文件夹右键“在文件夹中查找“ &#xff0c;后输入筛选得正则表达式 ^b*[^:b#/].*$ (注意右边小图标都点亮) 这里顺便将自己使用vscode进行前端开发环境配置归纳一下&#xff0c;便于自己以后快速…

vue-cli打包后怎么修改服务器地址实践有效

前言&#xff1a;公司vue项目使用 npm run build 打包生成dist文件部署后&#xff0c;当需要修改服务器端地址时候就又需要重新配置url并打包部署&#xff0c;为简化部署测试工作&#xff0c;想实现通过修改服务器地址的配置文件来实现修改打包后的项目服务器地址。 项目基于vu…

干净高效的搜索引擎

找一个干净好用的搜索引擎&#xff0c;好文转载备忘 为什么不用百度搜索引擎&#xff0c;估计一百个人会有一百个理由。 百度最让人诟病的还是它的竞价排名&#xff0c;其实要赚钱无可厚非&#xff0c;但这吃相……前几天看到知乎上有人发了张百度和谷歌搜索的对比图&#xf…

vue-router区分hash模式和history模式

总结&#xff1a; hash模式是我们在url后面添加一个#xx触发事件。尽管浏览器没有请求服务器&#xff0c;但是页面状态和url已经关联起来了&#xff0c;这就是所谓的前端路由&#xff0c;单页应用的标配。 history模式下浏览器地址不规整&#xff08;没有#&#xff09;&#x…

Vue 打包前需修改的配置,解决白屏问题

vue-cli项目和electron-vue项目打包运行都有遇到的白屏问题&#xff0c;下面记录打包前需要确认的配置 第一&#xff1a; config文件夹下的index.js 中的文件中的 assetsPublicPath &#xff1a;‘/’ 改为’./’ 不然的话会是空白页&#xff0c;记住&#xff0c;是build那块。…

electron-vue解决打包错误、无法调用出开发者工具(亲测有效)

错误1&#xff1a; unresolved node modules vue... 或 not found modules..的错误 解决方式&#xff1a;依赖的模块错误&#xff0c;删除node_module文件夹后&#xff0c;尽量用npm install而不是淘宝镜像cnpm安装 错误2&#xff1a; Cannot create symlinks (on Windows hos…

JS中使用bignumber处理高精度小数运算

项目开发中发现精度丢失的问题&#xff0c;如0.10.2 0.30000000000000004的问题 解决方式&#xff1a;引用bignumber.js用于数字精度要求较高的计算。 1、安装或引用&#xff1a; 下载地址&#xff1a;https://github.com/MikeMcl/bignumber.js/releases 或 npm install big…

restful api接口设计

技术由来&#xff1a; 互联网早期&#xff0c;页面请求和并发量不高&#xff0c;且移动端未盛行时对接口要求不高&#xff0c;使用动态页面(jsp)就能满足绝大多数的使用需求。但是随着互联网和移动设备的发展&#xff0c;人们对Web应用的使用需求也增加&#xff0c;传统的动态…

vue-cli安装和使用

主要记录安装vue-cli制定版本和使用&#xff0c;注意vue-cli4创建项目命令和项目结构的改变 检查当前项目的vue-cli版本&#xff1a; vue -V 卸载当前版本&#xff1a; npm uninstall vue-cli -g 安装最新版本: npm install -g vue-cli 安装指定版本&#xff1a; npm in…

Apache 和 Tomcat 服务器的区别

Apache 和 Tomcat 都是web网络服务器&#xff0c;两者既有联系又有区别&#xff0c;在进行HTML、PHP、JSP、Perl等开发过程中&#xff0c;需要准确掌握其各自特点&#xff0c;选择最佳的服务器配置。 Apache是web服务器&#xff08;静态解析&#xff0c;如HTML&#xff09;&…

二进制、八进制、十六进制相互转换

一、十进制与二进制之间的转换 1、十进制转二进制 方法为&#xff1a;十进制数除2取余法&#xff0c;即十进制数除2&#xff0c;余数为权位上的数&#xff0c;得到的商值继续除2&#xff0c;依此步骤继续向下运算直到商为0为止。 &#xff08;具体用法如下图&#xff09; 2、二…