Программирование и кодирование
MS-DOS и несколько файлов копируются на этот диск, информация,по-
мещенная в секторах таблицы FAT, используется операционной систе-
мой MS-DOS для определения адреса каждой части файла. Обращение к
файлам идет через таблицу FAT в единицах "кластер". Файл всегда
занимает, по крайней мере, один кластер, а , если он достаточно
велик, занимает несколько кластеров. Кластер в действительности
является частью распределения и состоит из одного сектора данных
на односторонних гибких дисках и двух секторов данных на двухсто-
ронних гибких дисках. Некоторые жесткие диски используют класте-
ры, каждый из которых состоит из восьми секторов. Вся область
хранения данных на диске (за исключением области для данных по
- 11-39 -
начальной загрузке таблицы FAT. На рисунках 11-5 и 11-6 показано,
как одно- и двухсторонние 4-трековые гибкие диски с 8-секторным
и 9-секторным форматами отображаются в виде кластеров. На рисунке
11-7 показано отображение 80-трекового гибкого диска повышенной
плотности записи.
Формат расположения восьми Формат расположения девяти
секторов на треке секторов на треке
ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД¬ ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД¬
¦ \ Трек ¦ ¦ \ Трек ¦
¦ \ ¦ ¦ \ ¦
¦ \ 0 1 2 ... 39 ¦ ¦ \ 0 1 2 ... 39 ¦
¦CекторЪДДДДДДДДДДДДДДДДДДДДДДДґ ¦CекторЪДДДДДДДДДДДДДДДДДДДДДДДґ
¦ 1 ¦ Начальная 3 11 ¦ ¦ 1 ¦ Начальная 2 11 ¦
¦ ¦ загрузка ... . ¦ ¦ ¦ загрузка ... . ¦
¦ 2 ¦ FAT 1 4 12 ... . ¦ ¦ 2 ¦ FAT 1 3 12 ... . ¦
¦ 3 ¦ FAT 2 5 13 ... 309¦ ¦ 3 ¦ FAT 1 4 13 ... 346¦
¦ 4 ¦ Каталог 6 14 ... 310¦ ¦ 4 ¦ FAT 2 5 14 ... 347¦
¦ 5 ¦ Каталог 7 15 ... 311¦ ¦ 5 ¦ FAT 2 6 15 ... 348¦
¦ 6 ¦ Каталог 8 16 ... 312¦ ¦ 6 ¦ Каталог 7 16 ... 349¦
¦ 7 ¦ Каталог 9 . ... 313¦ ¦ 7 ¦ Каталог 8 17 ... 350¦
¦ 8 ¦ 2 10 . ... 314¦ ¦ 8 ¦ Каталог 9 . ... 351¦
АДДДДДДБДДДДДДДДДДДДДДДДДДДДДДДЩ ¦ 9 ¦ Каталог 10 . ... 352¦
АДДДДДДБДДДДДДДДДДДДДДДДДДДДДДДЩ
Рис. 11-5. Число кластеров на односторонних 40-трековых
гибких дисках
Отметим, что на предыдущих рисунках сектора таблицы FAT были
пронумерованы либо номером 1, либо номером 2. Они обозначены так
потому, что разработчики файловой операционной системы MS-DOS ре-
зервировали в два раза больше секторов таблицы FAT, чем действи-
тельно требуется для отображения диска. Возможной причиной такой
разработки было желание предусмотреть пространство для расширения
таблицы FAT с увеличением емкости гибких дисков. В версиях опера-
ционной системы MS-DOS вплоть до 3.3, однако, дополнительный на-
бор секторов используется для размещения точной копии первого на-
бора секторов таблицы FAT. При наличии избыточных наборов таблиц
FAT можно быть спокойным за них, если вдруг по какой-либо причине
будет разрушен первый набор. Восстановление разрушенной таблицы
FAT может быть очень трудным делом. При восстановлении файла, од-
нако, вы обычно обязаны обращаться только к первой таблице FAT.
Каждый кластер на диске имеет соответствующий ему элемент
таблицы FAT. Элемент таблицы FAT, который соответствует первому
кластеру файла, содержит номер следующего кластера занятого тем
же файлом. Если посмотреть на элемент таблицы FAT соответствующий
этому "следующему" кластеру, мы обнаружим, что либо был достигнут
конец файла, либо элемент содержит номер еще одного кластера, за-
нятого файлом. Таким образом, элементы таблицы FAT в действитель-
ности содержат указатели как кластеры, занятые файлом, так и на
последующие элементы таблицы FAT, которые соответствуют дополни-
тельным кластерам, занятым тем же файлом. Поскольку общее число
элементов в секторах таблицы FAT превышает общее число кластеров
на диске весь диск легко может быть отображен даже тогда, когда
максимально использована емкость его памяти.
- 11-40 -
Формат расположения восьми
секторов на треке
ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД¬
¦ \ Трек ¦
¦ \ ¦
¦ \ 0 1 2 ... 39 ¦
¦ Cектор ЪДДДДДДДДДДДДДДДДДДДДДДДґ
¦ 1 ¦ Начальная 5 13 ¦
¦ ¦ загрузка ... . ¦
¦ 2 ¦ FAT 1 ¦
¦ 3 ¦ FAT 2 6 14 ... . ¦
¦ Сторона 4 ¦ Каталог ¦
¦ 0 5 ¦ Каталог 7 15 ... 311¦
¦ 6 ¦ Каталог ¦
¦ 7 ¦ Каталог 8 16 ... 312¦
¦ ________8 ¦ Каталог ¦
¦ 1 ¦ Каталог 9 16 ... 313¦
Начало ¦ 2 ¦ Каталог ¦
секторов ДДДДДДДДДД> 3 ¦ 2 10 18 ... 314¦
данных ¦ 4 ¦ ¦
¦Сторона 5 ¦ 3 11 19 ... 315¦
¦ 1 6 ¦ ¦
¦ 7 ¦ 4 12 . ... 316¦ Конец
¦ 8 ¦ . ¦
АДДДДДДДДДДДДДБДДДДДДДДДДДДДДДДДДДДДДДЩ
Формат расположения девяти
секторов на треке
ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД¬
¦ \ Трек ¦
¦ \ ¦
¦ \ 0 1 2 ... 39 ¦
¦ Cектор ЪДДДДДДДДДДДДДДДДДДДДДДДґ
¦ 1 ¦ Начальная 5 14 ¦
¦ ¦ загрузка ... . ¦
¦ 2 ¦ FAT 1 ¦
¦ 3 ¦ FAT 1 6 15 ... . ¦
¦ Сторона 4 ¦ FAT 2 ¦
¦ 0 5 ¦ FAT 2 7 16 ... 349¦
¦ 6 ¦ Каталог ¦
¦ 7 ¦ Каталог 8 17 ... 350¦
¦ 8 ¦ Каталог ¦
¦ ________9 ¦ Каталог 9 18 ... 351¦
¦ 1 ¦ Каталог ¦
¦ 2 ¦ Каталог 10 19 ... 352¦
Начало ¦ 3 ¦ Каталог ¦
секторов ДДДДДДДДДД> 4 ¦ 2 11 20 ... 353¦
данных ¦ 5 ¦ ¦
¦ Сторона 6 ¦ 3 12 . ... 354¦
¦ 1 7 ¦ ¦ Конец
¦ 8 ¦ 4 13 . ... 355¦
¦ 9 ¦ ¦
АДДДДДДДДДДДДДБДДДДДДДДДДДДДДДДДДДДДДДЩ
Рис. 11-6. Число кластеров на двухсторонних 40-трековых
гибких дисках
- 11-41 -
На рисунках 11-5, 11-6 и 11-7 нумерация кластеров начинается
с цифры 2. Это делается потому, что кластеры нумеруются также,
как элементы таблицы FAT (что позволяет вести их быстрый поиск в
таблице FAT ), а элементы 0 и 1 таблицы FAT используются для дру-
гих целей. Для собирания зарезервированных элементов таблицы FAT
кластеры нумеруются, начиная с числа 2 и продолжаются до послед-
него элемента таблицы FAT минус 1. Поскольку секторы начальной
загрузки, таблицы FAT и каталога не имеют номеров кластеров,
кластер N2 содержит первый сектор (секторы) данных на диске. При-
мер на рисунке 11-8 демонстрирует то, как можно вести обращение к
элементам таблицы FAT.
Формат расположения пятнадцати
секторов на треке
ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД¬
¦ \ Трек ¦
¦ \ ¦
¦ \ 0 1 2 ... 79 ¦
¦ Cектор ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ
¦ 1 ¦ Начальная 3 33 ... . ¦
¦ ¦ загрузка 34 ¦
¦ 2 ¦ FAT 1 4 35 ... . ¦
¦ 3 ¦ FAT 1 5 36 1166¦
¦ 4 ¦ FAT 1 6 37 ... 1167¦
¦ 5 ¦ FAT 1 7 38 1168¦
¦ 6 ¦ FAT 1 8 39 ... 1169¦
¦ Сторона 7 ¦ FAT 1 9 40 1170¦
¦ 0 8 ¦ FAT 1 10 . ... 1171¦
¦ 9 ¦ FAT 2 11 . 1172¦
¦ 10 ¦ FAT 2 12 . ... 1173¦
¦ 11 ¦ FAT 2 13 . 1174¦
¦ 12 ¦ FAT 2 14 . ... 1175¦
¦ 13 ¦ FAT 2 15 . 1176¦
¦ 14 ¦ FAT 2 16 . 1177¦
¦ _______15 ¦ FAT 2 17 . ... 1178¦
¦ 1 ¦ Каталог 18 . 1179¦
¦ 2 ¦ Каталог 19 . ... 1180¦
¦ 3 ¦ Каталог 20 . 1181¦
¦ 4 ¦ Каталог 21 . ... 1182¦
¦ 5 ¦ Каталог 22 . 1183¦
¦ 6 ¦ Каталог 23 . ... 1184¦
¦ 7 ¦ Каталог 24 . 1185¦
¦ Сторона 8 ¦ Каталог 25 . ... 1186¦
¦ 1 9 ¦ Каталог 26 . 1187¦
¦ 10 ¦ Каталог 27 . ... 1188¦
¦ 11 ¦ Каталог 28 . 1189¦
¦ 12 ¦ Каталог 29 . ... 1190¦
¦ 13 ¦ Каталог 30 . 1191¦
Начало ¦ 14 ¦ Каталог 31 . ... 1192¦
секторов ДДДДДДДДДД>15 ¦ 2 32 . 1193¦
данных АДДДДДДДДДДДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ
Рис. 11-7. Число кластеров на двухсторонних 80-треко-
вых гибких дисках