程序员的自我修养---2 文件在磁盘中的结构

news/2024/6/19 6:20:26 标签: 文件, 磁盘存储结构, LBA

文 件 系 统 管 理 着 磁 盘 中 文 件 的 存 储 方 式 . 比 如 我 们 在 Linux 系 统 下 有 一 个 文 件
“ / home / user / test . dat ” , 长度为 8 000 个宁节 。那么我们在创建这个文件的时候 , Linux 的 ext 3
文件系统冇可能将这个文件按照这样的方式存储在磁盘中 : 文件的前 4 096 字节存储在磁盘
的 1000 号 扇区到 1007 号扇区 , 每个扇区 512 字节 , 8 个扇区刚好 4096 字节 ; 文件的第 4 097
个字节到第 8 000 字节共 3 904 个字节 , 存储在磁盘的 2000 号扇区到 2007 号扇区 , 8 个扇
区也是 4096 字节 , 只 不过只存储了 3 904 个有效的字节 , 剩 下 的 192 个字节无效 。 如果把
这个文件的存储方式看作是一个链状的结构 , 它的结构如图 14 所示 。 

 

这里我们先穿插一个关于硬盘的结构介绍 , 关于硬盘结构可能很多读者已经有一个大概的了解 , 那就是硬盘基本存储单位为扇区 ( Sector ) , 每个扇区一般为 512 字节 。 一 个硬盘往往有多个盘片 , 每个盘片分两面 , 每面按照同心圆划分为若干个磁道 , 每个磁道划分为若干个扇区 。 比如一个硬盘有 2 个盘片 , 每个盘面分 65 536 磁道 , 每个磁道分 1 024 个扇区 , 那么硬盘的容置就是 2*2*65 536*1 024*512 =137 438 953 472 字节 ( 128 GB ) 。 但是我们可以想象 , 每个盘面上同心圆的周长不一
样 , 如果按照每个磁道都拥有相同数置的扇区 , 那么靠近盘面外围的磁道密度肯定比内圈更加稀疏 , 这样是比较浪费空间的 。 但是如果不同的磁道扇区数又不同 , 计算起来就十分麻烦 。 为了屏蔽这些复杂的硬件细节 , 现代的硬盘普遍使用一种叫做 LBA( Logical Block Address ) 的方式 , 即整个硬盘中所有的扇区从 0 开始编号 , 一直到最后一个扇区 , 这个扇区编号叫做逻辑扇区号 。 逻辑扇区号抛弃了所有复杂的磁道 、盘面之类的概念 。 当我们给出一个逻辑的扇区号时 , 硬盘的电子设备会将其转换成实际的盘面 、 磁道等这些位置 。


http://www.niftyadmin.cn/n/1098805.html

相关文章

microsoft Entity Framework

http://blogs.msdn.com/dsimmons/archive/2008/05/17/why-use-the-entity-framework.aspxhttp://blogs.msdn.com/dsimmons/pages/entity-framework-faq.aspxhttp://vs2008sp1docs.msdn.microsoft.com/en-us/ms439009.aspx LINQ to SQL与LINQ to Entities场景之对照 MSDN上最近发…

电阻、电容、电感的实际等效模型

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/qq_29545231/article/details/80711508 1、电阻的等效模型2、电容的寄生参数3、电容的等效参数4、理…

程序员的自我修养---3.内存分配与管理

资料下载: 链接:https://pan.baidu.com/s/1FUmks6gsNBW10EqCJ-BRFQ 复制这段内容后打开百度网盘手机App,操作更方便哦 1.如何将计算机上有限的物理内存分配给多个程序使用? 假设我们的计算机有 128 MB 内存 , 程序 A 运行需耍 …

JAVA-用HttpClient来模拟浏览器GET,POST [转]

一般的情况下我们都是使用IE或者Navigator浏览器来访问一个WEB服务器,用来浏览页面查看信息或者提交一些数据等等。所访问的这些页面有的仅仅是一些普通的页面,有的需要用户登录后方可使用,或者需要认证以及是一些通过加密方式传输&#xff0…

关于音响系统参数测试的主要参数之一: THD+N(总谐波失真加噪声)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/okobul1/article/details/46457235 电子音频设备有很多技术指标,其中有一项很重要的指标…

iPhone 实现图片的倒影

在 viewDidLoad 方法中添加以下代码 - (void)viewDidLoad { [super viewDidLoad]; [[[self view] layer] setBackgroundColor:[[UIColor blackColor] CGColor]]; UIImage *balloon [UIImage imageNamed:"b.jpg"]; CALayer *topLayer [[…

用 GDI 操作 EMF 文件[2]: PlayEnhMetaFile、DeleteEnhMetaFile

创建 EMF 文件, 并同时绘制在窗体.unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls;typeTForm1 class(TForm)Button1: TButton;procedure Button1Click(Sender: TObject);end;varForm1: TForm1;implem…

I2C总线传输协议

简介 I2C(Inter-integrated Circuit)总线支持设备之间的短距离通信,用于处理器和一些外围设备之间的接口,它只需要两根信号线来完成信息交换。I2C最早是飞利浦在1982年开发设计并用于自己的芯片上,一开始只允许100kHz、…