
- •1. Состав и назначение и классификация операционной системы Введение
- •Понятие процесса и ресурса
- •Состав операционной системы
- •Классификация ос
- •Ос пакетной обработки
- •Ос оперативной обработки
- •Моделирование режима мультипрограммирования
- •2. Планирование процессов Понятия о планировании и диспетчеризации процессов
- •Создание процессов
- •Завершение процесса
- •Состояние процесса
- •Алгоритмы планирования
- •Методы планирования
- •Детерминированное планирование
- •Планирование по критерию минимума суммарного времени выполнения работ
- •Стохастическое планирование
- •Последовательный выбор
- •Алгоритм одноуровневого циклического выбора
- •Алгоритм многоуровневого циклического выбора
- •Планирование процессов на основе приоритетов
- •Обслуживание с абсолютными приоритетами
- •3. Синхронизация процессов Цели и средства синхронизации процессов
- •Понятие системные вызовы. Критические секции
- •Синхронизация методом взаимных исключений
- •Метод блокирующей переменной (спин-блокировка)
- •Блокирующей переменной с использованием системного вызова
- •Метод семафоров
- •Условная (барьерная) синхронизация
- •Тупиковые ситуации во взаимодействии процессов и методы их устранения
- •3. Управление памятью Проблемы организации памяти мультипроцессорных вычислительных систем. Функции ос по управлению памятью.
- •Методы защиты памяти
- •Метод граничных ресурсов
- •Метод ключей защиты
- •Защита отдельных ячеек
- •Организация виртуальной памяти
- •Статическое и динамическое распределение памяти. Распределение памяти фиксированными разделами
- •Страничная организация виртуальной памяти
- •Сегментная и сегментно-страничная организация виртуальной памяти
- •Структура страничной таблицы
- •Методы уменьшения времени доступа к памяти Обеспечение быстрого доступа к данным кэш-память
- •Ускорение формирования адреса. Буферы быстрого преобразования адреса
- •Алгоритмы замещения страниц в виртуальной памяти
- •4. Архитектура операционной системы
- •Многослойная структура ос
Завершение процесса
Процесс завершается в результате появления следующих событий:
1) обычный выход (преднамеренно);
2) выход по ошибке (преднамеренно);
3) выход по неисправимой ошибке (непреднамеренно);
4) уничтожение другим процессом (непреднамеренно).
В основном процессы завершаются по мере выполнения своей работы. После окончания программы выполняется системный запрос, чтобы сообщить операционной системе об окончании работы. В UNIX этот системный запрос — exit, а в Windows — ExitProcess.
Второй причиной завершения процесса может стать неустранимая ошибка. Например, если пользователь набрал на клавиатуре команду неправильную команду.
Третьей причиной завершения процесса является ошибка, вызванная самим процессом, чаще всего связанная с ошибкой в программе.
Четвертой причиной завершения процесса может служить выполнение другим процессом системного запроса на уничтожение процесса. В UNIX такой системный запрос — kill, а соответствующая функция Win32 — TernminateProcess.
По завершении работы процесса (добровольно либо принудительно со стороны операционной системы), ОС свобождает память процесса и другие занимаемые им ресурсы, удаляет информацию о нем из таблицы процессов, предоставляя память процесса и ресурсы для других процессов.
Состояние процесса
Процесс может находиться в одном из трех состояний:
Очередь готовых процессов
Выполнение процесса
Ожидание
Состояние процесса можно представить в виде:
Выполнение – это активное состояние процесса, в это время происходит счет процесса.
Блокирование – это пассивное состояние процесса. Процесс ожидает завершения некоторого события, например, окончания операции ввода-вывода.
Готовность – это пассивное состояние процесса. Процессу выделяются ресурсы, разделы памяти, дисковое пространство и др. Процесс ожидает освобождения процессора.
Переходы процесса на выполнение и вытеснение процесса вызываются частью операционной системы, называемой планировщиком. Вытеснение происходит, если планировщик предоставил процессор следующему процессу. Переход на выполнение происходит, когда все остальные процессы уже исчерпали свое процессорное время, и процессор снова возвращается к первому процессу.
Переход из сосотояния блокировки в состояние готовности происходит с появлением внешнего события, ожидавшегося процессом (например, подкачка данных из ВЗУ). Если в этот момент не запущен какой-либо другой процесс, то освободившийся из состояния блокировки процесс запускается. В противном случае процессу придется некоторое время находиться в состоянии готовности, пока не освободится процессор.
В однопроцессорных системах в состоянии готовности или ожидания может одновременно находиться несколько процессов, а в состоянии выполнения – один. Эти процессы образуют очереди путем объединения в списки блоки управления процессами (дескрипторов процессов). Каждый дескриптор содержит дополнительную ссылку на соседа по очереди. Такая организация позволяет легко переупорядочивать, включать и исключать процессы, переводить их из одного состояния в другое. На рисунке ___ показана очередь процессов, установленных в порядке A, B, D, E, C.
Рисунок 2.2 - Очередь процессов
Потоки
В обычных операционных системах каждому процессу соответствует адресное пространство и одиночный управляющий поток. Фактически это и определяет процесс. Тем не менее часто встречаются ситуации, в которых предпочтительно иметь несколько квазипараллельных потоков в одном адресном пространстве, как если бы они были различными процессами (однако разделяющим одно адресное пространство).