Околения компьютеров
Скачать 1.67 Mb.
|
ИД. Первые десять указывают на десять блоков некоторого файла. Если файл занимает более 10 блоков, то 11 элемент указывает на косвенный блок, содержащий до 128 адресов дополнительных блоков файла (это еще 70656 байт). Большие файлы используют 12-ый элемент, который указывает на блок, содержащий 128 указателей на блоки, каждый из которых содержит по 128 адресов блоков файла. Еще в больших файлах аналогично используется 13 элемент. Трехкратная косвенная адресация позволяет создавать файлы длиной (10+128+128*128+128*128*128)*512 байт. Таким образом, если файл меньше 512 байт, то необходимо одно обращение к диску, если длина файла находится в пределах 512-70565 байт, то - два и так далее. Приведенный способ адресации позволяет иметь прямой и быстрый доступ к файлам. Эта возможность также усиливается кэшированием диска, позволяющим хранить в памяти наиболее используемые блоки. При открытии файла соответствующий ИД считывается в память и системе становятся доступны все номера блоков данного файла. Для одного и того же файла, открываемого несколько раз, в памяти находится только один ИД. Система фиксирует число открытий данного файла и, когда этот счетчик обнуляется, резидентный образ ИД переписывается на диск. Если при этом изменений в файле не было и не модифицировался ИД, то запись не выполняется. Указанные особенности существенно влияют на эффективность файловой системы. Файл каталог . Файл каталог для ФС System V представляет собой таблицу, каждая запись которой состоит из 16 байтов. Первые 2 байта – это номер индексного дескриптора. Последующие 14 байтов – это поле для имени файла. Соответственно имеется предопределенные записи в этих полях – это первые две строчки. 1-я строчка – это ссылка на самого себя, т.е. в этой строчке находится имя «.» (точка) и номер индексного этого файла каталога. Следующая запись – это ссылка на родительский каталог, соответственно в нем имеется номер индексного дескриптора и имя «..» (две точки).Содержимое файла – таблица. 1-е поле – это номер индексного дескриптора (ИД), которому соответствует имя Name из второго поля. Размеры полей в общем случае могут быть различные. Например размер поля ИД – 2 байта (ограничение числа ИД в файловой системе 65535), размер поля Name – 14 байт (соответственно ограничение на длину имени). В Unix две первые строки любого каталога имеют фиксированное содержание: имя «•» - ссылка на самого себя, имя «••» - ссылка на родительский каталог. Видно, что при такой реализации имя файла “отделено” от других его атрибутов. Это позволяет, в частности, один и тот же файл внести в несколько каталогов. При этом, как отмечалось выше, данный файл может иметь разные имена в разных каталогах, но ссылаться они будут на один и тот же ИД, который является ключом для доступа к данным файла. При обсуждении понятия ИД говорилось, что каждая новая ссылка к ИД отмечается в специальном поле. Рассмотрим пример, иллюстрирующий связь файлов с каталогами. Установление связей Древовидность файловой системы Unix нарушается возможностью установления ссылок на одни и те же индексные дескрипторы из различных каталогов. Это может быть достигнуто за счет использования средств установления дополнительных связей. Существует две разновидности этой операции. Жесткая связь -. с одним и тем же индексным дескриптором будет ассоциироваться два или более имени, размещенных в произвольных точках ФС. При этом каждое из этих имен равноценно. Для этого используется команда: ln …dir1/name1 …dir2/name2 – (дли индексного дескриптора, с которым ассоциировано имя name1 добавляется еще одно имя – name2). Все имена, ассоциированные таким образом с индексным дескриптором равноправны. При этом увеличивается значение поля индексного дескриптора число имен, которые ассоциированы с данным ИД. Нельзя устанавливать жесткую связь для файлов-каталогов. Установление символической связи - косвенная адресация на существующее имя файла. В ФС можно создать специальный файл ссылку, содержимое которого размещается в индексном дескрипторе этого файла. Этим содержимым является текстовая строка, указывающая полное имя того файла, с которым нужно ассоциировать новое имя (имя файла-ссылки). Т.е. если name 1 и name 2 - это абсолютно равноправные файлы, то name 3 – это текстовая (символьная ссылка). Для name 3 создается свой индексный дескриптор и через него организуется ссылка на файл name 1, при этом уже в индексном дескрипторе файла name 1 никакой информации о дополнительных ссылках на этот файл нет. Т.е. здесь уже некоторая асимметричная модель множественного именования содержимого файла. Если будет нужно удалить файл name 1, то система позволит это сделать, потому что нигде в информации, связанной с этим файлом, не указывается, что на него есть текстовая ссылка. И соответственно, когда после удаления этого файла произойдет обращение по ссылке /dir1/name1, то уже возникнут какие-то проблемы. Следует помнить, что не на любой файл можно установить ссылку. Для этих целей используется команда: ln –s …dir1/name1 …dir2/name3 – в результате образуется специальный файл - ссылка. Достоинства ФС модели версии System V 1)Оптимизация в работе со списками номеров свободных индексных дескрипторов и блоков. 2)Организация косвенной адресации блоков файлов, позволяющая использовать эффективный доступ к значительному количеству блоков файла. Недостатки ФС модели версии System V 1)Концентрация важной информации в суперблоке - ключевая информация сконцентрирована в суперблоке файловой системы, физическая потеря содержимого суперблока может приводит к значительным проблемам, касающимся целостности файловой системы. 2)Проблема надежности (много ссылочных структур, возможна потеря данных при сбоях). 3)Фрагментация файла по диску – т.е. при достаточно больших размерах файла его блоки могут произвольным образом размещаться на физическом МД? Что может приводить к выполнению значительного числа механических операций перемещения головок устройства при чтении/записи данных файла. 4)Организация каталога накладывает ограничения на возможную длину имени файла (14 символов). Билет 44. Модель версии FFS BSD В Unix 4.2 BSD разработана модель организации файловой системы, которая получила название Fast File System - FFS (быстрая файловая система). Основной идеей данной модели файловой системы является кластеризация дискового пространства файловой системы, c целью минимизации времени чтения/записи файла, а также уменьшения объёма не иcпользуемого пространства внутри выделенных блоков. Суть кластеризации заключается в следующем. Дисковое пространство, также, как и в модели s5fs имеет суперблок в котором размещена ключевая информация файловой системы (структура суперблоков s5fs и ffs, в общем случае, логически идентична), далее, дисковое пространство разделено на области одинакового размера, называемые группами цилиндров. Далее, стратегия функционирования файловой системы такова, что она старается разместить содержимое файлов (блоки файлов) в пределах одной группы цилиндров, при этом стараясь располагать файлы в той же группе цилиндров, что и каталог в котором они расположены. Группа цилиндров: - копия суперблока - информация о свободных блоках (битовый массив) и о свободных индексных дескрипторах - массив индексных дескрипторов (ИД) - блоки файлов Стратегии размещения 1)Новый каталог помещается в группу цилиндров, число свободных индексных дескрипторов в которой больше среднего значения во всей файловой системе в данный момент времени, а также имеющей минимальное число дескрипторов каталогов в себе; 2)для обеспечения равномерности использования блоков данных файл разбивается на несколько частей, при этом первая часть файла располагается в той же группе цилиндров, что и его дескриптор, при размещении последующих частей используется группа цилиндров, в которой число свободных блоков превышает среднее значение. Длина первой части выбирается таким образом, чтобы она адресовалось непосредственно индексным дескриптором (т.е. не «косвенно»), остальные части разбиваются фиксированным образом, например по 1 мегабайту; 3)последовательные блоки файлов размещаются исходя из оптимизации физического доступа (см. ниже) Dt – технологический промежуток времени, который затрачивает система на передачу и прием устройством МД команды на чтение очередного блока. За это время диск проворачивается и головки обмена «пропускают» начало очередного блока, поэтому если мы будем читать следующий блок, то головка будет вынуждена ожидать полного поворота диска на начало блока. В связи с этим эффективнее читать не последовательные блоки (в этом случае нужно ожидать полного поворота диска), а блоки, размещенные на диске через один, два... (смещение определяется поворотом диска за время Dt). Внутренняя организация блоков Блоки 0 1 … 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. планирование выполнения операций обмена – возникает, когда возникает конкуренция за доступ к ресурсу. Билет 46. Управление внешними устройствами. Буферизация обмена. Планирование дисковых обменов, основные алгоритмы. Буферизация обмена T – время обмена; С – время выполнения программы между обменами t – общее время выполнения программы Схемы буферизации ввода-вывода а) Без буферизации Если обмен проходит без буферизации, то совокупное время выполнения программы будет складываться из времени обмена и времени выполнения программы между обменами. б) Одинарная буферизация При использовании одиночной буферизации подавляется заказ на обмен с ОП, и процесс может в этом случае не ожидать. Целесообразно использовать, когда идет интенсивный поток заказов на обмен. в) Двойная буферизация Модель использования двойной буферизации следующая: в один буфер помещаются данные по обмену, в другой ОС готовит данные за предыдущий обмен. г) Циклическая буферизация Какую схему выбрать зависит от интенсивности буферизации и особенности действий Планирование дисковых обменов Возможна ситуация, когда поток заказов на обмен > пропускной способности системы в некоторые моменты. Тогда есть несколько вариантов действий: 1.Принимаем решения о порядке обработки запросов 2. начинаем учитывать приоритеты 3. осуществляем случайный выбор. Проблема: Обмены могут быть зависимы друг от друга. В таком случае некоторые варианты не подходят. Пусть наш диск может сразу переходить i-ой дорожки на j-ую без начального позиционирования. Рассмотрим модельную ситуацию: головка HDD позиционирована на дорожке 15 Очередь запросов к дорожкам: 4, 40, 11, 35, 7, 14 |