
- •1.Лекция 1.Операционная система. Введение
- •1.1.Структура вычислительной системы
- •1.2.Что такое операционная система
- •1.2.1. Операционная система как виртуальная машина.
- •1.2.2.Операционная система как менеджер ресурсов
- •1.2.3.Операционная система как защитник пользователей и программ
- •1.2.4.Операционная система как постоянно функционирующее ядро
- •1.3.История эволюции вычислительных систем
- •1.3.1.Первый период (1945–1955 гг.). Ламповые машины. Операционных систем нет
- •1.3.2.Второй период (1955 г.–начало 60-х). Компьютеры на основе транзисторов. Пакетные операционные системы
- •1.3.3.Третий период (начало 60-х – 1980 г.). Компьютеры на основе интегральных микросхем. Первые многозадачные ос
- •1.3.4.Четвертый период (с 1980 г. По настоящее время). Персональные компьютеры. Классические, сетевые и распределенные системы
- •1.4. Функции операционной системы.
- •1.5.Основные понятия, концепции ос
- •1.5.1.Системные вызовы
- •1.5.2.Прерывания
- •1.5.3.Исключительные ситуации
- •1.5.4.Файлы
- •1.6.Архитектурные особенности ос
- •1.6.1.Монолитное ядро
- •1.6.2.Многоуровневые или слоеные системы (Layered systems)
- •1.6.3.Виртуальные машины
- •1.6.4.Микроядерная архитектура
- •1.6.5.Смешанные системы
- •1.7.Классификация операционных систем
- •1.7.1.Реализация многозадачности
- •1.7.2.Поддержка многопользовательского режима
- •1.7.3.Многопроцессорная обработка
- •1.7.4.Системы реального времени
- •2 Процессы
- •2.1.Понятие процесса
- •2.2.Состояния процесса
- •2.3.Операции над процессами и связанные с ними понятия
- •2.3.1.Набор операций
- •2.3.2.Блок управления процессом (рсв Process Control Block) и контекст процесса
- •2.3.3.Одноразовые операции
- •2.3.4.Многоразовые операции
- •2.3.5.Переключение контекста
- •2.3.7.Нити исполнения
- •2.4.Заключение
- •3. Планирование процессов
- •3.1.Уровни планирования
- •3.2.Цели планирования
- •3.4. Критерии планирования
- •3.5.Вытесняющее и не вытесняющее планирование
- •3.5.Алгоритмы планирования
- •3.5.1.Планирование по принципу fifo
- •3.5.2.Циклическое планирование)
- •3.5.3. Планирование по принципу кратчайшее задание - первым
- •3.5.4.Гарантированное планирование
- •3.5.5.Приоритетное планирование
- •3.5.6.Многоуровневые очереди (Multilevel Queue)
- •3.5.7.Многоуровневые очереди с обратной связью (Multilevel Feedback Queue)
- •3.6.Заключение
- •4. Лекция: Кооперация процессов и основные аспекты ее логической организации
- •4.1.Взаимодействующие процессы
- •4.2.Средства обмена информацией
- •4.3.Логическая организация механизма передачи информации
- •4.4.Информационная валентность процессов и средств связи
- •4.5.Особенности передачи информации с помощью линий связи
- •4.5.1.Буферизация
- •4.5.2.Поток ввода/вывода и сообщения
- •4.5.3.Надежность средств связи
- •4.5.4.Завершение связи
- •4.6.Нити исполнения
- •4.7.Заключение
2.3.3.Одноразовые операции
Операция «создание процесса» производится в момент появления процесса. Процессу дается состояние «рождение». Процессы могут быть рождены на этапе старта системы или динамически. Инициатором рождения процесса является процесс. Процесс, по инициативе которого создан новый процесс, называется процессом-родителем, вновь созданный процесс – процессом-ребенком. Процессы-дети могут порождать новых детей и т. д., образуя внутри системы генеалогический лес. Пример генеалогического леса изображен на рисунке 2.4.
Рис. 2.4. Генеалогический лес процессов.
При операции создания процесса система заводит на него блок управления процессом с состоянием процесса «рождение» и начинает его заполнять.
Присваивает процессу уникальный идентификационный номер. Для его хранения отводится ограниченное количество битов. Уникальность номеров обеспечивается количеством одновременно присутствующих процессов. Повторное использование идентификационного номера возможно только после его освобождения в результате завершения процесса.
Выделяет ресурсы новому процессу. Ресурсы выделяются либо от родителей, либо непосредственно от операционной системы. Информация о выделенных ресурсах заносится в PCB.
Наделяет процесс содержанием. В адресное пространство нового процесса заносит программный код, значения данных, устанавливает программный счетчик. Данные могут быть заполнены с помощью какой-нибудь программы или быть копиями процесса-родителя по регистровому и пользовательскому контекстам.
После наделения процесса содержанием операционная система в PCB (блок управления процессом) дописывает оставшуюся информацию, и состояние нового процесса меняется на состояние «готовность».
Операция завершение процесса производится после завершения работы процесса. Процесс переводится в состояние «закончил исполнение». Ресурсы, связанные с процессом, освобождаются. В блоке управления процессом делаются соответствующие записи. PCB процесса не уничтожается и остается в системе некоторое время (до запроса процесса-родителя или до конца его деятельности, после чего все следы завершившегося процесса окончательно исчезают из системы).
В ряде операционных систем гибель процесса-родителя приводит к завершению работы всех его "детей". В других операционных системах процессы-дети продолжают свое существование и после окончания работы процесса-родителя. Для поддержания целостности генеалогического дерева процессов изменяется информация в PCB о процессе-родителе. "Осиротевшие" процессы "усыновляются" одним из системных процессов, который рождается при старте операционной системы и функционирует все время, пока она работает.
2.3.4.Многоразовые операции
Одноразовые операции приводят к изменению количества процессов и связаны с выделением или освобождением ресурсов. Многоразовые операции не изменяют количество процессов в операционной системе и не всегда влияют на выделение и освобождение ресурсов.
Операция запуск процесса заключается в выборе операционной системой одного процесса из числа процессов, находящихся в состоянии «готовность», для последующего исполнения. Для выбранного процесса операционная система загружает необходимую информацию в оперативную память дальнейшего выполнения процесса и меняет состояние процесса на «исполнение». Значения регистров процесса восстанавливаются, и управление передается команде, на которую указывает счетчик команд процесса. Все данные, необходимые для восстановления контекста, извлекаются из PCB (блока управления процессом) процесса, над которым совершается операция.
Операция приостановка процесса применяется, когда работа процесса, находящегося в состоянии «исполнение», приостанавливается в результате какого-либо прерывания. Процессор автоматически сохраняет счетчик команд, один или несколько регистров в стеке исполняемого процесса и передает управление по адресу обработки данного прерывания. На этом деятельность аппаратной части по обработке прерывания завершается. По указанному адресу обычно располагается одна из частей операционной системы. Она сохраняет динамическую часть системного и регистрового контекстов процесса в его PCB, переводит процесс в состояние «готовность» и приступает к обработке прерывания.
Операция блокирование процесса возникает, когда дальнейшая работа процесса зависит от какого-либо события в вычислительной системе и происходит обращение к операционной системе с помощью системного вызова. Операционная система обрабатывает системный вызов (инициализирует операцию ввода-вывода, добавляет процесс в очередь процессов, дожидающихся освобождения устройства или возникновения события, и т. д.) и, при необходимости сохранив нужную часть контекста процесса в его PCB, переводит процесс из состояния «исполнение» в состояние «ожидание».
Операция разблокирование процесса применяется при наступлении в системе какого-либо ожидаемого события. Операционная система определяет, какое событие произошло и производит проверку, находился ли некоторый процесс в состоянии «ожидание» для данного события, и если находился, переводит его в состояние «готовность», выполняя необходимые действия, связанные с наступлением события (инициализация операции ввода-вывода для очередного ожидающего процесса и т. п.).