- •Лекционный комплекс по дисциплине «Основы построения операционных систем»
- •Раздел 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. Программные средства сетевой защиты информации.
3. Способы защиты ввода-вывода.
Перед создателями ОС встает очень непростая задача — обеспечить эффективное управление устройствами ввода/вывода. Необходимо обеспечить доступ к устройствам ввода/вывода для множества параллельно выполняющихся задач, причем так, чтобы они как можно меньше мешали друг другу.
Поэтому самым главным является следующий принцип: любые операции по управлению вводом/выводом объявляются привилегированными и могут выполняться только кодом самой ОС. Для обеспечения этого принципа в большинстве процессоров даже вводятся режимы пользователя и супервизора. Как правило, в режиме супервизора выполнение команд ввода/вывода разрешено, а в пользовательском режиме — запрещено. При использовании команд ввода/вывода в пользовательском режиме управление через механизм прерываний передается коду ОС.
Можно назвать три основные причины, по которым нельзя разрешать каждой отдельной пользовательской программе обращаться к внешним устройствам непосредственно:
Необходимость разрешать возможные конфликты доступа к устройствам ввода/вывода. Например, две параллельно выполняющиеся программы пытаются вывести на печать результаты своей работы. Если не предусмотреть внешнее управление устройством печати, то в результате мы можем получить абсолютно нечитаемый текст, так как каждая программа будет время от времени выводить свои данные, которые будут перемежаться данными другой программы. Другой пример: ситуация, когда одной программе необходимо прочитать данные с некоторого сектора магнитного диска, а другой — записать результаты в другой сектор того же накопителя. Если операции ввода/вывода не будут отслеживаться каким-то третьим (внешним) процессом-арбитром, то после позиционирования магнитной головки для первого запроса может тут же появиться команда позиционировании головки для второй задачи, и обе операции ввода/вывода не смогут быть выполнены корректно.
Желание увеличить эффективность использования этих ресурсов. Например, у накопителя на магнитных дисках время подвода головки чтения/записи к необходимой дорожке и обращение к определенному сектору может значительно (до тысячи раз) превышать время пересылки данных. В результате, если задачи по очереди обращаются к цилиндрам, далеко отстоящим друг от друга, го полезная работа, выполняемая накопителем, может быть существенно снижена.
Ошибки в программах ввода/вывода могут привести к краху всех вычислительных процессов, ибо часть операций ввода/вывода осуществляется для самой операционной системы. В ряде ОС системный ввод/вывод имеет существенно более высокие привилегии, чем ввод/вывод задач пользователя. Поэтому системный код, управляющий операциями ввода/вывода, очень тщательно отлаживается и оптимизируется для повышения надежности вычислений и эффективности использования оборудования.
И так, управление вводом/выводом осуществляется операционной системой, компонентом, который чаще .всего называют супервизором ввода/вывода. В перечень основных задач, возлагаемых на супервизор, входят следующие:
супервизор ввода/вывода получает запросы па ввод/вывод от прикладных задач и от программных модулей самой операционной системы. Эти запросы проверяются па корректность, и если запрос выполнен но спецификациям и не содержит ошибок, он обрабатывается дальше, а противном случае пользователю (задаче) выдается соответствующее диагностическое сообщение о недействительности (некорректности) запроса;
супервизор ввода/вывода вызывает соответствующие распределители каналов и контроллеров, планирует ввод/вывод (определяет очередность предоставления устройств ввода/вывода задачам, затребовавшим их). Запрос па ввод/ вывод либо тут же выполняется, либо ставится в очередь на выполнение;
супервизор ввода/вывода инициирует операции ввода/вывода (передает управление соответствующим драйверам) и в случае управления вводом/выводом с использованием прерывании предоставляет процессор диспетчеру задач с тем, чтобы передать его первой задаче, стоящей в очереди на выполнение;
при получении сигналов прерываний от устройств ввода/вывода супервизор идентифицирует их (рис. 4.1) и передаст управление сопутствующей программе обработки прерывания (как правило, на секцию продолжения драйвера — см. раздел «Режимы управления вводом/выводом»);
супервизор ввода/вывода осуществляет передачу сообщений об ошибках, если таковые происходят в процессе управления операциями ввода/вывода;
супервизор ввода/вывода посылает сообщения о завершении операции ввода/вывода запросившему эту операцию процессу и снимает сто с состояния
ожидания ввода/вывода, если процесс ожидал завершения операции.
В случае если устройство ввода/вывода является инициативным1, управление со стороны супервизора ввода/вывода будет заключаться в активизации соответствующего вычислительного процесса (перевод его в состояние готовности к выполнению).
Таким образом, прикладные программы (а в общем случае — все обрабатывающие программы) не могут непосредственно связываться с устройствами ввода/ вывода независимо от использования устройств (монопольно или совместно). Установив соответствующие значения параметров в запросе на ввод/вывод, определяющих требуемую операцию и количество потребляемых ресурсов, они могут передать управление супервизору ввода/вывода, который и запускает необходимые логические и физические операции.
Упомянутый выше запрос на ввод/вывод должен удовлетворять требованиям API той операционной системы, в среде которой выполняется приложение. Параметры, указываемые в запросах на ввод/вывод, передаются не только в вызывающих последовательностях, создаваемых по спецификациям API, но и как данные, хранящиеся в соответствующих системных таблицах. Все параметры, которые будут стоять в вызывающей последовательности, поставляются компилятором и отражают требования программиста и постоянные сведения об операционной системе и архитектуре компьютера в целом. Переменные сведения о вычислительной системе (се конфигурация, состав оборудования, состав и особенности системного программного обеспечения) содержатся в специальных системных таблицах. Процессору, каналам прямого доступа в память, контроллерам необходимо передавать конкретную двоичную информацию, с помощью которой и осуществляется управление оборудованием. Эта конкретная двоичная информация в виде кодов и данных часто готовится с помощью препроцессоров, но часть ее хранится в системных таблицах.
Контрольные задания для СРС (темы 2) [(1;547-590)(3;129-146)(4;175-200)]
1.Буферизация и кэширование операций ввода/вывода.
2.Использование и обоснованность применения RAID массивов
3.Прямой доступ к памяти
Рекомендуемая литература
1. Столингс Операционные системы
2.Олифер В.Г.,Олифер Н.А. Сетевые ОС
3.Гордеев А.В, Молчанов А.Ю. Системное программное обеспечение.
4.Таненбаум Э, Вудхал А Операционные системы: разработка и реализация.
