- •Тема 1. Понятие операционной системы (ос) Лекция №1. История развития операционных систем Операционные системы в архитектуре вычислительных систем
- •Эволюция операционных систем
- •Лекция №2. Назначение, функции и структура операционных систем
- •Структурная организация ос
- •Классификация операционных систем
- •Тема 2. Управление задачами в ос Лекция №3. Понятие вычислительного процесса и ресурса
- •Диаграмма состояний процесса
- •Блок управления процессом и контекст процесса
- •Лекция №4. Операции над процессами Одноразовые операции
- •Многоразовые операции
- •Переключение контекста
- •Процессы и потоки
- •Лекция №5. Планирование процессов и диспетчеризация задач Понятие и стратегии планирования
- •Вытесняющая и не вытесняющая диспетчеризация
- •Дисциплины диспетчеризации
- •Качество диспетчеризации и гарантии обслуживания
- •Лекция №6. Взаимодействие процессов
- •Организация обмена информацией между процессами
- •Лекция №7. Синхронизация процессов и потоков Необходимость взаимной синхронизации
- •Средства синхронизации процессов и потоков
- •Лекция №8. Проблема тупиков и борьба с ними
- •Тема 3. Управление памятью в ос Лекция №9. Физическая память и виртуальное адресное пространство
- •Модели распределения памяти
- •Лекция №10. Свопинг и виртуальная память
- •Сегментная организация виртуальной памяти
- •Страничная организация виртуальной памяти
- •Оптимизация функционирования страничной виртуальной памяти
- •Сегментно-страничная организация виртуальной памяти
- •Разделяемая память
- •Лекция №11. Уровни иерархии памяти и кэш-память
- •Схемы кэширования и согласования данных
- •Лекция №12. Распределение оперативной памяти в современных ос
- •Тема 4. Организация ввода/вывода в ос Лекция №13. Управление вводом/выводом в ос
- •Устройства ввода-вывода
- •Подсистема ввода-вывода
- •Согласование скоростей обмена и кэширования данных
- •Разделение устройств и данных между процессами
- •Поддержка синхронных и асинхронных операций ввода-вывода
- •Многослойная (иерархическая) модель подсистемы ввода-вывода
- •Назначение и функции драйверов
- •Лекция №14. Файловые системы операционных систем
- •Архитектура файловой системы
- •Организация файлов и доступ к ним
- •Логическая организация файла
- •Каталоговые системы
- •Физическая организация файловой системы
- •Физическая организация и адресация файла
- •Файловая система fat
- •Файловая система ntfs
- •Основные отличия fat и ntfs
- •Тема 5. Распределенные операционные системы Лекция №15. Модели сетевых служб и распределенных приложений
- •Способ разделения приложений на части
- •Лекция №16. Механизмы передачи сообщений в распределенных ос
- •Механизм сокетов
- •Вызов удаленных процедур
- •Тема 6. Безопасность в ос Лекция №17. Основные понятия безопасности
- •Классификация угроз
- •Системный подход к обеспечению безопасности
- •Политика безопасности
- •Лекция №18. Базовые технологии безопасности
- •Односторонние функции шифрования
- •Аутентификация, авторизация, аудит
- •Технология защищенного канала
- •Технологии аутентификации
Многоразовые операции
Одноразовые операции приводят к изменению количества процессов, находящихся под управлением операционной системы, и всегда связаны с выделением или освобождением определенных ресурсов. Многоразовые операции, напротив, не приводят к изменению количества процессов в операционной системе и не обязаны быть связанными с выделением или освобождением ресурсов.
Опишем действия, которые производит операционная система при выполнении многоразовых операций над процессами.
Запуск процесса. Из числа процессов, находящихся в состоянии готовность, операционная система выбирает один процесс для последующего исполнения. Для избранного процесса операционная система обеспечивает наличие в оперативной памяти информации, необходимой для его дальнейшего выполнения. Далее состояние процесса изменяется на «исполнение», восстанавливаются значения регистров для данного процесса и управление передается команде, на которую указывает счетчик команд процесса. Все данные, необходимые для восстановления контекста, извлекаются из PCB процесса, над которым совершается операция.
Приостановка процесса. Работа процесса, находящегося в состоянии «исполнение», приостанавливается в результате какого-либо прерывания. Процессор автоматически сохраняет счетчик команд и, возможно, один или несколько регистров в стеке исполняемого процесса, а затем передает управление по специальному адресу обработки данного прерывания. На этом деятельность hardware по обработке прерывания завершается. По указанному адресу обычно располагается одна из частей операционной системы. Она сохраняет динамическую часть системного и регистрового контекстов процесса в его PCB, переводит процесс в состояние «готовность» и приступает к обработке прерывания, то есть к выполнению определенных действий, связанных с возникшим прерыванием.
Блокирование процесса. Процесс блокируется, когда он не может продолжать работу, не дождавшись возникновения какого-либо события в вычислительной системе. Для этого он обращается к операционной системе с помощью определенного системного вызова. Операционная система обрабатывает системный вызов (инициализирует операцию ввода-вывода, добавляет процесс в очередь процессов, дожидающихся освобождения устройства или возникновения события, и т. д.) и, при необходимости сохранив нужную часть контекста процесса в его PCB, переводит процесс из состояния «исполнение» в состояние «ожидание».
Разблокирование процесса. После возникновения в системе какого-либо события операционной системе нужно точно определить, какое именно событие произошло. Затем операционная система проверяет, находился ли некоторый процесс в состоянии «ожидание» для данного события, и если находился, переводит его в состояние «готовность», выполняя необходимые действия, связанные с наступлением события (инициализация операции ввода-вывода для очередного ожидающего процесса и т. п.).
Переключение контекста
До сих пор мы рассматривали операции над процессами изолированно, независимо друг от друга. В действительности же деятельность мультипрограммной операционной системы состоит из цепочек операций, выполняемых над различными процессами, и сопровождается переключением процессора с одного процесса на другой.
Давайте для примера упрощенно рассмотрим, как в реальности может протекать операция разблокирования процесса, ожидающего ввода-вывода (рис. 7). При исполнении процессором некоторого процесса (на рисунке – процесс 1) возникает прерывание от устройства ввода-вывода, сигнализирующее об окончании операций на устройстве. Над выполняющимся процессом производится операция приостановки. Далее операционная система разблокирует процесс, инициировавший запрос на ввод-вывод (на рисунке – процесс 2) и осуществляет запуск приостановленного или нового процесса, выбранного при выполнении планирования (на рисунке был выбран разблокированный процесс). Как мы видим, в результате обработки информации об окончании операции ввода-вывода возможна смена процесса, находящегося в состоянии «исполнение».
Рис. 7. Выполнение операции разблокирования процесса (использование термина «код пользователя» не ограничивает общности рисунка только пользовательскими процессами)
Для корректного переключения процессора с одного процесса на другой необходимо сохранить контекст исполнявшегося процесса и восстановить контекст процесса, на который будет переключен процессор. Такая процедура сохранения/восстановления работоспособности процессов называется переключением контекста. Время, затраченное на переключение контекста, не используется вычислительной системой для совершения полезной работы и представляет собой накладные расходы, снижающие производительность системы. Оно меняется от машины к машине и обычно колеблется в диапазоне от 1 до 1000 микросекунд. Существенно сократить накладные расходы в современных операционных системах позволяет расширенная модель процессов, включающая в себя понятие threads of execution (нити исполнения или просто нити, потоки, треды).
