- •Лекционный комплекс по дисциплине «Основы построения операционных систем»
- •Раздел 1. Классификация операционных систем
- •1. Введение. Классификация видов программного обеспечения.
- •2.Назначение и функции операционных систем.
- •3. Мультипрограммирование. Режим разделения времени.
- •4. Многопользовательский режим работы. Режимы реального времени.
- •4. Содержание лекции:
- •1.Универсальные операционные системы и ос специального назначения.
- •2. Классификация операционных систем.
- •3. Модульная структура построения ос и их переносимость.
- •4. Управление процессором.
- •Раздел 2. Организация и управление процессами
- •4. Содержание лекции:
- •1. Понятие процесса и ядра. Сегментация виртуального адресного пространства процесса.
- •2.Структура контекста процесса. Идентификатор и дескриптор процесса.
- •3.Диспетчеризация и синхронизация процессов.
- •4. Иерархия процессов. Понятие приоритета и очереди процессов.
- •4 Лекция
- •2.План лекции
- •5 Лекция
- •1.Тема лекции: Однозадачное и многозадачное выполнение процессов.
- •2.План лекции
- •4. Способы управления многопроцессорным решением задач.
- •Раздел 3. Управление вводом выводом
- •4. Содержание лекции:
- •2. Синхронный и асинхронный ввод-вывод.
- •3. Диспетчеризация ввода-вывода.
- •7 Лекция
- •2.План лекции
- •1. Произвольный и последовательный метод доступа.
- •2. Потоки ввода-вывода.
- •3. Способы защиты ввода-вывода.
- •Раздел 4. Файловая система
- •1.Тема лекция. Основные функции файловой системы. Компоненты файловой системы.
- •2.План лекции
- •4. Содержание лекции: Основные функции файловой системы.
- •2. Компоненты файловой системы.
- •1.Тема лекции. Способы организации файлов. Менеджер файловой системы. Сохранность и защита файлов
- •2.План лекции
- •1. Способы организации файлов.
- •2. Менеджер файловой системы.
- •3. Сохранность и защита файлов.
- •Раздел 5. Управление памятью
- •1.Тема лекции: Совместное использование памяти. Защита памяти. Функции доступа. Организация виртуальной памяти.
- •2.План лекции
- •4. Содержание лекции:
- •1. Совместное использование памяти.
- •2. Защита памяти.
- •3. Функции доступа.
- •4. Организация виртуальной памяти.
- •1.Тема лекции. Стратегии откачки и подкачки страниц Менеджер ресурса памяти. Стратегии распределения памяти.
- •2.План лекции
- •4. Содержание лекции:
- •1. Управление памятью. Совместное использование памяти
- •2. Защита памяти.
- •3. Механизм реализации виртуальной памяти.
- •1.Тема лекции. Стратегии откачки и подкачки страниц Менеджер ресурса памяти. Стратегии распределения памяти.
- •2.План лекции
- •4. Содержание лекции:
- •Раздел 6. Управление телекоммуникационным доступом
- •4. Содержание лекции:
- •1.Пользовательский интерфейс и оболочки.
- •2.План лекции
- •4. Содержание лекции:
- •3. Маршрутизация, буферизация и регистрация сообщений.
- •4. Удаленная обработка. Электронная почта.
- •2.План лекции
- •4. Содержание лекции:
- •6. Программные средства сетевой защиты информации.
2. Синхронный и асинхронный ввод-вывод.
Как известно, имеются два основных режима ввода/вывода: режим обмена с опросом готовности устройства ввода/вывода и режим обмена с прерываниями.
В режиме обмена с опросом готовности управление вводом/выводом осуществляет центральный процессор. Центральный процессор посылает устройству управления команду выполнить некоторое действие устройству ввода/вывода. Последнее исполняет команду, транслируя сигналы, понятные центральному устройству и устройству управления в сигналы, понятные устройству ввода/вывода. Но быстродействие устройства ввода/вывода намного меньше быстродействия центрального процессора. Поэтому сигнал готовности приходится очень долго ожидать, постоянно опрашивая соответствующую линию интерфейса на наличие или отсутствие нужного сигнала. Посылать новую команду, не дождавшись сигнала готовности, сообщающего об исполнении предыдущей команды, бессмысленно. В режиме опроса готовности драйвер, управляющий процессом обмена данными с внешним устройством, как раз и выполняет в цикле команду «проверить наличие сигнала готовности». До тех пор пока сигнал готовности не появится, драйвер ничего другого не делает. При этом, естественно, нерационально используется время центрального процессора. Гораздо выгоднее, выдав команду ввода/ вывода, на время забыть об устройстве ввода/вывода и перейти на выполнение другой программы. А появление сигнала готовности трактовать как запрос на прерывание от устройства ввода/вывода. Именно эти сигналы готовности и являются сигналами запроса на прерывание.
Режим обмена с прерываниями по своей сути является режимом асинхронного управления. Для того чтобы не потерять связь с устройством может быть запущен отсчет времени, в течение которого устройство обязательно должно выполнить команду и выдать сигнал запроса на прерывание. Максимальный интервал времени, и течение которого устройство ввода/вывода или его контроллер должны выдать сигнал запроса на прерывание, часто называют уставной тайм-аута. Если это время истекло после выдачи устройству очередной команды, а устройство так и не ответило, то делается вывод о том, что связь с устройством потеряна и управлять им больше нет возможности. Пользователь и/или задача получают соответствующее диагностическое сообщение.
Рис. 4.1. Управление вводом/выводом
Драйверы. работающие в режиме прерываний, представляют собой сложный комплекс программных модулей и могу г иметь несколько секций: секцию запуска, одну или несколько секций продолжения и секцию завершения.
Секция запуска инициирует операцию ввода/вывода. Эта секция запускается для включения устройства ввода/вывода либо просто для инициации очередной операции ввода/вывода.
Секция продолжения (их может быть несколько, если алгоритм управления обменом данными сложный и требуется несколько прерываний для выполнения одной логической операции) осуществляет основную работу по передаче данных. Секция продолжения, собственно говоря, и является основным обработчиком прерывания. Используемый интерфейс может потребовать для управления вводом/выводом несколько последовательностей управляющих команд, а сигнал прерывания у устройства, как правило, только один. Поэтому после выполнения очередной секции прерывания супервизор прерываний при следующем сигнале готовности должен передать управление другой секции. Это делается за счет изменения адреса обработки прерывания после выполнения очередной секции, если же имеется только одна секция прерываний, то она сама передает управление тому или иному модулю обработки.
Секция завершения обычно выключает устройство ввода/вывода либо просто завершает операцию.
Операция ввода-вывода может выполняться по отношению к программному модулю, запросившему операцию, в синхронном или асинхронном режимах. Смысл этих режимов тот же, что и для рассмотренных выше системных вызовов, — синхронный режим означает, что программный модуль приостанавливает свою работу до тех пор, пока операция ввода-вывода не будет завершена, а при асинхронном режиме программный модуль продолжает выполняться в мультипрограммном режиме одновременно с операцией ввода-вывода. Отличие же заключается в том, что операция ввода-вывода может быть инициирована не только пользовательским процессом — в этом случае операция выполняется в рамках системного вызова, но и кодом ядра, например кодом подсистемы виртуальной памяти для считывания отсутствующей в памяти страницы.
Рис. 7.1. Два режима выполнения операций ввода-вывода
Подсистема ввода-вывода должна предоставлять своим клиентам (пользовательским процессам и кодам ядра) возможность выполнять как синхронные, так и асинхронные операции ввода-вывода, в зависимости от потребностей вызывающей стороны. Системные вызовы ввода-вывода чаще оформляются как синхронные процедуры в связи с тем, что такие операции длятся долго и пользовательскому процессу или потоку все равно придется ждать получения результатов операции для того, чтобы продолжить свою работу. Внутренние же вызовы операций ввода-вывода из модулей ядра обычно выполняются в виде асинхронных процедур, так как кодам ядра нужна свобода в выборе дальнейшего поведения после запроса операции ввода-вывода. Использование асинхронных процедур приводит к более гибким решениям, так как на основе асинхронного вызова всегда можно построить синхронный, создав дополнительную промежуточную процедуру, блокирующую выполнение вызвавшей процедуры до момента завершения ввода-вывода. Иногда и прикладному процессу требуется выполнить асинхронную операцию ввода-вывода, например при микроядерной архитектуре, когда часть кода работает в пользовательском режиме как прикладной процесс, но выполняет функции операционной системы, требующие полной свободы действий и после вызова операции ввода-вывода.
