Курынин Р.В., Машечкин И.В., Терехин А.Н. - Конспект лекций по ОС (1114685), страница 44
Текст из файла (страница 44)
Тогда происходит попытка загрузки операционной системы с дисковода, и если этобудет неуспешно, то будет выведено сообщение об ошибке загрузки системы. Если же дискеты вофлопе-дисководе не будет, но будет находиться диск в CDROM, то точно так же будетпредпринята попытка загрузить операционную систему, но уже с оптического диска. Если же небудет ни флоппи-дискеты, ни оптического диска, то загрузчик попытается загрузитьоперационную систему с жесткого диска.
Обычно в штатном режиме загрузка происходит сжесткого диска, но в ситуации, например, краха системы и невозможности загрузиться с жесткогодиска приведенная модель позволяет загрузить систему со съемного носителя и произвести некиедействия по восстановлению работоспособности поврежденной системы.В приведенной модели работа аппаратного загрузчика основана на предположении о том,что любое системное устройство имеет некоторую предопределенную структуру.
В начальномблоке системного устройства располагается основной программный загрузчик (MBR — MasterBoot Record).В качестве основного программного загрузчика может выступать как загрузчикконкретной операционной системы, так и некоторый унифицированный загрузчик, имеющийинформацию о структуре системного диска и способный загружать по выбору пользователя однуиз альтернативных операционных систем.…MBR — MasterBoot Record(основнойпрограммныйзагрузчик)Таблица разделов:{начало1, конец1}{начало2, конец2}…Загрузчик ОССуперблокРазделы дискаСвободное пространствоФайлыРис. 96.Структура «системного» диска.В общем случае после блока основного программного загрузчика на диске следуетпоследовательность блоков, в которых находится т.н. таблица разделов. В современных жесткихдисках имеется возможность разбивать все физическое пространство диска на некоторые области,которые называются разделами (partition).
Внутри каждого раздела может быть помещена в175общем случае своя операционная система. Соответственно, границы каждого раздела (его конец иначало) регистрируются в указанной таблице разделов. Еще одно важное применение даннойтаблицы связано с тем, что современные диски имеют настолько большие емкости, что дляадресации произвольной точки диска не хватает разрядной сетки процессора. И за счет косвеннойадресации (адресации относительно начала раздела) использование подобной таблицы позволяетрешить данную проблему.Логическая структура раздела имеет следующий вид.
В начальном блоке раздела находитсязагрузчик конкретной операционной системы. Все остальное пространство раздела обычнозанимает файловая система. Зачастую в файловой системе часть пространства выделяется т.н.суперблоку, в котором хранятся настройки (размеры блоков, режимы работы и т.п.) и информацияоб актуальном состоянии (информация о свободных и занятых блоках и т.п.) файловой системы.Все оставшееся пространство файловой системы состоит из свободных и занятых блоков, т.е.блоков, способных хранить системные и пользовательские данные.Прежде, чем продолжить изучение способов организации файловых систем, хотелось быостановиться и еще раз просмотреть, что происходит при загрузке компьютера. При включениикомпьютера управление передается аппаратному загрузчику, который просматривает согласноприоритетам список системных устройств, определяет готовое к работе устройство и передаетуправление основному программному загрузчику этого устройства.
Последний являетсяпрограммным компонентом и может загрузить конкретную операционную систему, а можетявляться мультисистемным загрузчиком, способным предложить пользователю выбрать, какую изоперационных систем, расположенных в различных разделах диска, загрузить. В одном разделеможет находиться, например, ОС Microsoft Windows XP, в другом — Linux, в третьем — FreeBSD,и т.д. Данный мультисистемный загрузчик владеет информацией, какая операционная система вкаком разделе диска находится.
После того, как пользователь сделал свой выбор, загрузчик потаблице разделов определяет координаты соответствующего раздела и передает управлениезагрузчику операционной системы указанного раздела. Соответственно, загрузчик операционнойсистемы производит непосредственную загрузку этой ОС.Говоря об иерархии блоков, у многих создается впечатление, что такие понятия, как,например, блоки файла, блоки файловой системы, блоки устройств и т.п., обозначают одно и тоже, что, в общем случае, неверно. Большинство современных операционных системподдерживают целую иерархию блоков, используемую при организации работы с блокориентированными устройствами. В основе этой иерархии лежит блоки физического устройства,т.е. это те порции данных, которыми можно совершать обмен с данным физическим устройством.Более того, размер блока физического устройства зависит от конкретного устройства.Соответственно, детали этого уровня иерархии скрываются следующим уровнем абстракции —блоками виртуального диска.
Следующий уровень иерархии — уровень блоков файловойсистемы. Эти блоки используются при организации структуры файловой системы. Размер блокафайловой системы, равно как и виртуального диска, является стационарной характеристикой,определяемой при настройке системы, и в динамике эта характеристика не меняется. И, наконец,последний уровень представляют блоки файла. Размер данных блоков может определитьпользователь при открытии или создании файла (как об этом говорилось выше).
Отметим, чторазмер блока, в конечном счете, влияет на эффективность работы, которая будет несколько выше,если размеры всех блоков будут хотя бы кратны друг другу.4.1.5Модели реализации файловПервой тривиальной и самой эффективной с точки зрения минимизации накладныхрасходов является модель непрерывных файлов (4.1.5). Данная модель подразумеваетразмещение каждого файла в непрерывной области внешнего устройства. Эта организациядостаточно простая: для обеспечения доступа к файлу среди атрибутов должны присутствоватьимя, блок начала и длина файла. Но тут возникают следующие проблемы. Во-первых, внутренняяфрагментация (хотя это проблема почти всех блок-ориентированных устройств). В качествеиллюстрации можно привести следующее: если необходимо хранить всего один байт, то для этого176будет выделен целый блок, который, по сути, будет пустым.
Во-вторых, это фрагментация междуфайлами (эта проблема обсуждалась при рассмотрении моделей организации работы оперативнойпамяти). Но данная система имеет и некоторые достоинства, и немаловажное из них — отсутствиефрагментации файла по диску: поскольку файл хранится в единой непрерывной области диска, топри считывании файла головка жесткого диска совершает минимальное количество механическихдвижений, что означает более высокую производительность системы.
Соответственно, приреализации данной модели должна решаться важная проблема, возникающая при модификациифайла, в частности, при увеличении его содержательной части. Чтобы несколько упростить этузадачу, зачастую используют такой прием: при создании файла к запрошенному объемудобавляют некоторое количество свободного пространства (например, 10% от запрошенногообъема), но этот же прием ведет к увеличению внутренней фрагментации.
Еще однойнемаловажной проблемой является фрагментация свободного пространства. Файловые системы,реализующие данную модель хранения файла, являются деградирующими: в ходе эксплуатациифрагментация свободного пространства увеличивается, и в итоге на диске имеется множествомелких свободных участков, имеющих очень большой суммарный объем, но из-за своегонебольшого размера эти участки использовать не представляется возможным. Для разрешенияэтой проблемы необходимо запускать процесс компрессии (дефрагментации), который занимаетсятем, что сдвигает файлы с учетом зарезервированного для каждого файла «запаса», «прижимая»их друг к другу.
Эта операция трудоемкая, продолжительная и опасная, поскольку приперемещении файла возможен сбой.Name1Name3Name2Name4Name5Name6Name7………Рис. 97.Модель непрерывных файлов.Следующей моделью является модель файлов, имеющих организацию связанногосписка (4.1.5). В этой модели файл состоит из блоков, каждый из которых включает в себя двесоставляющие: данные, хранимые в файле, и ссылка на следующий блок файла.
Эта модель такжеявляется достаточно простой, достаточно эффективной при организации последовательногодоступа, а также эта модель решает проблему фрагментации свободного пространства. С другойстороны, обозначенная модель не предполагает прямого доступа: чтобы обратиться к i-ому блоку,необходимо последовательно просмотреть все предыдущие. Также эта модель предполагаетфрагментацию файла по диску, т.е. содержимое файла может быть рассредоточено по всемудисковому пространству, а это означает, что при последовательном считывании содержимогофайла добавляется значительная механическая составляющая, снижающая эффективностьдоступа.
И еще одним недостатком данной модели является то, что в каждом блоке присутствует исистемная, и пользовательская информация. Возможна ситуация, что при необходимости считатьданные, объемом в один логический блок, реально происходит чтение двух блоков.…1й блокфайла2й блокфайлаNй блокфайлаα1α2α3Kй блокфайлаαkРис.
98.Модель файлов, имеющих организацию связанного списка.177Другой подход иллюстрирует модель, основанная на использовании т.н. таблицыразмещения файлов (File Allocation Table — FAT, 4.1.5). В этой модели операционная системасоздает программную таблицу, количество строк в которой совпадает с количеством блоковфайловой системы, предназначенных для хранения пользовательских данных. Также имеетсяотдельный каталог (или система каталогов), в котором для каждого имени файла имеется запись,содержащая номер начального блока. Соответственно, таблица размещения имела позиционнуюорганизацию: i-ая строка таблицы хранит информацию о состоянии i-ого блока файловой системы,а, кроме того, в ней указывается номер следующего блока файла.