Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Физическая и логическая организация файловой системы ОС UNIX. (16-2)

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

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

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

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

Нулевой блок – блок начальной загрузки.

Первый блок – супер-блок - содержит заголовок файловой системы. В заголовке находится информация о размере файловой системы (fsize), числе/количестве индексных дескрипторов (isize) и ссылка на список свободных блоков.

Начиная со второго, несколько блоков, содержащих индексные дескрипторы. Количество таких блоков определяется количеством индексных дескрипторов (количество блоков = isize/(blocksize/idsize), где idsize – размер одного индексного дескриптора, который обычно равен 64 байта). В ОС UNIX имя файла отсутствует в индексных дескрипторах. Индексный дескриптор корневого каталога имеет номер 2.

Все оставшиеся блоки используются под данные или образуют список свободных блоков.

Для обеспечения быстрого доступа к файлам и эффективной работы файловой системы некоторые ее части во время функционирования в ОС UNIX должны располагаться в основной памяти. Прежде всего, это супер-блок и список индексных дескрипторов. В первом супер-блоке – состояние файловой системы, в том числе и информация о свободном месте, а каждая запись в таблице индексных дескрипторов определяет информацию, необходимую для доступа к файлу.

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

Логическая и физическая организация системы управления вводом/выводом ОС UNIX. (15-2)

Суть логической организации – все устройства ввода/вывода есть файлы и чтение и запись на них есть чтение и запись в файл.

В ОС UNIX логическая организация ввода/вывода упрощена за счет наличия одинакового интерфейса ввода/вывода на уровне ядра системы.

Все файлы рассматриваются как последовательности байтов, к которым возможно как последовательное, так и прямое обращение. Для того чтобы с файлом можно было работать, он должен быть либо открыт с помощью open, либо создан (creat). При завершении процесса открытые файлы автоматически закрываются.

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

· Блок-ориентированные.

· Байт-ориетированные.

Блок-ориентированные дают возможность значительно повысить эффективность системы управления вводом/выводом за счет организации кэш-памяти. Кэш-память - это системные буфера ввода/вывода, размером с блок, где оседают те блоки данных, обращение к которым происходит наиболее часто. Таким образом, если возникает запрос на передачу данных, то сначала просматриваются внутренние буфера, т.е. кэш-память, и только в том случае, если необходимый блок отсутствует в кэш-памяти, происходит обращение через драйвер к внешнему устройству.

Байт-ориентированные предназначены для медленных периферийных устройств. Обмен информацией в этом случае осуществляется посимвольно через буфер символов в ядре ОС.

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

Байт-ориентированный интерфейс, обеспечивающий обмен группами символов без буферизации, называется прозрачным блок-ориентированным интерфейсом.

Структурная организация системы управления вводом/выводом ОС UNIX. (12-2)

Система ввода/вывода ОС UNIX – это часть ядра, выполняющая функции диспетчера устройств ввода/вывода.

Программная часть диспетчера включает:

· управляющую компоненту

· систему буферизации

· набор драйверов.

В качестве структурных компонент используются:

· дескрипторы специальных файлов

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

· таблица связи между драйверами блок-ориентированных устройств и ядром системы

· таблица буферов блоков

· таблиц прерываний.

Взаимодействие этих структур можно отобразить в виде следующей схемы:

Индексные дескрипторы специальных файлов содержат информацию:

· имя специального файла (на этот файл нельзя сделать ни жесткую ни символьную ссылку)

· тип устройства

· номере типа устройства (старший номер)

· номере устройства (младший номер)

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

Каждый дескриптор ссылается на соответствующий элемент в зависимости от типа устройства из таблицы связи. Эти таблицы позволяют ядру быстро перестраиваться на новый состав и параметры внешних устройств путем включения новых драйверов.

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

Таблица связи блок-ориентированных устройств, кроме того, связана с таблицей буферов блоков, указывающей буфера ввода/вывода, образующие кэш-память.

Программы драйверов предназначены для открытия и закрытия файлов, чтения и записи данных, а также для управления режимами работы устройств. Каждый драйвер разделен на несколько частей:

· верхняя часть драйвера работает в режиме вызывающего процесса и служит интерфейсом составной системы UNIX;

· нижняя часть работает в контексте ядра ОС и непосредственно взаимодействует с устройством.

Таблица прерываний обычно располагается в начальной области памяти по фиксированным адресам. При возникновении прерываний от ввода/вывода управление передается программе обработки прерываний драйвера, адрес которой выбирается из таблицы прерываний.

Реализация системы управления вводом/выводом ОС UNIX. (14-2)

(Здесь также рассказать про блок- и байт-ориентированные устройства)

Пример реализации ввода информации с блок-ориентированного устройства (hd0).

fd=open(“/dev/hd0”, 0);

read(fd,buf,n);

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

По адресу из таблицы связи управление передается необходимому драйверу, программа драйвера, прежде всего, проверяет, не располагается ли требуемый блок файла в кэш-памяти. Если это так, то моделируется сигнал прерывания об окончании обмена. В противном случае драйвер освобождает, когда это требуется, участок кэш-памяти и запускает операцию обмена.

По окончании обмена генерируются прерывания, и запускается подпрограмма обработки прерываний драйвера, адрес которой извлекается из определенной ячейки таблицы прерываний.

Далее программа драйвера переписывает информацию из кэш-памяти в область основной памяти, указанную драйвером ввода (buf).

После окончания операции ввода управление, обычно, передается диспетчеру процессов ядра ОС UNIX.

<== предыдущая лекция | следующая лекция ==>
Поддержка файлов ядром ОС UNIX . (4-2) | Начальная загрузка и выход на интерактивный режим в ОС UNIX. (25-2)
Поделиться с друзьями:


Дата добавления: 2014-01-20; Просмотров: 1935; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.