操作系统——如何求磁盘的物理地址

如何求磁盘的物理地址

概念:

磁盘上的物理地址一般用:柱面号,盘面号,扇区号(或者块号)表示

操作系统——如何求磁盘的物理地址_第1张图片

1、柱面:我理解为其实就是一个盘片的一面,每个盘面有自己的编号。

2、扇区:将盘片分为若干个扇形区域,每一个区域有自己的编号。

3、磁道:在盘片的一个圆环就是一个磁道,从内到外或者从外到内编号。

通过柱面,扇区,磁道这样划分,一个磁盘的盘片可以分为若干个物理块,然后这样的盘片(柱面)又不止一个,

这就是我们外存存放数据的方式。

如何将一个内存中的簇号来转化为磁盘上的物理地址:

将簇号转化为磁盘物理地址的过程由磁盘驱动程序完成。

假设内存的簇号为b,则:

柱面号: 簇号/每个柱面的簇数——结果向下取整

分析:给出的簇号可以当做物理块的总数,所求柱面号就是判断簇号第几个盘片上,则需除以每个盘片的总物理块数,结果是向上取整,因为多出来的小数代表需要多用一块盘片来装。

磁头号: (簇号%每个柱面的簇数)/每个磁道的簇数——结果向下取整

分析:一个磁道代表一个圆环,也就是一圈,然后一圈上的物理块的个数是根据分的扇区个数来决定的。给出的簇号同样当成物理块的总数,所求的磁头号可以认为簇号在一个柱面的哪一个磁道上,则需除以一个柱面的所有物理块取余(得到他剩下的物理块),然后再除以一个磁道的物理块数,来判断簇号在哪一个圆环上,结果依旧向下取整。

扇区号: 扇区地址(簇号)%每个磁道的扇区数

分析:所求扇区号可以认为簇号在一个柱面的一个磁道的哪一个扇形的区域上。由于我们之前得到了柱面号和磁头号。我们就确定了所求簇号在哪一个盘片的哪一个磁道上(也就是哪一个圆环上),现在需要求出扇区号来得到他最后的位置,则可以用簇号(所求物理块总数)对一个磁道上的所有物理块总数取余。

位置,则可以用簇号(所求物理块总数)对一个磁道上的所有物理块总数取余。

这样我们就确定了一个簇号在磁盘上的具体位置了。


如果你觉得这篇文章对您有帮助的话,麻烦帮我点个点个赞关注一下吧,创作不易,有你的支持才是我前进的动力~

你可能感兴趣的:(操作系统,操作系统)