Структура файла обычного типа 
";


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Структура файла обычного типа



Индекс включает в себя таблицу адресов расположения файла на диске.


Рисунок 4. Размещение непрерывных файлов и фрагментация свободного пространства

 

В целях повышения гибкости ядро присоединяет к файлу по одному блоку, позволяя информации файла быть разбросанной по всей файловой системе. Такая схема размещения усложняет задачу поиска данных. Таблица адресов содержит список номеров блоков, содержащих принадлежащую файлу информацию, однако простые вычисления показывают, что линейным списком блоков файла в индексе трудно управлять. Если логический блок занимает 1 Кбайт, то файлу, состоящему из 10 Кбайт, потребовался бы индекс на 10 номеров блоков, а файлу, состоящему из 100 Кбайт, понадобился бы индекс на 100 номеров блоков. Либо пусть размер индекса будет варьироваться в зависимости от размера файла, либо пришлось бы установить относительно жесткое ограничение на размер файла.

Для того, чтобы небольшая структура индекса позволяла работать с большими файлами, таблица адресов дисковых блоков приводится в соответствие со структурой, представленной на Рисунке 5. Версия V системы UNIX работает с 13 точками входа в таблицу адресов индекса. Блок, имеющий пометку прямая адресация", содержит номера дисковых блоков, в которых хранятся реальные данные. Блок, имеющий пометку "одинарная косвенная адресация", указывает на блок, содержащий список номеров блоков прямой адресации. Чтобы обратиться к данным с помощью блока косвенной адресации, ядро должно считать этот блок, найти соответствующий вход в блок прямой адресации и, считав блок прямой адресации, обнаружить данные. Блок, имеющий пометку "двойная косвенная адресация", содержит список номеров блоков одинарной косвенной адресации, а блок, имеющий пометку "тройная косвенная адресация", содержит список номеров блоков двойной косвенной адресации.

Предположим, что размер логического блока в файловой системе 1 Кбайт и что номер блока занимает 4 байта. Тогда в блоке может храниться до 256 номеров блоков., тогда (Рисунок 6) максимальный размер файла превышает 16 Гбайт. Процессы обращаются к информации в файле, задавая смещение в байтах. Они рассматривают файл как поток байтов и ведут подсчет байтов, начиная с нулевого адреса и заканчивая адресом,

 

10 блоков прямой адресации по 1 Кбайту каждый = 10 Кбайт 1 блок косвенной адресации с 256 блоками прямой адресации = 256 Кбайт 1 блок двойной косвенной адресации с 256 блоками косвенной адресации = 64 Мбайта 1 блок тройной косвенной адресации с 256 блоками двойной косвенной адресации = 16 Гбайт

Рисунок 6. Объем файла в байтах при размере блока 1 Кбайт

 

равным размеру файла. Ядро переходит от байтов к блокам: файл начинается с нулевого логического блока и заканчивается блоком, номер которого определяется исходя из размера файла. Рассмотрим формат файла в блоках (Рисунок 7) и предположим, что дисковый блок занимает 1024 байта

Если процессу нужно обратиться к байту, имеющему смещение от начала файла, равное 9000, в результате вычислений ядро приходит к выводу, что этот байт располагается в блоке прямой адресации с номером 8 (начиная с 0). Затем ядро обращается к блоку с номером 367; 808-й байт в этом блоке (если вести отсчет с 0) и является 9000-м байтом в файле. Если процессу нужно обратиться по адресу, указанному смещением 350000 байт от начала файла, он должен считать блок двойной косвенной адресации, который на рисунке имеет номер 9156. Так как блок косвенной адресации имеет место для 256 номеров блоков, первым байтом, к которому будет получен доступ в результате обращения к блоку двойной косвенной адресации, будет байт с номером 272384 (256К + 10К); таким образом, байт с номером 350000 будет иметь в блоке двойной косвенной адресации номер 77616. Поскольку каждый блок одинарной

 

 
 

 

Рисунок 5. Блоки прямой и косвенной адресации в индексе

 

 


Рисунок 7. Размещение блоков в файле и его индексе

 

 

КАТАЛОГИ

Каталоги являются файлами, из которых строится иерархическая структура файловой системы. В версии V системы UNIX длина каждой компоненты ограничивается 14 символами; таким образом, вместе с 2 байтами, отводимыми на номер индекса, размер записи каталога составляет 16 байт.

 

 

Смещение в байтах внутри каталога Номер индекса (2 байта) Имя файла
    .
    ..
    init

Рисунок 8. Формат каталога /etc

 

На рис 8 показан формат каталога. В каждом каталоге имеются файлы, в качестве имен которых указаны точка и две точки ("." и "..") и номера индексов у которых совпадают с номерами индексов данного каталога и родительского каталога, соответственно. Номер индекса для файла "." в каталоге "/etc" имеет адрес со смещением 0 и значение 83. Номер индекса для файла ".." имеет адрес со смещением 16 от начала каталога и значение 2. Записи в каталоге могут быть пустыми, при этом номер индекса равен 0.

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

 

СУПЕРБЛОК

Суперблок состоит из следующих полей:

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


Поделиться:


Последнее изменение этой страницы: 2016-07-16; просмотров: 391; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 44.198.180.108 (0.005 с.)