硬盘的存储机制

硬盘的基本单位是扇区,每个扇区一般大小为512字节。一个硬盘一般有2个盘片,每个盘片分为65536个磁道,每个磁道分为1024个扇区,那么硬盘的容量就是2*2*65536*1024*512=128GB。但是由于磁道周长的不同,所以每个磁道的扇区密度肯定不同。靠近盘面外围的磁道密度肯定比内圈更加稀疏,这样是比较浪费空间的,但是如果不同的磁道扇区又不一同,计算起来就十分的麻烦。为了屏蔽这些细节,现代的磁盘普遍使用一种叫做LBA(logical Block Address)的方式,即整个磁盘中所有的扇区从0开始编号,一直到最后一个扇区,这个扇区的编号叫做逻辑的扇区号。

比如我们有一个文件test.dat 在目录/home/user/test.dat,长度为8000字节。系统访问这个文件的过程大致是如下的。

下面大概讲一下我自己的理解,首先讲一下如何保存文件,写文件这件事为一个进程,进程中有文件描述符,比如我们打开了test.dat这个文件,此时在内存中尉这个文件描述符开辟一定的缓存空间,比如从内存的0x064开始的256字节的缓存空间,当缓存空间存满数据是像操作系统发出中断信号,操作系统调用写系统调用函数,写系统调用函数调用磁盘写程序,打开I/O端口地址,I/O驱动程序检查I/O设备然后按照存储策略,找到一片空闲的空间存储此数据,比如从第8个磁道存储数据。若此时关闭写进程,则此进程终止,关闭文件操作符。


当操作系统读取这个文件时,先调用系统函数读取到此文件的位置,因为内存是按页管理的,一个页面的大小一般为4k,操作系统知道文件时从第8个磁道开始的,然后调用I/O讲磁盘中的内容读取到内存中,内存是和cache打交道的。



先写到这吧,实在是有好多不明白的地方。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值