4.14节问题: 如何根据软盘的逻辑扇区号计算物理扇区号?

原创 2006年06月14日 14:47:00
作者:Maverick
 blog:http://blog.csdn.net/zhaohuabing  转载请注明出处

一、首先让我们看看软盘的物理结构
软盘在物理上有柱面、磁道和扇区的结构,其关系是柱面包含磁道,磁道包含扇区,扇区是计算机读取软盘的基本单位
1、柱面:软盘有两个柱面,编号为:0,1 (其实就是软盘的两面)
2、磁道:每个面划分为若干个磁道,从外向内编号:0,1,2...80
3、扇区:每个磁道划分为若干个扇区,一个磁道中扇区的编号:1,2,3...18,每个扇区的容量相同,能保存512 byte的数据。

二、然后看看扇区的编码
扇区的编号由两种,一种是物理编号,一种是逻辑编号

1、物理编号:表明扇区在软盘上的物理位置,用柱面、磁道、扇区表示,BIOS中断int 13h就是使用物理编号来确定要读的扇区位置。
2、逻辑编号:表明扇区的逻辑位置,是一个相对于起始扇区(柱面0磁道0扇区0)的序号

3、物理编号和逻辑编号的对应关系如下:
物理编号  (柱面号  磁道号 扇区号)                 逻辑编号
0柱面0磁道    0        0        1                         0 
             0        0       2                       1
                ...      ...       ...                       ...
               0        0        18                         17
1柱面0磁道    1        0        1                       18
         1        0        2                        19
                ...      ...      ...                        ...
                1        0        18                        35
0柱面1磁道    0       1        1                        28
                0        1        2                          29
                ...      ...       ...                        ...
                0        1        18                        53
1柱面1磁道    1        1        1                       54
        1      1        2                          55 
                ...     ...    ...                        ...
                1        1        18                        71
                ..................
0柱面79磁道  0        79        1
              0        79        2
               ...    ...      ...
              0     79       18
1柱面79磁道  1        79        1
              1        79        2
              ...      ...       ...                          ...
              1        79        18                         2879
可以看到,逻辑扇区编号是按照物理扇区号、物理柱面号、物理磁道号的先后顺序进行编码的,为什么要按照这个顺序进行编号呢,我想主要是为了减少磁头的移动,加快软盘的I/O速度。因为文件一般是存放在按照相邻的逻辑扇区中,按照物理扇区号、物理柱面号、物理磁道号的先后顺序对逻辑扇区进行编码,相邻的逻辑扇区在软盘的物理位置上也是相邻的(同一面或者另一面),可以减少读取同一文件式磁头的移动距离。
由上面可以得到两种编号的换算关系:
逻辑扇区号 = (磁道号 * 2 + 柱面号) * 18 + 物理扇区号 - 1

因为每一个磁道有18个扇区,而物理扇区号是在每一个磁道从0开始编号,所以物理扇区号 = 逻辑扇区号/18 的余数 + 1
因为每一个磁道有18*2个扇区,所以 磁道号 = 逻辑扇区号/(18*2) 的商 即磁道号=商>>2
   如果 逻辑扇区号/18的商是偶数,则是柱面0,如果商是奇数,则是柱面1  即柱面号=商&1

相关文章推荐

Linux中硬盘物理扇区 与文件系统文件对应关系

1               概述 系统读写文件过程中,如下面内核打印信息,报告读写某个扇区错误。那么我们如何能够通过sector找到读写哪个文件错误? kernel: end_request:...

Linux中如何读写硬盘上指定物理扇区

读指定物理扇区: dd  if=  of=   skip=  bs=512 count=1 写指定物理扇区: dd   if=   of=   seek=  bs=512 c...
  • xshalk
  • xshalk
  • 2013年12月30日 22:15
  • 6145

空间换时间--编程小绝招解决电话区号识别算法问题

空间换时间问题通常都是一个不大的问题里的一个不小的解决方案。首先要理解代码中函数的一个大致的代价,在输入比较固定,计算输出又比较费劲的时候,常常就是空间换时间发挥作用的时候了。通过几个简单的例子您就会...

关于固话区号问题

看到很多关于三位电话区号辩论的贴,总的来说就是有三位区号是一个城市多么光荣的事情,的确,在中国什么东西的比较一和数字连在一起就有大小个,在美国。纽泽西是201.华盛顿是202,圣安东尼奥可以是210....

文件系统中的逻辑块、物理块和扇区之间的关系

扇区(sector):硬件(磁盘)上的最小的操作单位,是操作系统和块设备(硬件、磁盘)之间传送数据的单位.           block由一个或多个sector组成,文件系统中最小的操作单位;OS的...

扇区 物理块 逻辑块 flash 基础概念【网络收集】

sector:硬件(磁盘)上的最小的操作单位,是操作系统和块设备(硬件、磁盘)之间传送数据的单位 block由一个或多个sector组成,是软件(OS、文件系统)中最小的操作单位;操作系统的虚拟...

扇区 物理块 逻辑块

 sector:硬件(磁盘)上的最小的操作单位,是操作系统和块设备(硬件、磁盘)之间传送数据的单位 block由一个或多个sector组成,是软件(OS、文件系统)中最小的操作单位;操...

[转载]JAVA号码工具类:实现手机固话号码判断与区号截取

工具类说明 该工具类主要是用于判断号码的类型,如果是手机类型,则返回号码前7位,便于后面继续判断号码归属地;如果是固话类型,则截取固话的区号,同样也是为了后面判断号码的归属地。 在获取到这些信...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:4.14节问题: 如何根据软盘的逻辑扇区号计算物理扇区号?
举报原因:
原因补充:

(最多只允许输入30个字)