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

物理扇区和逻辑扇区(相对扇区)的关系

物理扇区(就是磁盘里的扇区划分):分为柱面(也就是磁道,竖着一摞,同一条上的磁道就是柱面了),磁头(也叫盘面),扇区。 柱面、磁头、扇区都有按数字编号,柱面号和磁头号从0开始,扇区号从1开始,假定划...
  • hhdfh
  • hhdfh
  • 2016年06月05日 19:20
  • 2242

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

原文链接:文件系统中的逻辑块、物理块和扇区之间的关系 扇区(sector):硬件(磁盘)上的最小的操作单位,是操作系统和块设备(硬件、磁盘)之间传送数据的单位。          ...
  • sinat_25457697
  • sinat_25457697
  • 2015年02月10日 10:50
  • 3237

软盘结构(磁头号和起始扇区的计算方法)

 软盘结构(磁头号和起始扇区的计算方法)刺猬@http://blog.csdn.net/littlehedgehog;-----------------------------------------...
  • littlehedgehog
  • littlehedgehog
  • 2008年03月04日 20:14
  • 7425

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

作者:Maverick blog:http://blog.csdn.net/zhaohuabing  转载请注明出处一、首先让我们看看软盘的物理结构软盘在物理上有柱面、磁道和扇区的结构,其关系是柱面包...
  • zhaohuabing
  • zhaohuabing
  • 2006年06月14日 14:47
  • 4207

Advanced Format (4K扇区) 磁盘

Advanced Format是一个相对较新的磁盘格式标准,4K分区是其中的核心。由于向下兼容的需要,大多数4K分区磁盘模拟512B分区。若分区不对齐,将会带来明显的性能影响。所以,分区对齐至关重要。...
  • for_tech
  • for_tech
  • 2017年09月13日 17:05
  • 523

磁头号和起始扇区的计算方法------软盘结构

最近在看《自已动手写操作系统》这本书,读到第四章关于从软盘读取文件一节时一开始不能理解,特别是看不懂书中所附的源代码。经过自己查询软盘结构资料,通过本文对自己软盘的磁头号、磁道号和起始扇区与扇区之转换...
  • judyge
  • judyge
  • 2016年08月28日 08:00
  • 657

软盘磁头号/柱面号/扇区号与起始扇区转换

最近在看《自已动手写操作系统》这本书,读到第四章关于从软盘读取文件一节时一开始不能理解,特别是看不懂书中所附的源代码。经过自己查询软盘结构资料,通过本文对自己软盘的磁头号、磁道号和起始扇区与扇区之转换...
  • weixin_38067056
  • weixin_38067056
  • 2017年06月17日 12:16
  • 197

逻辑扇区物理扇区编辑工具Sectedit

  • 2011年08月08日 15:58
  • 52KB
  • 下载

不同WINDOWS平台下磁盘逻辑扇区的直接读写

不同WINDOWS平台下磁盘逻辑扇区的直接读写  关键字:VWIN32、中断、DeviceIoControl  一、概述   在DOS操作系统下,通过BIOS的INT13、DOS的INT25(绝对读)...
  • mao0514
  • mao0514
  • 2015年04月29日 10:48
  • 2532

用逻辑扇区号读写软盘的中断例程测试程序

王爽汇编语言 实验17 中断例程测试程序  一、实验要求      测试实验17中断例程 二、测试思路1、编写程序A,实现将显存中第一屏4000个字节(8个扇区)写入软盘2、编写程序B,实现将软盘中8...
  • lingdushanke
  • lingdushanke
  • 2010年03月30日 16:12
  • 724
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:4.14节问题: 如何根据软盘的逻辑扇区号计算物理扇区号?
举报原因:
原因补充:

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