Кластер № 18 – начальный кластер файла file2

В кластер с этим номером записываются данные файла, он становится первым кластером файла. Если файл умещается в одном кластере, то в указатель, соответствующий данному кластеру, заносится специальное значение «последний кластер файла». Если же размер файла больше одного
кластера, то ОС продолжает просмотр FAT и ищет следующий указатель на свободный кластер. После его обнаружения в предыдущий указатель заносится номер этого кластера, который теперь становится следующим кластером файла. Процесс повторяется до тех пор, пока не будут размещены все данные файла.

Таким образом, создается связный список всех кластеров файла. В начальный период после форматирования файлы будут размещаться в последовательных кластерах области данных, однако после определенного количества удалений файлов кластеры одного файла окажутся в произвольных местах области данных, чередуясь с кластерами других файлов. Размер таблицы FAT и разрядность используемых в ней индексных указателей определяется количеством кластеров в области данных. Для уменьшения потерь из-за фрагментации желательно кластеры делать небольшими, а для сокращения объема адресной информации и повышения скорости обмена наоборот - чем больше, тем лучше. При форматировании диска под файловую систему FAT обычно выбирается компромиссное решение и размеры кластеров выбираются из диапазона от 1 до 128 секторов, или от 512 байт до 64 Кбайт. Очевидно, что разрядность индексного указателя должна быть такой, чтобы в нем можно было задать максимальный номер кластера для диска определенного объема. Существует несколько разновидностей FAT, отличающихся разрядностью индексных указателей, которая и используется в качестве условного обозначения: FAT12, FAT16 и FAT32. В файловой системе FAT12 используются 12-разрядные указатели, что позволяет поддерживать до 4096 кластеров в области данных диска, в FAT16 - 16-разрядные указатели для 65 536 кластеров и в FAT32 - 32-разрядные более чем для 4 миллиардов кластеров.

Таблица FAT при фиксированной разрядности индексных указателей имеет переменный размер, зависящий от объема области данных диска. При удалении файла из файловой системы FAT в первый байт соответствующей записи каталога заносится специальный признак, свидетельствующий о том, что эта запись свободна, а во все индексные указатели файла заносится признак «кластер свободен». Остальные данные в записи каталога, в том числе номер первого кластера файла, остаются нетронутыми, что оставляет шансы для восстановле­ния ошибочно удаленного файла. Очевидно, что надежно можно восстановить только файлы, которые были расположены в последовательных кластерах диска, так как при отсутствии связного списка выявить принадлежность произвольно расположенного кластера удаленному файлу невозможно (без анализа содержимого класте­ров, выполняемого пользователем «вручную»).

Резервная копия FAT всегда синхронизируется с основной копией при любых операциях с файлами, поэтому резервную копию нельзя использовать для отмены ошибочных действий пользователя, выглядевших с точки зрения системы вполне корректными. Резервная копия может быть полезна только в том случае, когда секторы основной таблицы оказываются физически поврежденными и не читаются.

Файловые системы FAT12 и FAT16 оперировали с именами файлов, состоящими из 12 символов по схеме «8.3». В версии FAT16 операционной системы Windows NT был введен новый тип записи каталога - «длинное имя», что позволяет использовать имена длиной до 255 символов, причем каждый символ длинного имени хранится в двухбайтном формате Unicode. Имя по схеме «8.3», названное теперь коротким (не нужно путать его с простым именем файла, также называемого иногда коротким), по-прежнему хранится в 12-байтовом поле имени файла в записи каталога, а длинное имя помещается порциями по 13 символов в одну или несколько записей, следующих непосредственно за основной записью каталога. Каждый символ в формате Unicode кодируется двумя байтами, поэтому 13 символов занимают 26 байт, а оставшиеся 6 отведены под служебную информацию. Таким образом у файла появляются два имени - короткое, для совместимости со старыми приложениями, не понимающими длинных имен в Unicode, и длинное, удобное в использовании. Файловая система FAT32 также поддерживает короткие и длинные имена.

Файловые системы FAT12 и FAT16 получили большое распространение благодаря их применению в операционных системах MS-DOS и Windows 3.x - самых массовых операционных системах первого десятилетия эры персональных компьютеров. По данной причине эти файловые системы поддерживаются сегодня и другими ОС, такими, как UNIX, OS/2, Windows NT/2000 и Windows 95/98. Однако из-за постоянно растущих объемов жестких дисков, а также возрастающих требований к надежности эти файловые системы быстро вытесняются как системой FAT32, впервые появившейся в Windows 95 OSR2, так и файловыми системами других типов.

5. 6. Физическая организация s5 и ufs

В этом разделе вместо термина «кластер» будет использоваться термин «блок», как это принято в файловых системах UNIX.

Файловые системы s5 (получившие название от System V, родового имени нескольких версий ОС UNIX, разработанных в Bell Labs компании AT&T) и ufs (UNIX File System) используют очень близкую физическую модель. Это не удивительно, так как система ufs является развитием системы s5. Файловая система ufs расширяет возможности s5 по поддержке больших дисков и файлов, а также повышает ее надежность.

Расположение файловой системы s5 на диске иллюстрирует рис. 5. 7.

Раздел диска, где размещается файловая система, делится на четыре области:

загрузочный блок;

суперблок (superblock) -содержит самую общую информацию о файловой системе: размер файловой системы, размер области индексных дескрипторов, число индексных дескрипторов, список свободных блоков и список свободных индексных дескрипторов, а также другую административную информацию;

область индексных дескрипторов (inode list) – содержит набор индексных дескрипторов, перенумерованных в порядке расположения их но-меров;

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

 
 


Файловая

система

       
 
 
   


Рис. 5. 7. Расположение файловой системы s5 на диске

Основной особенностью физической организации файловой системы s5 является отделение имени файла от его характеристик, хранящихся в отдельной структуре, называемой индексным дескриптором (inode).

Индексный дескриптор в s5 имеет размер 64 байта и содержит данные о типе файла, адресную информацию, привилегии доступа к файлу и некоторую другую информацию:

идентификатор владельца файла;

тип файла; файл может быть файлом обычного типа, каталогом, специальным файлом, а также конвейером или символьной связью;

права доступа к файлу;

временные характеристики: время последней модификации файла, время по­следнего обращения к файлу, время последней модификации индексного де­скриптора;

число ссылок на данный индексный дескриптор, равный количеству псевдо­нимов файла;

адресная информация (структура адреса рассмотрена выше в разделе «Физи­ческая организация и адресация файла»);

размер файла в байтах.

Каждый индексный дескриптор имеет номер, который одновременно является уникальным именем файла. Индексные дескрипторы расположены в особой области диска в строгом соответствии со своими номерами. Соответствие между полными символьными именами файлов и их уникальными именами устанавливается с помощью иерархии каталогов. Система ведет список номеров свободных индексных дескрипторов. При создании файла ему выделяется номер из этого списка, а при уничтожении файла номер его индексного дескриптора возвращается в список.

Запись о файле в каталоге состоит всего из двух полей: символьного имени файла и номера индексного дескриптора. Например, на рис. 5. 8 показана информация, содержащаяся в каталоге /user.

Файловая система не накладывает особых ограничений на размер корневого каталога, так как он расположен в области данных и может увеличиваться как обычный файл.

Имя № индексного дескриптора
Progl  
firelights  
doc_23.txt  
glazing.txt  
lambda_good  

Рис. 5. 8. Структура каталога в файловой системе s5

Доступ к файлу осуществляется путем последовательного просмотра всей цепочки каталогов, входящих в полное имя файла, и соответствующих им индексных дескрипторов. Поиск завершается после получения всех характеристик из индексного дескриптора заданного файла.

Рассмотрим эту процедуру на примере файла /home/stud2/labrab.doc, входящего в состав файловой системы, изображенной на рис. 5. 9.

Корневой каталог /

 
 


/home /bin /sys

/stud1

 
 


/stud2

/doc

/studn

labrab.doc

otchet.doc

Корневой каталог Каталог /home Каталог /home/stud2

. 2
..  
home  
bin  
sys  
. 11
..  
stud1  
stud2  
: :
studn  
.  
..  
doc  
labrab.doc  
otchet.doc  

Рис. 5. 9. Поиск адреса файла по его символьному имени

Определение физического адреса этого файла включает следующие этапы.

1. Прежде всего просматривается корневой каталог с целью поиска первой составляющей символьного имени - home. Определяется номер (в данном примере - 11) индексного дескриптора каталога, входящего в корневой каталог. Адрес корневого каталога известен системе.

2. Из области индексных дескрипторов считывается дескриптор с номером 11. Начальный адрес дескриптора определяется на основании известных системе номера начального сектора области индексных дескрипторов и размера индексного дескриптора. Из индексного дескриптора 11 определяется физический адрес каталога /home.

3. Просматривается каталог /home с целью поиска второй составляющей символьного имени stud2. Определяется номер индексного дескриптора каталога /home/stud2 (в данном случае - 36).

4. Считывается индексный дескриптор 36, определяется физический адрес /home/stud2.

5. Просматривается каталог /home/stud2, определяется номер индексного дескриптора файла labrab.doc (в данном случае - 131).

6. Из индексного дескриптора 131 определяются номера блоков данных, а также другие характеристики файла /home/stud2/labrab.doc.

Эта процедура требует в общем случае нескольких обращений к диску, пропорционально числу составляющих в полном имени файла. Для уменьшения среднего времени доступа к файлу его дескриптор копируется в специальную системную область оперативной памяти. Копирование индексного дескриптора входит в процедуру открытия файла.

Физическая организация файловой системы ufs отличается от описанной физической организации файловой системы s5 тем, что раздел состоит из повторяющейся несколько раз последовательности областей «загруз-
чик - суперблок - блок группы цилиндров - область индексных дескрипторов» (рис. 5. 10).

Загрузочный блок
Суперблок
Блок группы цилиндров
  Список inode
  Блоки данных
Суперблок
Блок группы цилиндров
  Список inode
  Блоки данных

Рис. 5. 10. Физическая организация файловой системы ufs

В этих повторяющихся последовательностях областей суперблок является резервной копией основной первой копии суперблока. При повреждении основной копии суперблока может быть использована резервная копия суперблока. Области же блока группы цилиндров и индексных дескрипторов содержат индивидуальные для каждой последовательности значения. Блок группы цилиндров описывает количество индексных дескрипторов и блоков данных, расположенных на данной группе цилиндров диска. Такая группировка делается для ускорения доступа, чтобы просмотр индексных дескрипторов и данных файлов, описываемых этими дескрипторами, не приводил к слишком большим перемещениям головок диска.

Кроме того, в ufs имена файлов могут иметь длину до 255 символов (кодировка ASCII, по одному байту на символ), в то время как в s5 длина имени не может превышать 14 символов.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: