The design of the UNIX Operating System 78 страница




Основы операционных систем 114

вый вектор помещается в памяти целиком , что возможно лишь для относительно небольших дисков. На-пример, диск размером 4 Гбайт с блоками по 4 Кбайт нуждается в таблице размером 128 Кбайт для управления свободными блоками. Иногда, если битовый вектор становится слишком большим, для уско-рения поиска в нем его разбивают на регионы и организуют резюмирующие структуры данных, содер-жащие сведения о количестве свободных блоков для каждого региона.

 

Учет при помощи организации связного списка

 

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

 

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

 

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

 

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

 

Размер блока

 

Размер логического блока играет важную роль. В некоторых системах (Unix) он может быть задан при форматировании диска . Небольшой размер блока будет приводить к тому, что каждый файл будет со-держать много блоков. Чтение блока осуществляется с задержками на поиск и вращение, таким образом, файл из многих блоков будет читаться медленно. Большие блоки обеспечивают более высокую скорость обмена с диском, но из-за внутренней фрагментации (каждый файл занимает целое число блоков, и в среднем половина последнего блока пропадает) снижается процент полезного дискового пространства.

 

Для систем со страничной организацией памяти характерна сходная проблема с размером страницы.

 

Проведенные исследования показали, что большинство файлов имеют небольшой размер. Например, в Unix приблизительно 85% файлов имеют размер менее 8 Кбайт и 48% - менее 1 Кбайта.

 

Можно также учесть, что в системах с виртуальной памятью желательно, чтобы единицей пересылки диск-память была страница (наиболее распространенный размер страниц памяти - 4 Кбайта). Отсюда обычный компромиссный выбор блока размером 512 байт, 1 Кбайт, 2 Кбайт, 4 Кбайт.

 

Структура файловой системы на диске

 

Рассмотрение методов работы с дисковым пространством дает общее представление о совокупности служебных данных, необходимых для описания файловой системы. Структура служебных данных типо-вой файловой системы, например Unix, на одном из разделов диска, таким образом, может состоять из четырех основных частей (см. рис. 12.5).

 

 

Рис. 12.5. Примерная структура файловой системы на диске

 

В начале раздела находится суперблок, содержащий общее описание файловой системы, например:


Основы операционных систем 115

• тип файловой системы;

 

• размер файловой системы в блоках;

• размер массива индексных узлов;

 

• размер логического блока.

 

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


Дата добавления: 2021-01-21; просмотров: 106; Мы поможем в написании вашей работы!

Поделиться с друзьями:






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