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; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!