Гордеев А.В. Операционные системы (2-е изд., 2004) (1186250), страница 44
Текст из файла (страница 44)
В MS DOS, OS/2, Windows 95/98/ME, Windows NT/2000/XP, Linux, FreeBSD и других можно работать с файлами,организованными по принципам FAT. Однако программные модули соответствующих систем управления файлами не взаимозаменяемы. Кроме того, все эти системы управления файлами имеют свои индивидуальные особенности и ограничения. Иногда только из контекста ясно, о чем идет речь — о принципах работыфайловой системы или о ее конкретной реализации. Другими словами, для работыс файлами, организованными в соответствии с некоторой файловой системой, длякаждой операционной системы должна быть разработана соответствующая система управления файлами; и эта система управления файлами будет работать только в той операционной системе, для которой она и создана.
Таким образом, файловая система — это множество именованных наборов данных, организованное попринятым спецификациям, которые определяют способы получения адреснойинформации, необходимой для доступа к этим файлам.1аким образом, термин файловая система определяет, прежде всего, принципыДоступа к данным, организованным в файлы.
Тот же термин используют и по отношению к конкретным файлам, расположенным на том или ином носителе данных. А термин система управления файлами следует употреблять по отношениюк конкретной реализации файловой системы, то есть это — комплекс программых модулей, обеспечивающих работу с файлами в конкретной операционной системе.нформация, с которой работает человек, обычно структурирована. Это, преждеего , позволяет более эффективно организовать хранение данных, облегчает ихск. предоставляет дополнительные возможности в именовании. Аналогично,4ис то 1 о„ " " в имени этой файловой системы означает, что для указания адреса данных, составляющихИ л Ис' гюльзуется 12 двоичных разрядов.166Глава 6 .
Файловые системми при работе с файлами желательно ввести механизмы структурирования. Прощ евсего организовать иерархические отношения. Для этого достаточно ввести понятие каталога (directory). Каталог содержит информацию о данных, организованных в виде файлов. Другими словами, в каталоге должны содержаться дескрипторы файлов. Если файлы организованы на блочном устройстве, то именно с помощьюкаталога система управления файлами-будет находить адреса тех блоков, в которых размещены искомые данные.
Причем очевидно, что каталогом может быть нетолько специальная системная информационная структура, которую часто называют корневым каталогом, но и сам файл. Такой файл-каталог должен иметь специальное системное значение; система управления файлами должна его выделятьна фоне обычных файлов. Файл-каталог часто называют подкаталогом (subdirectory).
Если файл-каталог содержит информацию о других файлах, то поскольку среди них также могут быть файлы-каталоги, мы получаем возможность строить почти ничем не ограниченную иерархию.Более того, введение таких файловых объектов, как файлы-каталоги, позволяет нетолько структурировать файловую систему, но и решить проблему ограниченногоколичества элементов в корневом каталоге. Ограничений на количество элементов в файле-каталоге нет, поэтому можно создавать каталоги чрезвычайно большого размера.Файловая система FATФайловая система FAT (File Allocation Table — таблица размещения файлов) получила свое название благодаря простой таблице, в которой указываются:Q непосредственно адресуемые участки логического диска, отведенные для размещения в них файлов или их фрагментов;Q свободные области дискового пространства;Q дефектные области диска (эти области содержат дефектные участки и не гарантируют чтение и запись данных без ошибок).В файловой системе FAT дисковое пространство любого логического диска делится на две области (рис.
6.1): системную область и область данных.BRRSecFAT,FAT2Системная областьRDirКаталоги и файлыОбласть данныхРис. 6 . 1 . Структура логического диска в FATСистемная область логического диска создается и инициализируется при форматировании, а в последующем обновляется при работе с файловой структурой. Оласть данных логического диска содержит обычные файлы и файлы-каталоги; этобъекты образуют иерархию, подчиненную корневому каталогу. Элемент катало167^ ^ п п в а я система FATписывает файловый объект, который может быть либо обычным файлом, либоГ йлом-каталогом. Область данных, в отличие от системной области, доступнаерез пользовательский интерфейс операционной системы.
Системная областьстоит из следующих компонентов (расположенных в логическом адресном пространстве друг за другом):а загрузочной записи (Boot Record, BR);р зарезервированных секторов (Reserved Sectors, ResSec);а таблицы размещения файлов (File Allocation Table, FAT);p корневого каталога (Root Directory, RDir).Таблица размещения файловТаблица размещения файлов является очень важной информационной структурой.
Можно сказать, что она представляет собой адресную карту области данных,в которой описывается и состояние каждого участка области данных, и принадлежность его к тому или иному файловому объекту.Всю область данных разбивают на так называемые кластеры. Кластер представляет собой один или несколько смежных секторов в логическом дисковом адресномпространстве (точнее — только в области данных). Кластер — это минимальнаяадресуемая единица дисковой памяти, выделяемая файлу (или некорневому каталогу). Кластеры введены для того, чтобы уменьшить количество адресуемых единиц в области данных логического диска.Каждый файл занимает целое число кластеров.
Последний кластер при этом может быть задействован не полностью, что при большом размере кластера можетприводить к заметной потере дискового пространства. На дискетах кластер занимает один или два сектора, а на жестких дисках его размер зависит от объема раздела (табл. 6.1). В таблице FAT кластеры, принадлежащие одному файлу (илифайлу-каталогу), связываются в цепочки. Для указания номера кластера в файловой системе FAT 16 используется 16-разрядное слово, следовательно, можно иметьдо 2' 6 = 65 536 кластеров (с номерами от 0 до 65 535).Таблица 6 .
1 . Соотношения между размером раздела и размером кластеров в FAT16Емкость раздела, Мбайт Количество секторов в кластере Размер кластеров, Кбайт16-12741828-25524256-511816512-102332161?_24-20476432аметим, что в Windows NT/2000/XP разделы файловой системы FAT могут иметьРазмер до 4097 Мбайт. В этом случае кластер будет объединять уже 128 секторов.Ви°мер кластера всегда относится к области данных диска (пространству, зарезерРованному для файлов и подкаталогов).
Номера кластеров соответствуют эле-168Глава 6. Файловые системк!ментам таблицы размещения файлов. Первый допустимый номер кластера всегданачинается с 2.Логическое разбиение области данных на кластеры как совокупности сектороввзамен использования одиночных секторов имеет следующий смысл:Q прежде всего, уменьшается размер самой таблицы FAT;Q уменьшается возможная фрагментация файлов;Q ускоряется доступ к файлу, так как в несколько раз сокращается длина цепочекфрагментов дискового пространства, выделенных для него.Однако слишком большой размер кластера ведет к неэффективному использованию области данных, особенно в случае большого количества маленьких файлов.Как мы только что заметили, в среднем на каждый файл теряется около половиныкластера. Из табл.
6.1 следует, что при размере кластера в 32 сектора (объем раздела при этом — от 512 до 1023 Мбайт), то есть 16 Кбайт, средняя величина потерьна файл равняется 8 Кбайт, и при нескольких тысячах файлов' потери могут составлять более 100 Мбайт. Поэтому в современных файловых системах размерыкластеров ограничиваются (обычно от 512 байт до 4 Кбайт), либо предоставляется возможность выбирать размер кластера.Достаточно наглядно идею файловой системы, использующей таблицу размещения файлов, иллюстрирует рис. 6.2.Directory EntryНачальный номер кластераMYFILE ТХТ000100 IDFF10 0000datatimeI I I I I I I050607080A0B03.^.04.^.05.^KFF000009.
j.OA^.OB.1517.19F71С.02000300040016091A1B.080CID.0D0EOF000000FF0000Рис. 6.2. Иллюстрация основной концепции FATИз рисунка видно, что файл MYFILE.TXT размещается, начиная с восьмого кластера.Всего файл MYFILE.TXT занимает 12 кластеров. Цепочка (chain) кластеров для нашего примера может быть записана следующим образом: 8, 9, 0А, 0В, 15,16,17,1 >Например, число 10 000-15 000 файлов (или даже более, особенно когда файлы небольшого размера) на логическом диске с объемом в 1000 Мбайт встречается достаточно часто.169файловая с и с т е м а FATч д 1В, 1С, ID.
Кластер с номером 18 помечен специальным кодом F7 как плохой(bad), он не может быть использован для размещения данных. При форматировании обычно проверяется поверхность магнитного диска, и те сектора, при КОНТРОЛЬНОМ чтении с которых происходили ошибки, помечаются в FAT как плохие.Кластер ID помечен кодом FF как конечный (последний в цепочке) кластер,принадлежащий данному файлу.
Свободные (незанятые) кластеры помечаютсякодом 00; при выделении нового кластера для записи файла берется первый свободный кластер. Возможные значения, которые могут приписываться элементамтаблицы FAT, приведены в табл. 6.2.Таблица 6 . 2 . Значения элементов FATЗначениеОписаниеOOOOhСвободный кластерfff0h-fff6hЗарезервированный кластерfff7hПлохой кластерfff8h-ffffh0002h-ffefhПоследний кластер в цепочке.Номер следующего кластера в цепочкеПоскольку файлы на диске изменяются (удаляются, перемещаются, увеличиваются или уменьшаются), то упомянутое правило выделения первого свободногокластера для новой порции данных приводит к фрагментации файлов, то есть данные одного файла могут располагаться не в смежных кластерах, а порой в оченьудаленных друг от друга, образуя сложные цепочки.