
- •3. Управление процессами
- •3.1. Описание процессов (Лекция 5)
- •3.1.1. Причины создания и завершения, описание процессов, модели с двумя и пятью состояниями
- •3.1.1.1. Процессы, причины создания и завершения
- •3.1.1.2. Модель с двумя состояниями
- •3.1.1.3. Модель с пятью состояниями
- •3.1.2. Блокированные и приостановленные процессы. Модели с шестью и семью состояниями
- •3.1.2.1. Модель с шестью состояниями
- •3.1.2.2. Модель с семью состояниями
- •3.1.3. Управляющие структуры ос для процессов и ресурсов
- •3.1.3.1. Основные виды системных таблиц. Сегментация виртуального адресного пространства процесса
- •3.1.3.2. Элементы управляющего блока процесса. Структура контекста процесса
- •3.2. Управление процессами (Лекция 6)
- •3.2.1. Действия ос по управлению процессами, способы выполнения системных процессов
- •3.2.1.1. Создание процесса
- •3.2.1.2. Переключение процессов
- •3.2.1.3. Выполнение кода ос
- •3.3. Способы реализации мультипрограммирования. Потоки, многопроцессорные системы (Лекция 7)
- •3.3.1. Многозадачность на основе потоков
- •3.3.1.1. Описание потоков
- •3.3.1.2. Функциональность потоков
- •3.3.1.3. Организация многопоточной обработки запросов в модели "клиент-сервер"
- •3.3.2. Потоки и проблема глобальных переменных. Типы реализации потоков.
- •3.3.2.1. Потоки и проблема глобальных переменных
- •3.3.2.2. Пользовательские потоки
- •3.3.2.3. Потоки ядра
- •3.3.2.4. Мультиплексирование потоков ядра пользовательскими потоками
- •3.3.3. Параллельность, обеспечиваемая средствами языка
- •3.3.3.1. Параллельность, обеспечиваемая средствами последовательного языка
- •3.3.3.2. Сопрограммы
- •3.3.3.3. "Процессы"
- •3.3.4. Мультипроцессорные системы
- •3.3.4.1. Введение
- •3.3.4.2. Архитектура мультипроцессоров
- •3.3.4.3. Типы мультипроцессорных ос
3.1.2.2. Модель с семью состояниями
Существует 4 комбинации:
готовый – процесс в памяти и готов к выполнению;
блокированный – в памяти, но не готов, ожидает события;
готовый, но приостановленный – на диске, готов, ожидает события;
блокированный, приостановленный – на диске, не готов, ожидает события.
С учетом указанных комбинаций получается модель с 7-ю состояниями (рис. 7).
Рис.7
В состояние «завершенный» можно переходить из любого состояния.
7-6 стандартное вытеснение процесса;
6-2 происходит событие, которого ожидал вытесненный процесс;
2-3
1) нет готовых процессов в памяти и приходится загружать их с диска;
2) приоритет вытесненного процесса может превышать приоритет процесса в памяти;
3-2 обычно такой переход не целесообразен, но иногда это единственный способ освободить достаточно большой блок памяти;
1-2, 2-1 когда система перегружена, она может загружать новые задания;
6-7 если ОС обладает информацией, что скоро произойдет событие, которого ожидает блокированный вытесненный процесс (процесс с высоким приоритетом), такой переход целесообразен;
4-2 если память может понадобиться высокоприоритетным процессам, система может выгрузить на диск даже выполняющийся в данный момент процесс.
Процесс может быть подвергнут swapping’у не только при нехватке памяти. Другие причины:
1) Период характер работы процесса – на время между активными действиями процесс целесообразно выгружать на диск.
2) Запрос пользователя.
3) Запрос родительского процесса.
3.1.3. Управляющие структуры ос для процессов и ресурсов
3.1.3.1. Основные виды системных таблиц. Сегментация виртуального адресного пространства процесса
Рис.8
В общем случае любые системные таблицы, так или иначе, связанны с первичными таблицами процессов (рис. 8).
Таблицы памяти включают:
Объем основной памяти процесса
Объем вторичной памяти процесса
Атрибуты защиты блоков памяти
Информация по управлению виртуальной памятью
Таблицы ввода/вывода:
Занято или свободно устройство
Каким процессом используется
Состояние текущей операции вв/выв
Адреса буферов, очередей и т.п.
Таблицы файлов:
Работу с файлами ведет файловая система
Файловые таблицы ведутся самой ОС
Первичные таблицы процессов
Каждому процессу соответствует одна запись, в которой, по крайней мере, содержится указатель на образ процесса. Если образ сегментирован, то ссылочная информация о цепочке сегментов может располагаться в первичных таблицах.
Процессу должен быть выделен такой объем памяти, чтобы поместились программный код, данные, стек. ОС требуется управлять процессом, для этого потребуется память для хранения специальных атрибутов, называемых в совокупности управляющим блоком процесса (PCB–processcontrolblock,TCB–taskcontrolblock, дескриптор процесса, дескриптор задачи).
В большинстве современных ОС используется такая схема, в которой образ процесса состоит из набора блоков, не обязательно расположенных последовательно. Если эти блоки могут быть переменной длины – сегментная организация памяти, фиксированный – страничная организация. Каждый такой блок может находиться в оперативной памяти или на диске. Поэтому таблицы процессов должны содержать сведения о местонахождении каждого сегмента или страницы.