- •1.Состав системного программного обеспечения.
- •1.1.Операционная система (ос) как посредник между уровнем пользователя и аппаратурой эвм.
- •1.2.Функции операционной системы
- •1.3.Классификация операционных систем
- •2.Структура операционной системы
- •2.1.Ядро и вспомогательные модули ос. Ядро в привилегированном режиме
- •2.2.Многослойная структура ос
- •2.3.Аппаратная зависимость и переносимость ос
- •2.4.Типовые средства аппаратной поддержки ос
- •3.Организация вычислительных процессов.
- •3.1.Понятия вычислительного процесса и ресурса.
- •3.2.Понятие системы программирования.
- •3.3. Системы интерактивной отладки
- •3.4.Принципы трансляции программ
- •3.5.Особенности построения интерпретаторов
- •3.6.Лексический и синтаксический анализ и генерация кода.
- •3.7.Загрузчик.
- •3.8.Жизненный цикл программы.
- •3.9.Система исполнения программы (run-time system).
- •4.Процессы и потоки
- •4.1.Понятия «процесс» и «поток»
- •4.2.Создание процессов и потоков
- •4.3.Планирование и диспетчеризация потоков
- •4.4.Состояния потока
- •4.5.Вытесняющие и невытесняющие алгоритмы планирования
- •4.6.Алгоритмы планирования, основанные на квантовании
- •4.7.Алгоритмы планирования, основанные на приоритетах
- •4.8.Смешанные алгоритмы планирования
- •4.9.Мультипрограммирование на основе прерываний
- •4.10.Назначение и типы прерываний
- •4.11.Механизм прерываний
- •4.12.Диспетчеризация и приоритезация прерываний в ос
- •4.13.Синхронизация процессов и потоков. Цели и средства синхронизации
- •4.14.Необходимость синхронизации и гонки
- •4.15.Критическая секция. Блокирующие переменные. Семафоры. Тупики
- •4.16.Средства коммуникации процессов
- •5.Управление памятью
- •5.1.Функции ос по управлению памятью
- •5.2.Типы адресов
- •5.3.Алгоритмы распределения памяти
- •5.4.Механизмы реализации виртуальной памяти
- •5.5.Страничное распределение
- •5.6.Сегментное распределение
- •5.7.Сегментно-страничное распределение
- •5.8.Кэширование данных. Иерархия запоминающих устройств
- •5.10.Проблема согласования данных
- •5.11.Способы отображения основной памяти на кэш
- •6.Управление устройствами ввода-вывода и файлами
- •6.1.Задачи ос по управлению файлами и устройствами
- •6.2.Многослойная модель подсистемы ввода-вывода
- •6.3. Менеджер ввода-вывода
- •6.4.Многоуровневые драйверы
- •6.5.Специальные файлы
- •6.6.Цели и задачи файловой системы
- •6.7.Типы файлов. Иерархическая структура файловой системы
- •6.8.Имена файлов. Атрибуты файлов. Логическая организация файла
- •6.9.Физическая организация и адресация файла
- •6.10.Файловые операции. Способы организации файловых операций.
- •6.11.Стандартные файлы ввода и вывода, перенаправление вывода
- •6.12.Контроль доступа к файлам. Механизм контроля доступа и защиты от сбоев
6.2.Многослойная модель подсистемы ввода-вывода
Многослойное построение программного обеспечения характерно для ОС вообще, оказывается особенно полезным при построении подсистемы ввода-вывода . При большом разнообразии устройств ввода-вывода, обладающих различными характерами, иерархическая структура программного обеспечения позволяет соблюсти баланс между двумя противоречивыми требованиями:
- с одной стороны необходимо учесть все особенности каждого устройства;
- с другой стороны обеспечить единое логическое представление и унифицированный интерфейс для устройств всех типов.
При этом нижние слои подсистемы должны включать индивидуальные драйверы для конкретных физических устройств, а вернее слои должны обобщать процедуру управления этими устройствами, предоставляя общий интерфейс для групп устройств, обладающих некоторыми общими характеристиками. Например, для принтеров производителя, матричных принтеров и так далее.
Общая структура подсистемы ввода-вывода приведена на рис.5.1.
Рис.
6.1.Общая структура подсистемы ввода-вывода
6.3. Менеджер ввода-вывода
В подсистеме ввода-вывода наряду с модулями, отражающими специфику внешних устройств и образующими вертикальные подсистемы. Существуют модули универсального назначения. Эти модули согласуют согласованную работу всех остальных компонентов в/в и взаимодействие с пользовательскими процессами и другими подсистемами ОС.
Так же как и функции управления, устройствами эти, организующие функции, распределены по всем уровням, образуя оболочку, которую называют менеджером ввода-вывода.
Верхний слой менеджера составляет системные вызовы ввода-вывода, которые принимают от пользовательских процессов запросы на ввод-вывод и переадресуют их отвечающим за предельный класс устройств модуля и драйвера, а также возвращает процессам результаты операции ввода-вывода.
Нижний слой менеджера реализует непосредственное взаимодействие с контроллерами внешних устройств, экранируя драйверы от особенности аппаратной платформы компьютере, шины ввода-вывода , системы прерываний и т. д.
Этот слой принимает от драйверов запрос на обмен данных с регистрами контроллеров к некоторой обобщенной форме с использованием не зависимо от шины ввода-вывода адресации и формата, а затем преобразует эти запросы в зависящие от аппаратной платформы формат.
Важной функцией менеджера ввода-вывода является создание некоторой среды для остальных компьютеров подсистемы, которая бы облегчала их взаимодействие друг с другом. Эта задача может быть решена за счет задания некоторого стандартного внутреннего интерфейса взаимодействия модулей в/в между собой.
Рассмотрим в качестве примера менеджер ввода-вывода Windows NT:
- он организует взаимодействием между модулями с помощью пакета запроса ввода-вывода IRP (Input/output Request Packet). Получив запрос от процедуры системного вызова менеджер формирует IRP-пакет и передает его нужному драйверу. Драйвер, после выполнения завершенной операции возвращает ответ в виде другого IRP менеджеру, а тот в свою очередь может при необходимости передать этот IRP другому драйверу.
Менеджер позволяет драйверам задавать между собой взаимосвязи и на основании информации о взаимосвязях происходит передача пакетов IRP. Кроме того, менеджер ввода-вывода Windows NT поддерживает загрузку и выгрузку драйверов без остановки системы.
