КОЛИЧЕСТВО СЕКТОРОВ В КЛАСТЕРЕ НА ДИСКАХ РАЗНОГО ТИПА

Error message

Notice: Undefined index: add term path in hansel_get_breadcrumbs() (line 524 of /data/sites/msdosworld.ru/www/sites/all/modules/hansel/hansel.module).
------------------------------------------------------------------------
       ТИП ДИСКА                         КОЛИЧЕСТВО СЕКТОРОВ В КЛАСТЕРЕ
------------------------------------------------------------------------
Стандартная односторонняя дискета                       1
Стандартная двухсторонняя дискета                       2
Дискета уплотненного формата                            1
10-мегабайтный жесткий диск                             8
(под мини-диск диск отводится целиком)
------------------------------------------------------------------------

   Кластерам  присваиваются  номера  в  соответствии  с  их   физическим
расположением  на  диске.  Первый  кластер расположен непосpедственно за
директорием, второй - непосpедственно за первым кластером и т.д.
   На  одностронних  дискетах  номера  кластеров  возрастают  в  порядке
возрастания  номеров   сегментов.  Кластеры   последовательно  заполняют
сектора на дорожке диска. За кластером, занимающим последний сегмент  на
дорожке, следует  кластер, занимающий  первый сегмент  следующей дорожки
(рис.11-5). При этом номер кластера увеличивается на 1.
   На двухсторонней дискете нумерация производится следующим образом. На
0-ой стороне  номера кластера  возрастает в  порядке возрастания номеров
сектора. Затем кластеры начинают заполнять  дорожку с тем же номером  на
стороне  1,  и  опять  нумерация  кластеров  возрастает с ростом номеров
сегментов. Заполнив дорожку на стороне 1, кластеры продолжают  заполнять
следующую дорожку с первого  сегмента на стороне 0.  Нумерация кластеров
возрастает непрерывно (рис.11-6).
   В MS-DOS имеется два способа получения содержимого таблицы размещения
файлов.  Первый  способ  сложней  второго.  Он  обычно  используется для
маленьких дисков (менее  20 Мб памяти).  Второй способ используется  для
больших дисков.  Понять его  очень просто,  познакомившись с технологией
первого способа.
 

 

                                Сектора
   1       2       3       4       5       6       7       8       9
------------------------------------------------------------------------
|Запись|  FAT  |  FAT  |  FAT  |  FAT  |Дирек- |Дирек- |Дирек- |Дирек- |
|стаpта|копия 1|копия 1|копия 2|копия 2| торий | тоpий | тоpий | тоpий |
------------------------------------------------------------------------
                                Дорожка 0


------------------------------------------------------------------------
Кластер|Кластер|       |       |       |       |       |       |       |
   1   |   2   |   3   |   4   |   5   |   6   |   7   |   8   |   9   |
------------------------------------------------------------------------
                                Дорожка 1

------------------------------------------------------------------------
Кластер|Кластер|       |       |       |       |       |       |       |
   11  |   12  |   13  |   14  |   15  |   16  |   17  |   18  |   19  |
------------------------------------------------------------------------
                                Дорожка 2
   .................................................................

------------------------------------------------------------------------
Кластер|Кластер|       |       |       |       |       |       |       |
  344  |  345  |  346  |  347  |  348  |  349  |  350  |  351  |  352  |
------------------------------------------------------------------------
                                Дорожка 39

  Рис.11-5.  Расположение  записи  старта  системы,  таблицы размещения
файлов,  директория  диска  и  кластеров  на  стандартной  односторонней
дискете с девятью секторами на дорожке

   Из  рис.11-5  и  11-6  видно,  что на стандартных дискетах помещается
более  300  кластеров.  Каждая  запись  таблицы  размещения файлов (FAT)
должна  включать  номер  одного  из  них.  Следовательно,  длина  записи
определяется максимальным  значением номера  кластера (наибольший  номер
кластера   должен   укладываться   в   запись).  Максимальное  значение,
помещающееся  в  байте,  -   256  (интервал  значений  байта   00Н-FFH).
Следовательно, байт не подходит для использования его в качестве  записи
FAT.  Максимальное  значение,  помещающееся  в  двух  байтах,  -  65 536
(0000H-FFFFH).  Это  значение   намного  превышает  требуемое.   Поэтому
pазpаботчики  MS-DOS  решили  сэкономить  дисковую  память  и отвели под
запись  FAT  1,5  байта  памяти.  Интервал  значений  для  1.5  байтов -
000H-FFFH.   Хотя   использование   неполного   байта   непривычно   для
пользователя, все же  подход оказался удачным  - он не  очень сложен для
понимания и  прекрасно работает  на практике.  Кроме этого, максимальное
значение для 1.5 байтов - 4096, подходит для дискет уплотненного формата
(содержащих 2 371  кластер) и для  10-мегабайтных жестких дисков  (2 587
кластеров).
 

 

Сторона 0                             Сторона 1
   ------------------   ------           ------------------   ------
 1 |Запись|    |    |   |    |           |Дирек-| 9  | 18 |   |350 | 1
   |старта|Кла-|Кла-|   |Кла-|  Сектора  |торий |    |    |   |    |
   |------|стер|стер|   |стер| (малень-  |------|----|----|   |----|
 2 | FAT  | 5  | 14 | . |346 | кие квад- |Дирек-|    |    | . |    | 2
   |копия1|    |    | . |    |   раты)   |торий |Кла-|Кла-| . |    |
   |------|----|----| . |----|           |------|стер|стер| . |351-|
 3 | FAT  |    |    | . |    |           |Дирек-| 10 | 19 | . |    | 3
   |копия1|Кла-|Кла-| . |Кла-|           |торий |    |    | . |    |
   |------|стер|стер| . |стер| Кластер   |------|----|----| . |----|
 4 | FAT  | 6  | 15 | . |347 | занимает  |      |    |    | . |    | 4
   |копия2|    |    | . |    | 2 сектора | Кла- |    |    | . |    |
   |------|----|----| . |----|           |-стер-|-11-|-20-| . |352-|
 5 | FAT  |    |    | . |    |           |  2   |    |    | . |    | 5
   |копия2|    |    | . |    |           |      |    |    | . |    |
   |------|-7--|-16-| . |348-|           |------|----|----| . |----|
 6 |Дирек-|    |    | . |    |           |      |    |    | . |    | 6
   |торий |    |    | . |    |           | Кла- |    |    | . |    |
   |------|----|----| . |----|           |-стер-|-12-|-21-| . |353-|
 7 |Дирек-|    |    | . |    |           |  3   |    |    | . |    | 7
   |торий |    |    | . |    |           |      |    |    | . |    |
   |------|-8--|-17-| . |349-|           |------|----|----| . |----|
 8 |Дирек-|    |    | . |    |           |      |    |    | . |    | 8
   |торий |    |    | . |    |           | Кла- |    |    | . |    |
   |------|----|----| . |----|<--Кластер |-стер-|-13-|-22-| . |354-|
 9 |Дирек-|    |    | . |    | продолжен |  4   |    |    | . |    | 9
   |торий | 9  | 18 |   |350 | на сторо- |      |    |    |   |    |
   ------------------   ------   не 1    ------------------   ------
   Доро-  Доро- Доро-    Доро-           Доро-  Доро- Доро-    Доро-
   жка 0  жка 1 жка 2    жка 39          жка 0  жка 1 жка 2    жка 39


    Рис.11-6.  Расположение  записи  старта  системы,  таблицы размещения
файлов,  директория  диска  и  кластеров  на  стандартной  двухсторонней
дискете с девятью секторами на дорожке

   При вычислении  номера кластера  по таблице  размещения файлов первым
шагом  MS-DOS  является  получение  номера  первого кластера файла. Этот
номер  находится  в  26-27  байтах  соответствующей  записи   директория
(рис.11-7а).  Затем  вычисляется  номер  второго  кластера.  Для   этого
значение  первого  номера  умножается  на  1,5 и целая часть полученного
произведения рассматривается как адрес слова в таблице размещения файлов
(рис.11-7b). Это слово представляет собой необработанный номер  кластера
(рассчитываемый номер в неявном виде).
   Затем полученное слово  обрабатывается следующим образом.  Если номер
первого кластера  четный, то  номер следующего  кластера -  это число из
трех  младших  шестнадцатеричных  цифр  слова.  Если он был нечетным, то
номер  следующего   кластера  состоит   из  трех   старших  цифр   слова
(рис.11-7c).
   Чтобы найти номер следующего  кластера, номер второго кластера  опять
умножается на 1,5. Затем по адресу, равному целой части произведения, из
таблицы выбирается  слово и  обрабатывается аналогичным  образом:   если
номер  второго  кластера  четный,  отбрасывается  старшая  цифра,   если
нечетный  -  младшая.  Полученное  шестнадцатеричное  число из трех цифр
принимается за номер следующего кластера.
   Этот процесс  повторяется до  тех пор,  пока полученное  в результате
число не попадет в интервал значений FF8-FFF. Номера с этими  значениями
обозначают последний кластер  файла. Не пугайтесь  запутанности процесса
вычислений. При рассмотрении примера, приведенного в следующем  разделе,
все встанет на свои места.
   Процедура  вычисления  номера  кластера  на  дисках с большой памятью
аналогична рассмотренной. На большом  диске помещается 4 096  кластеров,
поэтому запись таблицы размещения не  может состоять из 1,5 байтов.  Под
нее отводится 2 байта. Номер первого кластера считывается из  директория
и  затем  увеличивается  вдвое.  Произведение  рассматривается как адрес
следующего кластера внутри таблицы. То есть слово (2 байта) с полученным     
результатом  представляет  собой  номер  следующего  кластера.  Первым в
таблице записан младший байт, вторым - старший.
 

 


                            ДИРЕКТОРИЙ
                 |-------------------|-|--------|
                 0                  26 27       31
                 ||

         (A) В 26 и 27 байте хранится номер первого кластера

                     ТАБЛИЦА РАЗМЕЩЕНИЯ ФАЙЛОВ
                               YY'  XX'
               |-------------------|---|-----------|
               0                   *
               ||
                 номерами кластеров


   (B)  Номер  первого  кластера  х  1,5  =  произведению.  Целая  часть
произведения - это адрес в FAT, где хранится номеp втоpого кластеpа (*).

         СЛОВО, ВЫБИРАЕМОЕ ПО ПОЛУЧЕННОМУ АДРЕСУ В FAT = XX'YY'

Номер 2-го кластера = XX'Y  
Вы находитесь в разделе: 

Добавить коментарий