Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Учебный материал

Основные понятия ФС в ОС: задачи, иерархия, именование, способы организации хранения файлов, атрибуты файлов, структура ФС (на примере FAT, NTFS или UFS), способы реализации файлов в различных ФС

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

Методы распределения памяти с подкачкой на жесткий диск

ОП иногда оказывается недостаточно для того, чтобы вместить все текущие процессы, и тогда избыток процессов приходится хранить на диске, а для обработки динамически переносить их в память. Такая подмена (виртуализация) ОП дисковой памятью позволяет повысить уровень мультипрограммирования – объем ОП теперь не так жестко ограничивает количество одновременно выполняемых процессов. Виртуальный ресурс представляется обладающим свойствами, которыми он в действительности не обладает

Виртуализация ОП осуществляется совокупностью программных модулей ОС и аппаратных схем процессора и включает решение следующих задач:

- размещение данных в ЗУ разного типа (в ОП, на диске)

- выбор образов процессов или их частей для перемещения между ОП и диском

- перемещение данных между памятью и диском

- преобразование виртуальных адресов в физические

Подходы к виртуализации памяти:

- свопинг (swapping), или обычная подкачка: образы процессов выгружаются на диск и возвращаются в ОП целиком. «–»: перемещение избыточной информации; ОС не способна загрузить для выполнения процесс, виртуальное адресное пространство которого превышает свободную память. Почти не используется в современных ОС

- виртуальная память: между ОП и диском перемещаются части (сегменты, страницы) образов процессов

Реализации виртуальной памяти:

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

- сегментная: перемещение данных сегментами – частями виртуального адресного пространства произвольного размера, полученными с учетом смыслового значения данных

- сегментно-страничная: двухуровневое деление – виртуальное адресное пространство делится на сегменты, сегменты – на страницы. Единица перемещения данных – страница

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


 

Одна из главных задач ОС – обеспечение обмена данными между приложениями и ПУ. ОС должна управлять всеми УВВ

УВВ:

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

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

Обычно УВВ состоит из механической и электронной частей. Электронный компонент УВВ – контроллер, или адаптер

Интерфейс низкого уровня между устройством и контроллером обеспечивает конвертирование последовательного потока битов в блок байтов и коррекцию ошибок; после этого блок байтов уже обслуживает ОС

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

Способы реализации доступа к управляющим регистрам и буферам данных УВВ:

- раздельные адресные пространства: каждому управляющему регистру назначается номер порта ввода-вывода (8 или 16 разрядов). Адресные пространства ОЗУ и устройств ввода-вывода не пересекаются. Устаревший способ

- отображаемый на адресное пространство ввод-вывод: все управляющие регистры ПУ отображаются на адресное пространство памяти

- гибридная схема

Достоинства ввода-вывода, отображаемого на адресное пространство:

- для обращения к УВВ не нужны специальные команды – проще программировать по сравнению с отдельным адресным пространством

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

- каждая команда ЦП для обращения к памяти может использоваться и для работы с портами

Недостатки ввода-вывода, отображаемого на адресное пространство:

- регистры ввода-вывода нельзя кэшировать – приходится кэшировать избирательно

- УВВ должны отслеживать все обращения ЦП к памяти, что в схемах с более чем одной шиной можно сделать только с помощью фильтрации адресов специальной микросхемой (это сделано еще на базе Pentium I)

На практике ЦП не опрашивает по байту УВВ, а использует прямой доступ к памяти – DMA (Direct Memory Access). ОС имеет прямой доступ к памяти через аппаратный DMA-контроллер

Пример – чтение с жесткого диска

При отсутствии DMA: контроллер считывает с диска один или несколько секторов последовательно, пока весь блок не окажется в буфере контроллера; контроллер проверяет контрольную сумму; контроллер инициирует прерывание; ОС читает блок диска побайтно или пословно с контроллера

При использовании DMA: ЦП программирует DMA-контроллер, устанавливая его регистры и указывая, какие данные и куда следует переместить. Дает команду дисковому котроллеру прочитать данные во внутренний буфер и проверить его содержимое; DMA-контроллер начинает перенос данных, посылая дисковому контроллеру по шине запрос чтения; перенос данных из контроллера жесткого диска в ОЗУ; по окончании записи контроллер диска посылает сигнал подтверждения DMA-контроллеру. Шаги 2-4 повторяются, пока в память не будет считано необходимое количество данных. ОС не нужно копировать блок диска в память – он уже находится там; следовательно, разгружается ЦП

Прерывание (interrupt) – сигнал, сообщающий процессору об асинхронном событии. Выполнение текущей последовательности команд приостанавливается, управление передается обработчику прерывания, который обрабатывает событие и возвращает управление в прерванный код

Соединения между устройством и контроллером прерываний – специальные линии шины, а не выделенные провода

Когда УВВ заканчивает работу, оно инициирует прерывание. При отсутствии других запросов прерывания контроллер обрабатывает прерывание немедленно; иначе прерывание игнорируется, а УВВ продолжает удерживать сигнал о прерывании для контроллера. Контроллер выставляет на адресную шину номер устройства, требующего к себе внимания, и устанавливает сигнал прерывания на соответствующий контакт процессора. Процессор приостанавливает текущую работу обрабатывает прерывание. Номер, выставленный на адресную шину, используется в качестве индекса в таблице – векторе прерываний, из которой извлекается новое значение счетчика команд. Новый счетчик команд указывает на начало процедуры обработки прерывания. Обработчик прерываний подтверждает получение прерывания, что разрешает контроллеру издавать новые прерывания. Прежде чем начать обработку прерываний, необходимо сохранить в стеке определенную информацию (счетчик команд, регистры ЦП)

Задачи ПО ввода-вывода:

- независимость от устройств: доступ к любому УВВ без предварительного указания конкретного устройства

- единообразие именования: имя файла или устройства – просто строка или целое число, не зависящее от физического устройства

- обработка ошибок: ошибки должны обрабатываться как можно ближе к аппаратуре. Если контроллер обнаружил ошибку, он должен исправить ее сам

- способ переноса данных: синхронный (блокирующий) или асинхронный (управляемый прерываниями). Асинхронный: ОС делает прерывания блокирующими для пользователя, то есть программа делает системный вызов и ожидает ответа

- буферизация при обмене большими объемами данных

К выделенным устройствам может иметь доступ только один пользователь, к устройствам коллективного пользования – несколько пользователей

Способы осуществления операций ввода-вывода:

- программный: процесс собирает строку в буфере, получает принтер в пользование, просит ОС распечатать строку. ОС копирует буфер в пространство ядра, и как только принтер доступен, посимвольно копирует строку в регистр принтера. «+»: простая реализация. «–»: процессор занят на все время операции ввода-вывода, так как постоянно опрашивает готовность устройства. Приемлемо только в примитивных встроенных системах

- управляемый прерываниями: поступает системный вызов печати строки, буфер копируется в ядро, разрешаются прерывания. Первый символ копируется на принтер, процессор вызывает планировщик и освобождается. Когда символ передался в принтер и тот снова готов принять следующий, он инициирует прерывание. Текущий процесс останавливается и запускается процедура обработки прерывания. Если напечатаны все символы, процесс, отправивший их на печать, разблокируется, иначе печатает следующий символ и выходит из прерывания. «–»: прерывания происходят при печати каждого символа, а обработка прерывания требует времени

- с использованием DMA: контроллер DMA поставляет символы принтеру по одному, не обращаясь к ЦП. Отличается от управляемого прерываниями тем, что вместо ЦП всю работу выполняет DMA-контроллер, а прерывание одно на весь буфер, отправленный на печать

ПО ввода-вывода организуется в виде четырех уровней над аппаратурой (сверху вниз): ПО ввода-вывода уровня пользователя, ПО ОС, независимое от устройств, драйверы устройств, обработчики прерываний

Обычно в начале операции ввода-вывода драйвер устройства блокирует сам себя. Когда от аппаратуры приходит прерывание (окончание работы), начинает работу обработчик прерываний. Он может разблокировать драйвер, запустивший его. Чтобы получить доступ к регистрам контроллера, драйвер устройства должен быть частью ядра ОС. Драйверы устройств обычно располагаются под остальной частью ОС. Иерархически структура отображена для наглядности – на самом деле весь обмен информацией между драйверами и контроллерами устройств идет по шине:

В большинстве ОС определен стандартный интерфейс, который должны поддерживать все блочные драйверы, и стандартный интерфейс, поддерживаемый всеми символьными драйверами

Управление устройством подразумевает выдачу ему серии команд, которые драйвер записывает в регистры устройства. Затем устройство выполняет работу, по окончании которой драйвер проверяет ее результат. Если ошибок нет, данные передаются по уровню выше в независимое от устройств ПО, обычно выполняющее следующие функции: единообразный интерфейс для драйверов устройств, буферизация, сообщения об ошибках, захват и освобождения выделенных устройств, размер блока, не зависящий от устройства. Основная задача независимого от устройств ПО – выполнение функций ввода-вывода, общих для всех устройств, и предоставление единообразного интерфейса для программ уровня пользователя


 

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

Файл – именованная область внешней памяти, в которую можно записывать и из которой можно считывать данные. Файлы хранятся в энергонезависимой памяти, обычно на магнитных дисках. Одно из исключений – так называемый электронный диск (в ОП создается структура, имитирующая ФС)

Основные цели использования файла:

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

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

ФС – часть ОС, включающая:

- совокупность всех файлов на диске

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

- комплекс системных ПС, реализующих различные операции над файлами

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

Задачи ФС зависят от способа организации вычислительного процесса в целом. Самый простой тип – ФС в однопользовательских и однопрограммных ОС (MS-DOS). Основные функции такой ФС: именование файлов, программный интерфейс для приложений, отображение логической модели ФС на физическую организацию хранилища данных, обеспечение устойчивости к сбоям питания, программным и аппаратным ошибкам

Задачи ФС усложняются в однопользовательских мультипрограммных ОС. Добавляется задача совместного доступа к файлу из нескольких процессов. Файл в этом случае является разделяемым ресурсом, а значит, ФС должна решать весь комплекс проблем, связанных с такими ресурсами (блокировка файла и его частей, исключение тупиков, согласование копий). Во многопользовательских ОС появляется еще одна задача: защита файлов одного пользователя от НСД другого пользователя

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

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

Иерархия ФС:

Каталоги образуют дерево, если файлу разрешено входить только в один каталог (б, как в DOS и Windows), и сеть, если файл может входить сразу в несколько каталогов (в, как в UNIX). В древовидной структуре каждый файл является листом, каталог самого верхнего уровня – корневой (root). Частный случай иерархической структуры – одноуровневая организация, когда все файлы входят в один каталог (а)

Типы имен файлов в иерархических ФС:

- простое, или короткое, идентифицирует файл в пределах одного каталога

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

- относительное определяется через понятие «текущий каталог»

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

- размещение автономной ФС на каждом устройстве (DOS, Windows)

- монтирование – объединение в единую ФС с единым деревом каталогов (UNIX)

Понятие «файл» включает не только хранимые им данные и имя, но и атрибуты

Атрибуты файла – информация, описывающая его свойства (тип, владелец, признак «только для чтения»). Пользователь может получать доступ к атрибутам, используя средства, предоставленные для этих целей ФС. Обычно разрешается читать значения любых атрибутов, а изменять – только некоторые. Значения атрибутов файлов могут непосредственно содержаться в каталогах (FAT в DOS) или в специальных таблицах (в каталогах содержатся ссылки на них – UFS в UNIX). В UFS структура каталога такова: запись о каждом файле содержит короткое символьное имя и указатель на индексный дескриптор файла (таблица со значениями атрибутов)

ФС хранятся на дисках. Нулевой сектор диска называется главной загрузочной записью – MBR (Master Boot Record) – и используется для загрузки компьютера. В конце MBR содержится таблица разделов, в которой хранятся начальные и конечные адреса каждого раздела. При загрузке компьютера BIOS считывает и исполняет MBR-запись, после чего определяется активный раздел и загрузчик в MBR-записи исполняет его. Программа, находящаяся в загрузочном блоке раздела, загружает ОС

Пример структуры ФС:

Суперблок содержит ключевые параметры ФС

i-узлы – массив структур данных, содержащих информацию о файлах

Способы реализации файлов:

- непрерывные файлы – наборы соседних блоков диска. «+»: простота реализации и высокая производительность (весь файл читается с диска за одну операцию). «–»: в результате фрагментации необходимо будет знать конечный размер файла перед записью или постоянно производить дефрагментацию. Можно применять на CD и DVD

- связные списки. Файл состоит из блоков диска. Первое слово каждого блока используется как указатель на следующий блок. «–»: если нужно прочитать информацию в конце файла, придется читать сначала; нужно место на содержание указателей на следующий блок

- связный список при помощи таблицы в памяти: указатели на следующие блоки хранятся в отдельной таблице. «–»: вся таблица (FAT-таблица) должна находиться в памяти. Для диска на 20 ГБ с блоками размером 1 КБ потребовалась бы таблица из 20 миллионов записей, каждая из которых имеет размер не менее 4 байт, а это 80 МБ постоянно занятой ОП

- i-узлы: с каждым файлом связывается структура данных (i-узел index), содержащая атрибуты файлов и адреса блоков файла. Перед работой с файлом i-узел читает в памяти все адреса блоков. «+»: требуется небольшой объем ОП

FAT (File Allocation Table – таблица размещения файлов) – классическая архитектура ФС. Из-за своей простоты все еще широко используется для flash-накопителей

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

Версии FAT (FAT12, FAT16, FAT32) отличаются по следующим параметрам: размер кластера, общий максимальный объем диска, разрядность указателей на кластеры (соответственно 12, 16, 32)

Отношения между записями каталогов, кластерами и FAT:

Физическая структура файловой системы FAT:

Зарезервированная область: данные из категории ФС. Ее размер определяется в загрузочном секторе. В FAT12 и FAT16 занимает 1 сектор

Область FAT: основные и резервные структуры FAT. Начинается в секторе, следующем за зарезервированной областью. Ее размер определяется количеством и размером структур FAT

Область данных: кластеры, выделяемые для хранения файлов и содержимого каталогов

Для открытия файла ОС должна прочитать соответствующую запись каталога

Формат каталоговой записи в FAT32 (в скобках – размер в байтах): имя (8), расширение (3), атрибуты (1), NT (1), контрольная сумма (1), дата и время создания (4), дата последнего доступа (2), старшие 16 бит номера начального блока (2), дата и время последней записи (4), младшие 16 бит номера начального блока (2), размер (4)

Если у файла есть также длинное имя, оно хранится в одной или нескольких каталоговых записях, предшествующих описателю файла. Каждая такая запись содержит до 13 символов формата Unicode. Элементы имени хранятся в обратном порядке, начинаясь сразу перед описателем файла в формате MS-DOS и последующими фрагментами перед ним

Формат каталоговой записи с фрагментом длинного имени файла в FAT32 (в скобках – размер в байтах): единицы (1), 5 символов (10), атрибуты (1), нули (1), контрольная сумма (1), 6 символов (12), нули (2), 2 символа (4)

ОС отличает стандартные каталоговые записи от записей с фрагментом длинного файла по полю атрибутов. Для фрагмента длинного имени это поле содержит значение 0x0F, что соответствует невозможной комбинации атрибутов для описателя файла в MS-DOS. Старые программы, написанные для работы в MS-DOS, читая каталог, игнорируют такие описатели как неверные


 

<== предыдущая лекция | следующая лекция ==>
Примитивы межпроцессного взаимодействия | ВВЕДЕНИЕ. Для подготовки к проверке знаний по охране труда
Поделиться с друзьями:


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


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



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




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