Операционные системы 2011 (1114689), страница 55
Текст из файла (страница 55)
Это т.н. корневая файловая система. В узлах дерева, отличных отлистьев, находятся каталоги, которые содержат информацию о размещенных в нихфайлах. Иерархические файловые системы обычно имеют специальный тип файловкаталогов. Т.е. каталог представляется не как отдельная выделенная структура данных, акак файл особого типа.
Листом дерева может быть либо файл-каталог, либо любой файлфайловой системы./…AA…BBC… F…D…BРис. 105. Модель иерархической файловой системы.Иерархическая (или древообразная) организация файловой системы предоставляетвозможность использования уникального именования файлов. Оно основывается на том,что в дереве существует единственный путь от корня до любого узла. Приведенная схемаименования (от корня до конкретного узла дерева) является принципиальной схемойименования файлов в иерархических файловых системах.
При этом обычно используютсяследующие характеристики. Текущий каталог — это каталог, на работу с которым вданный момент настроена файловая система. Текущим каталогом может стать любойкаталог файловой системы, и обозревание файлов в файловой системе происходит203относительно этого каталога. Файлы, находящиеся непосредственно в текущем каталоге,доступны «просто» по имени. Таким образом, имя файла — это имя файла оносительнотекущего каталога, а полное имя файла — это перечень всех имен файлов от корня доузла с данным файлом.
Признаком полного имени обычно является присутствиеспециального префиксного символа, обозначающего корневой каталог (например, в ОСUnix в качестве корневого каталога выступает символ “/”).Иерархическая файловая система позволяет использовать т.н. относительныеимена файлов — это путь от некоторого каталога до данного файла. Для данного способаименования необходимо указать явно или неявно каталог, относительно которогостроится это именование. Например, если существует файл с полным именем /A/B/С/D, тоотносительно каталога B файл будет иметь имя C/D. Чтобы использовать этоотносительное имя, необходимо либо явно задать каталог B (по сути это означает заданиеполного имени), либо сделать каталог B текущим.Иерархическиефайловыесистемыобычноиспользуютещеоднухарактеристику — т.н.
домашний каталог. Суть его заключается в том, что для каждогозарегистрированного в системе пользователя (или для всех пользователей) задаетсяполное имя каталога, который должен стать текущим каталогом при входе пользователя всистему.4.1.4 Подходы в практической реализации файловой системыРассмотрим некоторые подходы в практической реализации файловой системы.Снова вернемся к понятию системного устройства — устройства, на котором, каксчитается аппаратурой компьютера, должна присутствовать операционная система.
Почтив любом компьютере можно определить некоторую цепочку внешних устройств, которыепри загрузке компьютера могут рассматриваться как системные устройства. В этойцепочке имеется определенный приоритет. Во время старта вычислительная система(компьютер) перебирает данную цепочку в порядке убывания приоритета до тех пор, покане обнаружит готовое к работе устройство. Система предполагает, что на этом устройствеимеется необходимая системная информация и пытается загрузить с него операционнуюсистему.
Например, допустим, что компьютер сконфигурирован таким образом, чтопервым системным устройством является флоппи-дисковод, вторым — дисководоптических дисков (CDROM), а третьим — жесткий диск. Мы поместили во флоппидисковод дискету и включили компьютер. Аппаратный загрузчик обращается к первомусистемному устройству, и поскольку в дисководе присутствует дискета, то считается, чтодисковод готов к работе. Тогда происходит попытка загрузки операционной системы сфлоппи-диска, и если это будет неуспешно, то будет выведено сообщение об ошибкезагрузки системы.
Если же дискеты во флоппи-дисководе не будет, но будет находитьсядиск в CDROM, то точно так же будет предпринята попытка загрузить операционнуюсистему, но уже с оптического диска. Если же не будет ни флоппи-дискеты, ниоптического диска, то загрузчик попытается загрузить операционную систему с жесткогодиска. Обычно в штатном режиме загрузка происходит с жесткого диска, но в ситуации,например, краха системы и невозможности загрузиться с жесткого диска приведеннаямодель позволяет загрузить систему со съемного носителя и произвести некие действия повосстановлению работоспособности поврежденной системы.В приведенной модели работа аппаратного загрузчика основана на предположениио том, что любое системное устройство имеет некоторую предопределенную структуру(Рис.
106). В начальном блоке системного устройства располагается основнойпрограммный загрузчик (MBR — Master Boot Record). В качестве основногопрограммного загрузчика может выступать как загрузчик конкретной операционнойсистемы, так и некоторый унифицированный загрузчик, имеющий информацию оструктуре системного диска и способный загружать по выбору пользователя одну изальтернативных операционных систем.204…MBR — MasterBoot Record(основнойпрограммныйзагрузчик)Таблица разделов:{начало1, конец1}{начало2, конец2}…Загрузчик ОССуперблокРазделы дискаСвободное пространствоФайлыРис. 106. Структура «системного» диска.В общем случае после блока основного программного загрузчика на диске следуетпоследовательность блоков, в которых находится т.н.
таблица разделов. В современныхжестких дисках имеется возможность разбивать все физическое пространство диска нанекоторые области, которые называются разделами (partition). Внутри каждого разделаможет быть помещена в общем случае своя операционная система. Соответственно,границы каждого раздела (его конец и начало) регистрируются в указанной таблицеразделов. Еще одно важное применение данной таблицы связано с тем, что современныедиски имеют настолько большие емкости, что для адресации произвольной точки диска нехватает разрядной сетки процессора. И за счет косвенной адресации (адресацииотносительно начала раздела) использование подобной таблицы позволяет решить даннуюпроблему.Логическая структура раздела имеет следующий вид. В начальном блоке разделанаходится загрузчик конкретной операционной системы.
Все остальное пространствораздела обычно занимает файловая система. Зачастую в файловой системе частьпространства выделяется т.н. суперблоку, в котором хранятся настройки (размеры блоков,режимы работы и т.п.) и информация об актуальном состоянии (информация о свободныхи занятых блоках и т.п.) файловой системы. Все оставшееся пространство файловойсистемы состоит из свободных и занятых блоков, т.е. блоков, способных хранитьсистемные и пользовательские данные.Прежде, чем продолжить изучение способов организации файловых систем,хотелось бы остановиться и еще раз просмотреть, что происходит при загрузкекомпьютера. При включении компьютера управление передается аппаратномузагрузчику, который просматривает (согласно приоритетам) список системных устройств,определяет готовое к работе устройство и передает управление основному программномузагрузчику этого устройства.
Последний является программным компонентом и можетзагрузить конкретную операционную систему, а может являться мультисистемнымзагрузчиком, способным предложить пользователю выбрать, какую из операционныхсистем, расположенных в различных разделах диска, загрузить. В одном разделе можетнаходиться, например, ОС Microsoft Windows XP, в другом — Linux, в третьем —FreeBSD, и т.д. Данный мультисистемный загрузчик владеет информацией, какаяоперационная система в каком разделе диска находится. После того, как пользовательсделал свой выбор, загрузчик по таблице разделов определяет координатысоответствующего раздела и передает управление загрузчику операционной системыуказанного раздела.
Соответственно, загрузчик операционной системы производитнепосредственную загрузку этой ОС.205Говоря об иерархии блоков, у многих создается впечатление, что такие понятия,как, например, блоки файла, блоки файловой системы, блоки устройств и т.п., обозначаютодно и то же, что, в общем случае, неверно. Большинство современных операционныхсистем поддерживают целую иерархию блоков, используемую при организации работы сблок-ориентированными устройствами.
В основе этой иерархии лежат блоки физическогоустройства, т.е. это те порции данных, которыми можно совершать обмен с даннымфизическим устройством. Более того, размер блока физического устройства зависит отконкретного устройства. Соответственно, детали этого уровня иерархии скрываютсяследующим уровнем абстракции — блоками виртуального диска. Следующий уровеньиерархии — уровень блоков файловой системы. Эти блоки используются при организацииструктуры файловой системы.
Размер блока файловой системы, равно как и виртуальногодиска, является стационарной характеристикой, определяемой при настройке системы, и вдинамике эта характеристика не меняется. И, наконец, последний уровень представляютблоки файла. Размер данных блоков может определить пользователь при открытии илисоздании файла (как об этом говорилось выше). Отметим, что размер блока, в конечномсчете, влияет на эффективность работы, которая будет несколько выше, если размеры всехблоков будут хотя бы кратны друг другу.4.1.5 Модели реализации файловПервой тривиальной и самой эффективной с точки зрения минимизации накладныхрасходов является модель непрерывных файлов (Рис.
107). Данная модельподразумевает размещение каждого файла в непрерывной области внешнего устройства.Эта организация достаточно простая: для обеспечения доступа к файлу среди атрибутовдолжны присутствовать имя, блок начала и длина файла. Но тут возникают следующиепроблемы. Во-первых, внутренняя фрагментация (хотя это проблема почти всех блокориентированных устройств). В качестве иллюстрации можно привести следующее: еслинеобходимо хранить всего один байт, то для этого будет выделен целый блок, который, посути, будет пустым.
Во-вторых, это фрагментация между файлами (эта проблемаобсуждалась при рассмотрении моделей организации работы оперативной памяти). Ноданная система имеет и некоторые достоинства, и немаловажное из них — отсутствиефрагментации файла по диску: поскольку файл хранится в единой непрерывной областидиска, то при считывании файла головка жесткого диска совершает минимальноеколичество механических движений, что означает более высокую производительностьсистемы. Соответственно, при реализации данной модели должна решаться важнаяпроблема, возникающая при модификации файла, в частности, при увеличении егосодержательной части.