
- •Лабораторная работа №2 «Моделирование алгоритмов управления процессами в операционных системах»
- •Теоретические сведения Подсистема управления процессами
- •Состояние процессов
- •Алгоритмы планирования процессов
- •Проблема синхронизации процессов
- •Критическая секция
- •Задание на лабораторную работу
- •Варианты заданий
Задание на лабораторную работу
Разработать программу, моделирующую один из алгоритмов управления процессами в соответствии с вариантом задания. При моделировании считать что:
однопроцессорная вычислительная система разделения времени;
общий объем памяти вычислительной системы составляет 64К;
ввод-вывод является разделяемым ресурсом, недопускающий одновременного использования несколькими процессами и требующий решения проблемы синхронизации процессов;
поступаемые на выполнение задачи содержатся в файлах, моделирующих процессы (формат смотри ниже);
вытеснение процесса из процессора приводит к сохранению информации о его состоянии в контексте процесса, который восстанавливается при последующем поступлении процесса в процессор;
вытеснение процесса из процессора также приводит к освобождению занимаемой им памяти;
пользователь может «загружать» в моделируемую систему новые задачи, порождающие процессы;
Предусмотреть возможность интерактивного слежения за состоянием вычислительной системы в процессе выполнения задач (состояние очередей «ОЖИДАНИЕ» и «ГОТОВНОСТЬ», приоритеты процессов, требования к ресурсом, состояние ПРОЦЕССОРА, состояние ВВОДА\ВЫВОДА, состояние ПАМЯТИ и т.д.).
Формат файла, моделирующего задачу:
ПАМЯТЬ-1000
ПРЦЕССОР-10
ВВОД\ВЫВОД-20
ПРЦЕССОР-12
...
ПРЦЕССОР-5
ВВОД\ВЫВОД-25
Где первая строка «ПАМЯТЬ» – определяет требования процесса на объем (в байтах) доступной памяти (если такового в системе на данный момент нет, то процесс поступает в очередь готовых). Остальные строки представляют собой поэтапное требование процесса в процессорном времени «ПРОЦЕССОР» (в секундах) и во времени ввода-вывода «ВВОД-ВЫВОД» (в секундах).
В отчете представить блок-схему функционирования вычислительной системы.
Варианты заданий
Вариант |
Алгоритм управления процессами |
1 |
Управление процессами на основе бесприоритетного квантования. Очередь готовых процессов – FIFO. Синхронизация процессов с использованием аппарата событий. |
2 |
Управление процессами на основе квантования. Очередь готовых процессов – с абсолютными приоритетами (приоритеты назначаются пользователем при загрузке соответствующей задачи). Синхронизация процессов с использованием блокирующих переменных. |
3 |
Управление процессами на основе квантования. Очередь готовых процессов – с относительными приоритетами (приоритеты назначаются пользователем при загрузке соответствующей задачи). Синхронизация процессов с использованием аппарата событий. |
4 |
Управление процессами на основе квантования. Очередь готовых процессов – LIFO. Квант времени, отводимый процессу, выбирается в соответствии с приоритетом процесса (приоритеты назначаются пользователем при загрузке соответствующей задачи). Синхронизация процессов с использованием блокирующих переменных. |
5 |
Управление процессами на основе квантования. Очередь готовых процессов – с относительными приоритетами (приоритеты назначаются пользователем при загрузке соответствующей задачи). Квант времени, отводимый процессу, выбирается случайным образом в заданном диапазоне. Синхронизация процессов с использованием аппарата событий. |
6 |
Управление процессами на основе безприоритетного квантования. Очередь готовых процессов – LIFO. Квант времени, отводимый процессу, равен среднему значению требований процессорного времени «ПРОЦЕССОР» соответствующей задачи. Синхронизация процессов с использованием блокирующих переменных. |
7 |
Управление процессами на основе квантования. Очередь готовых процессов – с абсолютными приоритетами. Приоритеты назначаются системой: процесс, предъявляющий минимальные требования к вводу-выводу, получает наивысший приоритет Синхронизация процессов с использованием аппарата событий. |
8 |
Управление процессами на основе квантования. Очередь готовых процессов – с относительными приоритетами (приоритеты назначаются системой случайным образом при загрузке соответствующей задачи). Синхронизация процессов с использованием блокирующих переменных. |