Управление логическими/виртуальными ресурсами
Развитием системного программного обеспечения стало появление уровня управления логическими, или виртуальными, ресурсами (или устройствами). В основу этого уровня легло обобщение особенностей физических устройств одного вида и создание драйверов, имеющих единые интерфейсы, посредством которых осуществляется доступ к различным физическим устройствам одного типа. Для этих целей в современных вычислительных системах предусмотрена возможность программного создания и использования т.н. логических, или виртуальных, ресурсов (виртуальное —нечто реально не существующее, не имеющее реальной, физической организации). Логическое/виртуальное устройство (ресурс) — это устройство/ресурс, некоторые эксплутационные характеристики которого (возможно все) реализованы программным образом. Современные вычислительные системы позволяют создавать разнообразные логические/виртуальные устройства и соответствующие им драйверы. Драйвер логического/виртуального ресурса — это программа, обеспечивающая существование и использование соответствующего ресурса. Для этих целей при его реализации возможно использование существующих драйверов физических и виртуальных устройств. Возможно построение достаточно развитой иерархии логических устройств. Например, на рисунке изображена упрощенная схема организации ввода-вывода в системе. Она включает в себя многоуровневую иерархию виртуальных и физических устройств и соответствующих им драйверов, по степени обобщения которых можно выделить следующие группы.
-
Драйверы физических устройств — обеспечивают доступ к конкретным физическим устройствам. Например, драйвер жесткого диска фирмы IBM модели Deskstar или драйвер жесткого диска фирмы Seagate модели Barracuda 3. Каждый из данных драйверов имеет особенности, характеризующие конкретное устройство, отраженные в соответствующем интерфейсе.
-
Драйверы виртуальных устройств определенного типа (например, драйвер виртуального диска), предоставляют обобщенные интерфейсы доступа к разнообразным физическим устройствам данного типа. Данные драйверы имеют связи с драйверами конкретных физических устройств данного типа. Запрос к данному драйверу виртуального устройства обычно транслируется драйверу конкретного физического устройства и, в конечном итоге, управляющие команды получит само устройство. Кроме того, возможна «реализация» виртуального устройства определенного типа на устройствах других типов, например, возможна организация работы с виртуальным диском, реализованном на пространстве оперативной памяти, в этом случае драйвер виртуального устройства имеет связь с драйверами физических устройств других типов.
-
Драйверы виртуальных устройств, которым затруднительно поставить в соответствие физическое устройство или группу физических устройств определенного типа. Примером могут служить драйверы различных файловых систем (файловая система — программный компонент вычислительной системы, обеспечивающий именованное хранение и доступ к данным).
Основным результатом появления уровня управления виртуальными устройствами вычислительной системы стала многоуровневая унификация интерфейсов доступа к ресурсам вычислительной системы, что существенно упростило проблему программирование устройств компьютера, а также предоставило качественно новые возможности в функционировании вычислительных систем и в создании их программного обеспечения. Примером могут служить файловые системы, которые обеспечивают простые и надежные интерфейсы именованного хранения и использования данных, полностью скрывая от пользователя проблемы ее внутренней организации. К примеру, пользователь современной вычислительной системы может не только не знать, на каком внешнем запоминающем устройстве размещены данные его файлов, он может не знать и территориальное расположение и тип компьютера, на котором хранятся его данные. Существенное развитие получили средства управления виртуальными устройствами (ресурсами), которые обеспечивают контроль за созданием и использованием ресурсов вычислительной системы.
-
Схема организации ввода-вывода в системе.
Итак, мы рассмотрели два первых программных уровня структуры вычислительной системы — это уровни, обеспечивающие функционирование ресурсов в вычислительной системе. Под ресурсами вычислительной системы мы будем понимать совокупность всех физических и виртуальных ресурсов. Одной из характеристик ресурсов вычислительной системы является их конечность. То есть рано или поздно в системе возникает конкуренция за обладание ресурсом между его программными потребителями. При этом если речь идет о таком виртуальном ресурсе, как файловая система, то конечным является размер файловой системы на устройствах хранения данных, ограничения на предельное количество зарегистрированных в файловой системе файлов. Именно за эти параметры возможно возникновение конкуренции при использовании файловой системы. А теперь попытаемся вернуться к проблеме определения понятия операционной системы. Операционная система — это комплекс программ, обеспечивающий управление ресурсами вычислительной системы. Это основная концепция данного понятия. Позднее мы будем уточнять это определение, рассматривать отдельные функции ОС. В структурной организации вычислительной системы операционная система представляется уровнями управления физическими и виртуальными ресурсами.
С точки зрения средств программирования, доступных на уровне управления виртуальными ресурсами, пользователю предоставляются система команд компьютера, а также интерфейсы, обеспечивающие доступ к устройствам компьютера (как физическим, так и виртуальным). Доступная пользователю совокупность интерфейсов устройств компьютера может включать в себя как аппаратные интерфейсы доступа к устройствам, так и драйверы физических и/или виртуальных устройств. Конкретный состав интерфейсов определяется свойствами вычислительной системы, соответствующими, уровнями управления ресурсами, а также привилегиями пользователя (об этом подробнее мы будем говорить несколько позднее).
- Содержание
- 1 Введение 5
- 2 Управление процессами 87
- 3 Реализация межпроцессного взаимодействия в ос Unix 114
- 4 Файловые системы 152
- 4.1 Основные концепции 152
- 5 Управление оперативной памятью 181
- 6 Управление внешними устройствами 196
- Введение
- Пакетная обработка заданий.
- Развитие языков и систем программирования.
- Этапы эволюции.
- Основы архитектуры вычислительной системы
- Структура вс
- Структура вычислительной системы.
- Аппаратный уровень вс
- Управление физическими ресурсами вс
- Пример зависимости от драйвера.
- Управление логическими/виртуальными ресурсами
- Системы программирования
- Этапы проектирования.
- Кодирование.
- Тестирование.
- Каскадная модель.
- Каскадная итерационная модель.
- Спиральная модель.
- Прикладные системы
- Первый этап развития прикладных систем.
- Второй этап развития прикладных систем.
- Третий этап развития прикладных систем.
- Пакет программ Microsoft Office.
- Пакет MathCad.
- Система BaaN.
- Выводы, литература
- Структура организации вычислительной системы.
- Основы компьютерной архитектуры
- Структура, основные компоненты
- Структура компьютера фон Неймана.
- Базовая архитектура современных компьютеров.
- Оперативное запоминающее устройство
- Ячейка памяти.
- Контроль четности.
- Озу без расслоения памяти — один контроллер на все банки.
- Озу с расслоением памяти — каждый банк обслуживает отдельный контроллер.
- Центральный процессор
- Структура организации центрального процессора.
- Регистровая память
- Устройство управления. Арифметико-логическое устройство
- Общая схема работы кэШа.
- Аппарат прерываний
- Использование иерархической модели регистров прерывания.
- Использование вектора прерываний.
- Этап программной обработки прерываний.
- Внешние устройства
- Внешние устройства.
- Внешние запоминающие устройства
- Магнитная лента.
- Принцип устройства магнитного диска.
- Принцип устройства магнитного барабана.
- Принцип устройства памяти на магнитных доменах.
- Модели синхронизации при обмене с внешними устройствами
- Синхронная и асинхронная работа с ву.
- Потоки данных. Организация управления внешними устройствами
- Непосредственное управление центральным процессором внешнего устройства.
- Синхронное/асинхронное управление внешними устройствами с использованием контроллеров внешних устройств.
- Использование контроллера прямого доступа к памяти (dma) или процессора (канала) ввода-вывода при обмене.
- Иерархия памяти
- Иерархия памяти.
- Аппаратная поддержка операционной системы и систем программирования
- Требования к аппаратуре для поддержки мультипрограммного режима
- Мультипрограммный режим.
- Проблемы, возникающие при исполнении программ
- Вложенные обращения к подпрограммам.
- Перемещаемость программы по озу.
- Фрагментация памяти.
- Регистровые окна
- Регистровые окна.
- Регистровые окна. Вход и выход из подпрограммы.
- Системный стек
- Системный стек.
- Виртуальная память
- Страничная организация памяти.
- Страничная организация памяти. Преобразование виртуального адреса в физический.
- Страничная организация памяти. Схема преобразования адресов.
- Многомашинные, многопроцессорные ассоциации
- Классификация мкмд.
- Numa-система.
- Терминальные комплексы (тк)
- Терминальные комплексы.
- Компьютерные сети
- Компьютерные сети.
- Организация сетевого взаимодействия. Эталонная модель iso/osi
- Модель организации взаимодействия в сети iso/osi.
- Логическое взаимодействие сетевых устройств по I-ому протоколу.
- Семейство протоколов tcp/ip. Соответствие модели iso/osi
- Семейство протоколов tcp/ip.
- Взаимодействие между уровнями протоколов tcp/ip.
- Система адресации протокола ip.
- Маршрутизация дейтаграмм.
- Основы архитектуры операционных систем
- Структура ос
- Структурная организация ос.
- Структура ос с монолитным ядром.
- Структура ос с микроядерной архитектурой.
- Логические функции ос
- Типы операционных систем
- Структура сетевой ос.
- Структура распределенной ос.
- Управление процессами
- Основные концепции
- Модели операционных систем
- Типы процессов
- Типы процессов: однонитевая (а) и многонитевая (б) организации.
- Контекст процесса
- Реализация процессов в ос Unix
- Процесс ос Unix
- Разделение сегмента кода.
- Базовые средства управления процессами в ос Unix
- Пример использования системного вызова fork().
- Пример использования системного вызова execl().
- Пример использования схемы fork-exec.
- Жизненный цикл процесса. Состояния процесса
- Жизненный цикл процессов.
- Формирование процессов 0 и 1
- Формирование нулевого и первого процессов.
- Инициализация системы.
- Планирование
- Взаимодействие процессов
- Разделяемые ресурсы и синхронизация доступа к ним
- Гонка процессов.
- Пример тупиковой ситуации (deadlock).
- Способы организации взаимного исключения
- Пример двоичного семафора.
- Классические задачи синхронизации процессов
- Обещающие философы.
- Реализация межпроцессного взаимодействия в ос Unix
- Базовые средства реализации взаимодействия процессов в ос Unix
- Способы организации взаимодействия процессов.
- Сигналы
- Неименованные каналы
- Именованные каналы
- Модель межпроцессного взаимодействия «главный–подчиненный»
- Общая схема трассировки процессов.
- Система межпроцессного взаимодействия ipc (Inter-Process Communication)
- Очередь сообщений ipc
- Очередь сообщений ipc.
- 0666 Определяет права доступа */
- Разделяемая память ipc
- Массив семафоров ipc
- Int val; /* значение одного семафора */
- Сокеты — унифицированный интерфейс программирования распределенных систем
- Файловые системы
- Основные концепции
- Структурная организация файлов
- Атрибуты файлов
- Основные правила работы с файлами. Типовые программные интерфейсы
- Модель одноуровневой файловой системы.
- Модель двухуровневой файловой системы.
- Модель иерархической файловой системы.
- Подходы в практической реализации файловой системы
- Структура «системного» диска.
- Модели реализации файлов
- Модель непрерывных файлов.
- Модель файлов, имеющих организацию связанного списка.
- Модели реализации каталогов
- Модели организации каталогов.
- Соответствие имени файла и его содержимого
- Пример жесткой связи.
- Пример символической связи.
- Координация использования пространства внешней памяти
- Квотирование пространства файловой системы
- Квотирование пространства файловой системы.
- Надежность файловой системы
- Проверка целостности файловой системы
- Проверка целостности файловой системы. Непротиворечивость файловой системы соблюдена.
- Проверка целостности файловой системы. Зафиксирована пропажа блока.
- Проверка целостности файловой системы. Зафиксировано дублирование свободного блока.
- Проверка целостности файловой системы. Зафиксировано дублирование занятого блока.
- Проверка целостности файловой системы. Контроль жестких связей.
- Примеры реализаций файловых систем
- Организация файловой системы ос Unix. Виды файлов. Права доступа
- Логическая структура каталогов
- Логическая структура каталогов.
- Внутренняя организация файловой системы: модель версии System V
- Структура файловой системы версии System V.
- Работа с массивами номеров свободных блоков
- Работа с массивами номеров свободных блоков.
- Работа с массивом свободных индексных дескрипторов
- Индексные дескрипторы. Адресация блоков файла
- Индексные дескрипторы.
- Адресация блоков файла.
- Файл-каталог
- Файл-каталог.
- Установление связей.
- Достоинства и недостатки файловой системы модели System V
- Внутренняя организация файловой системы: модель версии Fast File System (ffs) bsd
- Структура файловой системы версии ffs bsd.
- Стратегии размещения
- Стратегия размещения последовательных блоков файлов.
- Внутренняя организация блоков
- Внутренняя организация блоков (блоки выровнены по кратности).
- Выделение пространства для файла
- Выделение пространства для файла.
- Структура каталога ffs
- Структура каталога ffs bsd.
- Блокировка доступа к содержимому файла
- Управление оперативной памятью
- Одиночное непрерывное распределение
- Одиночное непрерывное распределение.
- Распределение неперемещаемыми разделами
- Распределение неперемещаемыми разделами.
- Распределение перемещаемыми разделами
- Распределение перемещаемыми разделами.
- Страничное распределение
- Страничное распределение.
- Иерархическая организация таблицы страниц.
- Использование хеш-таблиц.
- Инвертированные таблицы страниц.
- Замещение страниц. Алгоритм «Часы».
- Сегментное распределение
- Сегментное распределение.
- Сегментно-страничное распределение
- Сегментно-страничное распределение. Упрощенная модель Intel.
- Управление внешними устройствами
- Общие концепции
- Архитектура организации управления внешними устройствами
- Модели управления внешними устройствами: непосредственное (а), синхронное/асинхронное (б), с использованием контроллера прямого доступа или процессора (канала) ввода-вывода.
- Программное управление внешними устройствами
- Иерархия архитектуры программного управления внешними устройствами.
- Планирование дисковых обменов
- Планирование дисковых обменов. Модель fifo.
- Планирование дисковых обменов. Модель lifo.
- Планирование дисковых обменов. Модель sstf.
- Raid 2. Избыточность с кодами Хэмминга (Hamming, исправляет одинарные и выявляет двойные ошибки).
- Raid 3. Четность с чередующимися битами.
- Raid 5. Распределенная четность (циклическое распределение четности).
- Работа с внешними устройствами в ос Unix
- Файлы устройств, драйверы
- Системные таблицы драйверов устройств
- Ситуации, вызывающие обращение к функциям драйвера
- Включение, удаление драйверов из системы
- Организация обмена данными с файлами
- Организация обмена данными с файлами.
- Буферизация при блок-ориентированном обмене
- Борьба со сбоями