Ввод/вывод и файловая система. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Ввод/вывод и файловая система.



 

Основные задачи подсистемы ввода/ вывода в мультипрограммной ОС:

- организация параллельной работ устройств ввода/вывода и процессора.

- согласование скоростей обмена данными и кэширование данные.

- разделение устройств и данных между процессами.

- обеспечение удобного логического интерфейса между устройствами ввода/вывода и остальной частью системы.

- поддержка широкого спектра драйверов с возможностью простого включения в систему нового драйвера.

- динамическая загрузка и выгрузка драйвера.

- поддержка синхронных и асинхронных операций ввода/вывода.

Подсистема ввода/вывода имеет ярко выраженную многослойную структуру, которая помогает объединить большое количество драйверов в систему с общим интерфейсом.

Драйверы делятся на низкоуровневые (и непосредственно управляющие работой контроллера внешних устройств) и высокоуровневые (обеспечивают логический интерфейс между устройствами)

Например: драйвер файловых систем.

Для координации работы драйвера в подсистеме ввода/вывода может выделится особый модуль – менеджер ввода/вывода.

Аппаратные драйверы делятся на: блок-ориентированные (обеспечивают доступ к устройствам) и байт-ориентированные (управление устройствами, образуют побайтный, а не адресный обмен).

Файловая система – представляет собой комплекс системных программных средств. Под ФС понимают также набор всех файлов и служебных структур данных, хранящихся на внешнем устройстве.

Кроме обычных файлов ОС поддерживает такие типы файлов, как каталоги, символы, ссылки, именованные каналы и специальные файлы. Специальный файл является универсальной моделью устройства ввода/вывода, представляет ее для остальной части ОС и прикладных процессов в виде неструктурированного набора байтов, то есть в виде файла.

Современные ФС имеют иерархичную структуру упрощенную, именование файлов и их поиск. Физическая организация ФС подразумевает способы размещения и адресации отдельных частей, а также способы организации, описывающие размещение файлов и их атрибуты.

Для синхронизации совместно работающих процессов, пытающихся использовать один и тот же файл одновременно в ФС, реализуется механизм блокировки и отдельной записи в файл.

Механизм контроля доступа к файлу позволяет администратору многопользовательской ОС, задавать отдельным пользователям и группам пользовательский набор операций, который им разрешено выполнять над отдельными или группами файлов, объединенных в каталог.

Права доступа к файлу могут присваиваться явно, а могут наследовать у родительского каталога, это сокращает количество рутинных операций и упрощает логику доступа.

Управление файлами Unix.

 

Ядро системы Unix рассматривает файлы, как потоки (последовательности). Любая внутренняя логическая структура связана с конкретными приложениями. Unix же работает с физической структурой файла.

Различают 4 типа файлов в Unix:

- обычные файлы;

- каталоги – содержат списки имен файлов и указателей на индексные узлы. Каталоги имеют иерархическую структуру и представляют собой обычный файл, имеющий особые привилегии защиты от записи, так что запись может произвести только ОС все остальные только чтение;

- специальные (используются для доступа к периферийным устройствам, каждое устройство связано с определенным файлом);

- именованные каналы.

 

Индексные узлы.

Именование всеми типами файлов осуществляется посредством индексных узлов.

Узел является управляющей структурой содержащей ключевую индивидуальную необходимую ОС для работы с определенным файлом.

Информация содержащаяся на индексном узле ОС Unix.

Режим файла 16 битовый флаг, хранящий права доступа и использования файлов связанных с доступом
  12-14 - тип файла (Спец. Файл, каталог…)
  9-11 - флаги исполнения
  8 - права владельца на чтение
  7 - права владельца на запись
  6 - права владельца на исполнение
  5 - права на чтение для группы
  4 - права на запись для группы
  3 - права на исполнение для группы
  2 - права на чтение для прочих
  1 - права на запись для прочих
  0 - права на исполнение для прочих
Счётчик связи Количество ссылок на этот узел в различных каталогах или в одном
ID владельца Владелец файла
ID группы Группа связанная с файлом
Размер файла Число байтов
Адрес файла 39 байтов адресной информации
Последнее обращение Время последнего обращения к файлу
Последнее изменение время последней индентификации файла
Изменение узла Время последней модификации узла

Размещение файлов.

 

Размещение файлов происходит поблочно, динамически по мере необходимости отсюда следует блоки файлов на диске не обязательно образуют непрерывную область для отслеживания фалов используется индексный метод, при этом часть индекса храниться в индексной дескрипторе (inode).

Узел включает в себя 39 байт адресной информации, организованной как 13 трехбайтных адресов (указателей).

Первые 10 адресов указывают на первые 10 блоков данных.

Если файл больше 10 блоков (больше 5-ти Кбайт), то используется 1,2 или 3 уровня косвенности.

11 адрес узла указывает на блок на диске (блок 1-го уровня косвенности) содержащий следующую часть индекса этот блок содержит указатели на последние блоки файла.

Если файл содержит еще большее число блоков, то 12-й адрес узла укажет на 2-ой уровень косвенности. Этот блок содержит список адресов дополнительного уровня косвенности на следующие блоки. Если файл содержит еще больше блоков, то 13-й адрес – на третий уровень косвенности.

 

Емкость файлов в ОС Unix.

Уровень Количество блоков Количество байт
Прямой   10 кб
Один уровень коственности   256 кб
Два уровня коственности 256Х256=64 кб 64 Мб
Три уровня коственности 256Х64 кб= 16 мб 16 Гб

 

 

- такая схема имеет фиксированный относительно небольшой размер, отсюда следует может длительное время содержаться в ОЗУ.

- доступ к небольшим фалам осуществляется с малым уровнем косвенности или вовсе без него, что сокращает время запроса и доступа к диску.

- теоретически максимальные размеры файла достаточно велики для удовлетворения всех программ.

inode адреса блоков данных блоки данных

 


 

 


адреса блоков с адресами блоков данных

 
 


рис 11. Схема адресации блоков в Unix.


Рис.12. Структура индексного узла

 

Данную схему используют файловые системы Unix (а также файловые системы HPFS, NTFS и др.). Такой подход позволяет при фиксированном, относительно небольшом размере индексного узла поддерживать работу с файлами, размер которых может меняться от нескольких байтов до нескольких гигабайтов. Существенно, что для маленьких файлов используется только прямая адресация, обеспечивающая максимальную производительность.

Размер блока

Размер логического блока играет важную роль. В некоторых системах (Unix) он может быть задан при форматировании диска. Небольшой размер блока будет приводить к тому, что каждый файл будет содержать много блоков. Чтение блока осуществляется с задержками на поиск и вращение, таким образом, файл из многих блоков будет читаться медленно. Большие блоки обеспечивают более высокую скорость обмена с диском, но из-за внутренней фрагментации (каждый файл занимает целое число блоков, и в среднем половина последнего блока пропадает) снижается процент полезного дискового пространства.

Для систем со страничной организацией памяти характерна сходная проблема с размером страницы.

Проведенные исследования показали, что большинство файлов имеют небольшой размер. Например, в Unix приблизительно 85% файлов имеют размер менее 8 Кбайт и 48% - менее 1 Кбайта.

Можно также учесть, что в системах с виртуальной памятью желательно, чтобы единицей пересылки диск-память была страница (наиболее распространенный размер страниц памяти - 4 Кбайта). Отсюда обычный компромиссный выбор блока размером 512 байт, 1 Кбайт, 2 Кбайт, 4 Кбайт.

Файловая система ОС Unix.

 

В классической ОС Unix файловая система расположена на диске таким образом.

 

 

 
 

 

 


inodes

Суперблок Блоки данных

Загрузочный блок

Рис.13. Физическая организация файловой системы ufs.

 

В блоке 1 храниться так называемый суперблок, который содержит критическую информацию о размещении ФС (файловая система), включая количество inode-ов, количество дисковых блоков, а так же начала списка свободных блоков. При уничтожении суперблока ФС окажется не читаемой.После суперблока располагается inode-ы, а за ними блоки данных.

Каталог традиционной ФС Unix представляет собой не сортированный набор 16-ти байтовых записей 2 байта->Ne inode, 14-> имя файла.

При открытии файлов в рабочем каталоге ОС считывает его (каталог), ищет имя нужного файла в нем и, если имя найдено, то считывает Ne inode, а затем считывает данные inode из области inode –ов в ОП (специализирует таблицу индексных узлов, которые хранятся в структуре данных ядра).

В начале раздела находится суперблок, содержащий общее описание файловой системы, например:

· тип файловой системы;

· размер файловой системы в блоках;

· размер массива индексных узлов;

· размер логического блока.

Описанные структуры данных создаются на диске в результате его форматирования (например, утилитами format, makefs и др.). Их наличие позволяет обращаться к данным на диске как к файловой системе, а не как к обычной последовательности блоков.

В файловых системах современных ОС для повышения устойчивости поддерживается несколько копий суперблока. В некоторых версиях Unix суперблок включал также и структуры данных, управляющие распределением дискового пространства, в результате чего суперблок непрерывно подвергался модификации, что снижало надежность файловой системы в целом. Выделение структур данных, описывающих дисковое пространство, в отдельную часть является более правильным решением.

Массив индексных узлов (ilist) содержит список индексов, соответствующих файлам данной файловой системы. Размер массива индексных узлов определяется администратором при установке системы. Максимальное число файлов, которые могут быть созданы в файловой системе, определяется числом доступных индексных узлов.

В блоках данных хранятся реальные данные файлов. Размер логического блока данных может задаваться при форматировании файловой системы. Заполнение диска содержательной информацией предполагает использование блоков хранения данных для файлов директорий и обычных файлов и имеет следствием модификацию массива индексных узлов и данных, описывающих пространство диска. Отдельно взятый блок данных может принадлежать одному и только одному файлу в файловой системе.

Директории в ОС Unix

Структура директории проста. Каждая запись содержит имя файла и номер его индексного узла. Вся остальная информация о файле (тип, размер, время модификации, владелец и т. д. и номера дисковых блоков) находится в индексном узле.


Рис. 14. Вариант записи в директории Unix

В более поздних версиях Unix форма записи претерпела ряд изменений, например, имя файла описывается структурой. Однако суть осталась прежней.

 



Поделиться:


Последнее изменение этой страницы: 2017-02-07; просмотров: 326; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 13.59.130.130 (0.023 с.)