Билеты (Graur) (1114774), страница 30
Текст из файла (страница 30)
Модель версии FFS BSDВ Unix 4.2 BSD разработана модель организации файловой системы, котораяполучила название Fast File System - FFS (быстрая файловая система).Основной идеей данной модели файловой системы является кластеризациядискового пространства файловой системы, c целью минимизации временичтения/записи файла, а также уменьшения объёма не иcпользуемого пространствавнутри выделенных блоков.Суть кластеризации заключается в следующем.
Дисковое пространство, также,как и в модели s5fs имеет суперблок в котором размещена ключевая информацияфайловой системы (структура суперблоков s5fs и ffs, в общем случае, логическиидентична), далее, дисковое пространство разделено на области одинаковогоразмера, называемые группами цилиндров. Далее, стратегия функционированияфайловой системы такова, что она старается разместить содержимое файлов (блокифайлов) в пределах одной группы цилиндров, при этом стараясь располагатьфайлы в той же группе цилиндров, что и каталог в котором они расположены.Группа цилиндров:- копия суперблока- информация о свободных блоках (битовый массив) и о свободных индексныхдескрипторах- массив индексных дескрипторов (ИД)- блоки файловСтратегии размещения1)Новый каталог помещается в группу цилиндров, число свободных индексныхдескрипторов в которой больше среднего значения во всей файловой системе вданный момент времени, а также имеющей минимальное число дескрипторовкаталогов в себе;2)для обеспечения равномерности использования блоков данных файл разбиваетсяна несколько частей, при этом первая часть файла располагается в той же группецилиндров, что и его дескриптор, при размещении последующих частейиспользуется группа цилиндров, в которой число свободных блоков превышаетсреднее значение.
Длина первой части выбирается таким образом, чтобы онаадресовалось непосредственно индексным дескриптором (т.е. не «косвенно»),остальные части разбиваются фиксированным образом, например по 1 мегабайту;3)последовательные блоки файловфизического доступа (см. ниже)размещаютсяисходяизоптимизацииDt – технологический промежуток времени, который затрачивает система напередачу и прием устройством МД команды на чтение очередного блока. За этовремя диск проворачивается и головки обмена «пропускают» начало очередногоблока, поэтому если мы будем читать следующий блок, то головка будетвынуждена ожидать полного поворота диска на начало блока.
В связи с этимэффективнее читать не последовательные блоки (в этом случае нужно ожидатьполного поворота диска), а блоки, размещенные на диске через один, два...(смещение определяется поворотом диска за время Dt).Внутренняя организация блоковБлоки01…NФрагменты1 2 3 4 5 6 7…Маска1 0 0 0 0 1 1 1Обмен происходит блоками. Блоки могут быть достаточно большого размера (до64 Кб). В системе может быть принято разбиение блока на равные фрагменты (на 2,4, 8).
То есть все пространство разделяется на «маленькие блоки» - фрагменты.Фрагменты группируются по 2, 4 или 8 в блоки (т.е. если фрагмент содержит 512байт, то блок может быть размера 1024, 2048, 4096).При этом блоком в этой системе может называться только «выровненный» доразмера кратности набор фрагментов. Т.е. при кратности 4 (см.
рисунок выше),фрагменты 0 – 3 – входят в один блок, а фрагменты 1 – 4 нет.Для хранения информации о свободных фрагментах используется битовая маска:каждому фрагменту на диске соответствует ровно 1 бит в этой маске (этотмеханизм упрощает алгоритм поиска свободных фрагментов и уменьшает«фрагментацию» свободного пространства).Формат индексного дескриптора аналогичен, используемому в s5fs - в нём вкачестве элементов по-прежнему используются блоки, а не фрагменты, но приразмещении информации в файлах используется следующее простое правило: всеблоки указанные в индексном дескрипторе, кроме последнего, должныиспользоваться только целиком; блок может использоваться для несколькихфайлов только при хранении их последних байт, не занимающих всех фрагментовполного блока (cм.
рисунок ниже). Т.о. для хранения информации обиспользовании последнего блока недостаточно только размера файла, хранимого вдескрипторе System 5, необходимо также хранить информацию, об используемыхфрагментах в этом блоке.Выделение пространства для файла происходит только в момент когда процессвыполняет системный вызов write.
Операционная система при этомруководствуется следующим алгоритмом:1. Если в уже выделенном файлу блоке есть достаточно места, то новые данныепомещаются в это свободное пространство.2.Если последний блок файла использует все фрагменты (т.е. это полный блок)и свободного в нём места не достаточно для записи новых данных, то частьюновых данных заполняется всё свободное место. Если остаток данных превышаетпо размеру один полный блок, то новый выделяется полный блок и записываютсяданные в этот полный блок. Процесс повторяется до тех пор, пока остаток неокажется меньше чем полный блок.
В этом случае ищется блок с необходимыми поразмеру фрагментами или выделятся новый полный блок. Остаток данныхзаписывается в этот блок.3.Файл содержит один или более фрагмент (они естественным образомсодержатся в одном блоке) и последний фрагмент недостаточен для записи новыхданных. Если размер новых данных в сумме с размером данных, хранимых внеполном блоке, превышает размер полного блока, то выделяется новый полныйблок. Содержимое старого неполного блока копируется в начало выделенногоблока и остаток заполняется новыми данными.
Процесс далее повторяется, какуказано в пункте 2 выше. В противном случае (если размер новых данных в суммес размером данных, хранимых в неполном блоке, не превышает размер полногоблока) ищется блок с необходимыми по размеру фрагментами или выделятсяновый полный блок. Остаток данных записывается в этот блок.Структура каталога FFSПоддержка длинных имен файлов.Любая запись содержит:номер индексного дескриптора;длина записи в каталоге;длина имени файла;имя файла (дополненное до кратности слова).Структура каталога немного изменяется.
К двум содержательным полямдобавляется номер индексного дескриптора, размер записи, т.е. записи каталога,тип файла, длина имени и имени разрешается быть длиной до 256 символов.Соответственно может возникнуть некоторое недопонимание, т.к. есть параметрразмер записи и длина имени. Суть использования того и другого параметразаключается в том, что при удалении информации (какого-то имени) из каталогасвободное пространство присоединяется к предыдущей записи и получается, чторазмер больше той содержательной информации, которая имеется. Соответственноможет появиться внутренняя фрагментация.Билет 45. Управление внешними устройствами.Архитектура организации управления внешнимиустройствами, основные подходы, характеристики.Архитектура.Непосредственное управление Внешними устройствами ЦП.
В основномтребуется переместить данные из ВУ в ОЗУ (и наоборот). ЦП по своей инициативепочти никогда не обращается к ОЗУ.Историческая модель основана на том, что управление осуществлялось с помощьюЦП.Когда говорится о том, что организовано управление внешним устройством, топодразумевается, что реализуется два потока информации: поток управляющей информации (команды). поток данных, т.е. поток той информации, которая начинает двигаться от ОПк внешнему устройству, за счет потока управляющей информации.Поток управляющей информации обеспечивает управление ВУ, поток данныхначинает двигаться от ВУ к ОЗУ в результате выполнения 1ого потока. Оба потокаобрабатывает ЦП, что «отвлекает» его от других задач пользователя.Синхронное управление внешними устройствами с использованием контроллероввнешних устройств.В результате развития аппаратной части компьютера появляются контролерывнешнего устройства.
Он упростил жизнь ЦП. Все равно поток команд идет черезЦП, контролер взял некоторые функции:1.Обнаружение ошибок2. Обеспечение более высокоуровнего интерфейса по управлению ВУ3. Позволяет использовать команды типа «вывести головку на нужный сектор»,«…на нужный цилиндр»4. Появилось разделение функций синхронизации. ЦП подавал сигнал и ждал.В результате развития аппаратных прерываний появилась возможностьиспользовать асинхронный режим работы.Асинхронное управление внешними устройствами с использованием контроллероввнешних устройств.Появление контролеров прямого доступа позволяет вывести поток данных,который появляется при обмене с ВУ из ЦП. Это имеет смысл для блокориентированных устройств, подразумевающих большой поток информации.Поток управляющей информации остается в ведении ЦП.Управление внешними устройствами с использованием процессора или каналаввода/вывода.Наличие процессоров ввода-вывода позволяет обеспечить высокоуровневыйинтерфейс для ЦП при управлении внешними устройствами.
ЦП предоставляютсяразличные макрокоманды. (например «записать на диск … начиная с …места»)Программное управление внешними устройствамиЦели, которые стоят перед программным обеспечением:1. унификация программных интерфейсов доступа к внешним устройствам(унификация именования, абстрагирование от свойствконкретных устройств);2.
обеспечение конкретной модели синхронизации при выполнении обмена(синхронный, асинхронный обмен);3. обработка возникающих ошибок (индикация ошибки, локализация ошибки,попытка исправления ситуации);корректно обработать эту ситуацию, минимизировать негативные последствия.4. буферизация обмена – в системе очень многоуровневая, применяется на всехэтапах:- развитые канала ввода-вывода могут иметь встроенный КЭШ, которыйуправляется внутри этих каналов. Эта функцияостается на уровне ОС, этот КЭШ ОС полностью программноориентирован.5. обеспечение стратегии доступа к устройству (распределенный доступ,монопольный доступ);6.