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