Системное программное обеспечение
.pdfСистемная область логического диска создается и инициализируется при формиро вании, а впоследствии обновляется при манипулировании файловой структурой. Область данных логического диска содержит файлы и каталоги, подчиненные корневому. Она, в отличие от системной области, доступна через пользовательский интерфейс ОС.
Системная область состоит из следующих компонентов, расположенных в логиче ском адресном пространстве подряд:
загрузочной записи (boot record; BR);
зарезервированных секторов (reserved sector, ResSecs);
таблицы размещения файлов (file allocation table, FAT);
корневого каталога (root directory, RDir).
9.7.1.Таблица размещения файлов
Таблица размещения файлов является очень важной информационной структурой. Можно сказать, что она представляет собой карту (образ) области данных, в которой опи сывается состояние каждого участка области данных. Область данных разбивают на так называемые кластеры. Кластер представляет собой один или несколько смежных секторов в логическом дисковом адресном пространстве (точнее – только в области данных). В та блице FAT кластеры, принадлежащие одному файлу, связываются в цепочки. Для указа ния номера кластера в системе управления файлами FAT16 используется 16-битовое сло
во, следовательно, можно иметь до 216 = 65536 кластеров (с номерами от 0 до 65536).
Кластер – это минимальная адресуемая единица дисковой памяти, выделяемая файлу (или некорневому каталогу). Файл или каталог занимает целое число кластеров. Последний кластер при этом может быть задействован не полностью, что приведет к за метной потере дискового пространства при большом размере кластера. На дисках кластер занимает один или два сектора, а на жестких дисках – в зависимости от объема раздела (табл. 9.1)
|
|
|
|
Таблица 9.1 |
|
|
Соотношения между размером раздела и размером кластеров в FAT16 |
||||
|
Емкость раздела, Мбайт |
Количество секторов в кла |
|
Размер кластеров, Кбайт |
|
|
|
|
|||
|
|
стере |
|
|
|
|
16-127 |
4 |
|
2 |
|
|
128-255 |
8 |
|
4 |
|
|
256-511 |
16 |
|
8 |
|
|
512-1023 |
32 |
|
16 |
|
|
1024-2047 |
64 |
|
32 |
|
Логическое разбиение области данных на кластеры как совокупности секторов вза мен использования одиночных секторов имеет следующий смысл: прежде всего, уменьша ется размер самой таблицы FAT; уменьшается возможная фрагментация файлов; ускоря ется доступ к файлу, так как в несколько раз длина цепочек фрагментов дискового про странства, выделенных для него.
51
00
10
Однако слишком большой размер кластера ведет к неэффективному использованию области данных, особенно в случае большого количества маленьких файлов, так как в среднем на каждый файл теряется около половины кластера. Поэтому в современных файловых системах HPFS, NTFS, FAT32 размеры кластеров ограничиваются (обычно – от 512 байт до 4 Кбайт). В FAT32 проблема решается за счет того , что собственно сама FAT
в этой файловой системе может содержать до 228 кластеров.
Идея файловой системы с использованием таблицы размещения файлов FAT проиллюстрирована на рис. 9.3
На этом рисунке показано, что файл с именем MYFILE.TXT размещается, начиная с восьмого кластера. Всего файл MYFILE.TXT занимает 12 кластеров. Цепочка кластеров для этого примера может быть записана следующим образом: 8, 9, 0А, 0В, 15, 16, 17, 19, 1А, 1В, 1C, 1D. Кластер с номером 18 помечен специальным кодом F7 как плохой (bad), он не может быть использован для размещения данных. При формировании обычно про веряется поверхность магнитного диска, и те секторы, при контрольном чтении с которых происходили ошибки, помечаются в FAT как плохие. Кластер 1D помечен кодом FF как конечный (последний в цепочке кластер, принадлежащий данному файлу). Свободные (незанятые) кластеры помечаются кодом 00; при выделении нового кластера для записи файла берется первый свободный кластер.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
начальный номер кластера |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
MYFILE.TXT |
|
|
|
|
|
|
|
|
|
Time |
|
|
|
|
Date |
|
|
|
|
|
08 |
|
|
|
|
Size |
|
|
|
|
|||||||||||
00 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
01 |
|
|
02 |
|
03 |
|
04 |
|
05 |
|
06 |
|
|
07 |
|
08 |
|
|
09 |
|
0А |
|
|
0B |
|
0C |
|
|
0D |
|
|
0E |
|
|
0F |
|||||||||||
1D |
|
FF |
|
|
03 |
|
04 |
|
05 |
|
FF |
|
00 |
|
|
00 |
|
09 |
|
|
|
0A |
|
0B |
|
|
15 |
|
00 |
|
|
00 |
|
|
00 |
|
|
|
00 |
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
00 |
|
00 |
|
|
00 |
|
00 |
|
00 |
|
16 |
|
17 |
|
|
19 |
|
1D |
|
|
1A |
|
1B |
|
|
1C |
|
1D |
|
|
|
FF |
|
|
00 |
|
|
|
00 |
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Рис. 9.3 Основная концепция FAT.
Поскольку файлы на диске изменяются – удаляются, перемещаются, увеличивают ся или уменьшаются – то упомянутое правило выделения первого свободного кластера для новой порции данных приводит к фрагментации файлов, то есть данные одного файла могут располагаться не в смежных кластерах, а порой в очень удаленных друг от друга, образуя сложные цепочки. Естественно, что это приводит к существенному замедлению работы с файлами.
Так как FAT используется при доступе к диску очень интенсивно, она обычно за гружается в ОЗУ (в буфера ввода/вывода или кэш) и остается там настолько долго, на сколько это возможно.
В связи с чрезвычайной важностью FAT она обычно хранится в двух идентичных экземплярах, второй из которых непосредственно следует за первым. Обновляются копии
52
FAT одновременно. Используется же только первый экземпляр. Если он по каким-либо причинам окажется разрушенным, то произойдет обращение ко второму экземпляру.
Структура системы файлов FAT является иерархической, то есть элементом катало га может быть такой файл, который сам, в свою очередь, является каталогом.
9.7.2. Файловые системы VFAT и FAT32.
Одной из важнейших характеристик исходной FAT было использование имен файлов формата «8.3», в котором 8 символов отводится на указание имени файла и 3 сим вола – для расширения имени. К стандартной FAT (имеется ввиду прежде всего реализа ция FAT16) добавились еще две разновидности, используемые в широко распространен ных операционных системах Microsoft (конкретно – в Windows95 и WindowsNT): VFAT (виртуальная FAT) и FAT32, используемая в одной из редакций ОС Windows95 и Win dows98.
Ныне эта файловая система (FAT32) поддерживается и такими ОС, как Windows Millennium Edition, и всеми ОС семейства Windows 2000. Имеются реализации систем управления файлами FAT32 для WindowsNT и ОС Linux.
Файловая система VFAT впервые появилась в Windows for Workgroups 3.11 и была предназначена для выполнения файлового ввода/вывода в защищенном режиме. С выхо дом Windows95 в VFAT добавилась поддержка длинных имен файлов. Тем не менее, VFAT сохраняет совместимость с исходным вариантом FAT; это означает, что, наряду с длинными именами, в ней поддерживаются имена формата 8.3,а также существует специ альный механизм для преобразования имен «8.3» в длинные имена и наоборот. При рабо те с VFAT крайне важно использовать файловые утилиты, поддерживающие VFAT вооб ще и длинные имена в частности. Дело в том, что более ранние файловые утилиты DOS запросто модифицируют то, что кажется им исходной структурой FAT. Это может приве сти к потере или порче длинных имен из таблицы VFAT.
Основными недостатками файловых систем FAT и VFAT являются большие потери на кластеризацию при больших размерах логического доска и ограничения на сам размер логического диска. Это привело к разработке новой реализации файловой системы с ис пользованием той же идеи использования таблицы FAT. Таким образом в Windows95 OSR2 (OEM Servise Releasez) на смену системе VFAT пришла файловая система FAT32. FAT32 является полностью самостоятельной 32-разрядной файловой системой и содержит многочисленные усовершенствования и дополнения по сравнению с предыдущими реали зациями FAT.
Принципиальное отличие заключается в том, что FAT32 намного эффективнее рас ходует дисковое пространство. Прежде всего, система FAT32 использует кластеры мень шего размера по сравнению с предыдущими версиями, которые ограничивались 65535 кластерами на логический диск. Следовательно, даже для дисков размером 8 Гбайт FAT32 может использовать 4-килобайтные кластеры. В результате, по сравнению с дисками FAT16, экономится значительное дисковое пространство (в среднем 10-15%).
FAT32 также может перемещать корневой каталог и использовать резервную ко пию FAT вместо стандартной. Расширенная загрузочная запись FAT32 позволяет созда вать копии критических структур данных; это повышает устойчивость дисков FAT32 к на
53
рушениям структуры FAT по сравнению с предыдущими версиями. Корневой каталог в FAT32 представлен в виде обычной цепочки кластеров. Следовательно, корневой каталог может находится в произвольном месте диска , что снимает действовавшее ранее ограни чение на размер корневого каталога (512 элементов).
9.8. Файловая система HPFS
Сокращение HPFS расшифровывается как High Performance File System - высоко производительная файловая система. HPFS впервые появилась в OS/2 1.2 и LAN Manager. HPFS была разработана совместными усилиями лучших специалистов компаний IBM и Microsoft на основе опыта IBM по созданию файловых систем MVS, VM/CMS и виртуаль ного метода доступа.
Принципы размещения файлов на диске, положенные в основу HPFS, увеличивают как производительность файла системы, так и ее надежность и отказоустойчивость. Для достижения этих целей предложено несколько методов: размещение каталогов в середине дискового пространства, использование методов бинарных сбалансированных деревьев для ускорения поиска информации о файле, рассредоточение информации о местоположе нии записей файлов по всему диску, при том, что записи каждого конкретного файла раз мещаются (по возможности) в смежных секторах и поблизости от данных об их местопо ложении. Файловая система HPFS стремится, прежде всего, к тому, чтобы расположить файл в смежных кластерах, или, если такой возможности нет, расширить его на диске та ким образом, чтобы фрагменты файла физически были как можно ближе друг к другу. Та кой подход существенно уменьшает время позиционирования головок чтения/записи жесткого диска и время ожидания – задержки между установкой головки чтения/записи на нужную дорожку диска и началом чтения данных с диска (эта задержка обусловлена тем, что система вынуждена ждать. Пока диск не повернется таким образом, что нужный сек тор окажется под головкой чтения/записи).
Можно сказать, что файловая система HPFS имеет по сравнению с FAT следующие основные преимущества: высокую производительность; надежность; работа с расширен ными атрибутами, что позволяет управлять доступом к файлам и каталогам; Эффективное использование дискового пространства.
9.9. Файловая система NTFS (New Technology File System).
NTFS содержит ряд значительных усовершенствований и изменений, существенно отличающих ее от других файловых систем. При проектировании системы NTFS особое внимание было уделено следующим характеристикам:
- Надежность. Высокопроизводительные компьютеры и системы совместного поль зования (серверы) должны обладать повышенной надежностью, которая является ключе вым элементом структуры и поведения NTFS. Одним из способов увеличения надежности является введение механизма журналирования файловых операций. При журналировании файловых операций система УФ фиксирует в специальном служебном файле происходя щие изменения. В начале операции, связанной с изменением файловой структуры, делает ся соответствующая пометка. Если во время операций над файлами происходит какой-ни будь сбой, то упомянутая отметка о начале операции остается указанной как незавершен ная. При выполнении процедуры проверки целостности файловой системы после переза
54
грузки машины эти незавершенные операции будут отмечены, и файлы будут приведены к исходному состоянию. Если же операция изменения данных в файлах завершается нор мальным образом, то в этом самом служебном файле поддержки журналирования опера ция отмечается как завершенная.
-Расширенная функциональность. NTFS проектировалась с учетом возможного расширения. В ней были воплощены многие дополнительные возможности – эмуляция других файловых систем, мощная модель безопасности, параллельная обработка потоков данных и создание файловых атрибутов, определяемых пользователем.
-Поддержка POSIX. К числу базовых средств файловой системы POSIX относится необязательное использование имен файлов с учетом регистра, хранение времени послед него обращения к файлу и механизм т.н. «жестких ссылок» - альтернативных имен, позво ляющих ссылаться на один и тот же файл по двум и более именам.
-Гибкость. Модель распределения дискового пространства в NTFS отличается чрезвычайной гибкостью. Размер кластера может изменяться от 512 байт до 64 кбайт: NTFSподдерживает длинные имена файлов и альтернативные имена формата 8.3 для сов мещения с FAT. NTFS превосходно справляется в обращением больших массивов дан ных. Количество файлов в корневом и некорневом каталогах не ограничено. Поскольку в основу структуры каталогов NTFS заложена эффективная структура данных , называемая «бинарным деревом», время поиска файлов в NTFS ( в отличие от систем на базе FAT )не связано линейной зависимостью с их количеством.
55