计算机原理探险系列(四)-- 磁盘存储探秘

本文详细探讨了计算机底层磁盘读取过程,包括磁盘布局、寻道时间、旋转延迟、DMA技术,以及Linux文件系统如ext2的Inode结构、硬连接与软连接。重点讲解了顺序读写与随机读写的性能差异及优化策略。

各位读者朋友们大家好,今天我们一起来聊聊关于计算机底层磁盘的读取原理。

磁盘的基本布局

磁盘的基本结构主要包含有以下几点,磁盘盘片,读写磁盘的指针,传动轴,主轴等。

图片

每次用户程序从用户态发送一条指令给到操作系统内核,进行io读取数据的时候,cpu的ring3级别内核便会通过io总线发送一个指令给到读写磁头,然后由读写磁头定位到盘片的指定位置进行数据读写。最后再通过io总线将数据返回给到用户态的程序中。

下边是一张磁盘盘面的大致结构图:

在这里插入图片描述

在磁盘的盘面上通常会布有许多层的磁道,可以理解为图中的同心圆,然后每层磁道上分有不同范围的扇区,数据存储落在这些扇区的范围当中。磁盘指针头通常会落在盘道的一个位置点,然后朝一定方向旋转进行数据的搜索。

内围的磁道数据其实和外围的磁道数据是一样多的,这也就意味着外围的数据密度要比内围的小很多。现如今采用了区位记录的技术,保证了内围的磁道要比外围的磁道少,保证了密度的均匀性
影响磁盘指针定位数据的性能因素

寻道时间
磁盘指针定位到指定的盘道耗时
旋转延迟
指针定位到盘道之后进行旋转读取数据
数据传输
从内核态将数据传输给到用户态的耗时

通常技术人员会通过这么一条公式来推算一块磁盘的读写性能:

iops 指标:磁盘的每秒数据输入输出量,计算思路:1000ms / (数据寻道时间 + 旋转延迟时间 + 数据传输时间) 。

如今的硬件技术开始支持一些分散聚合DMA技术,能够支持将一些原先不连续的磁道数据进行组合读取,效率性更高。由于这种设备支持的磁道信息并不是一定连续的,所以有一个新的概念叫做段。
图片

磁盘毕竟是一个物理硬件层面的东西,那么早期的发明家则通过了一些抽象的概念在程序中对磁盘做访问。下边我们来介绍下经典的文件系统设计。

文件存储

在linux操作系统中,常说的一句话就是“一切皆文件“。
文件系统更像是一周抽象化的数据结构设计,其主要分为了两大模块,inode区和数据区。下边的文章我主要以

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值