
- •Содержание
- •1. Введение и структура лабораторного практикума
- •2. Основные требования, предъявляемые к разрабатываемым программам
- •3. Краткие сведения о проблемной области выполняемых работ
- •Пассивные состояния
- •Активные состояния
- •Операции создания/удаления процессов
- •Операции планирования процессов
- •Операции диспетчеризации процессов
- •Удаление_п
- •Выполнение
- •Возобновление
- •4. Задания для лабораторных работ
- •4.1 Лабораторная работа № 1. ”Программная реализация средств представления и управления процессами в многопрограммных ос”
- •4.1.1. Формирование дескрипторов процессов
- •4.1.2. Определение состояний "поступивших" процессов
- •4.1.3. Формирование и ведение списков дескрипторов процессов
- •4.1.4. Принцип имитации развития процессов
- •4.1.5. Организация взаимодействия с "системой"
- •4.1.5.1. Описание состава и назначения команд пользователя "Система" должна выполнять следующие команды пользователя:
- •4.1.5.2. Основные требования к форме ввода команд "системы"
- •Формирование дескриптора
- •Протокол работы программы
- •4.1.6. Порядок выполнения л.Р. № 1
- •4.1.7. Требования к отчету по л.Р. № 1
- •4.1.8. Контрольные вопросы к л.Р. № 1
- •4.2. Лабораторная работа № 2. "Изучение дисциплин диспетчеризации процессов в многопрограммных ос".
- •4.2.1. Краткое описание схемы одноочередной круговой (циклической) диспетчеризации.
- •Конец … начало
- •З Конец … начало Выполнениеапуск Выбор Завершение
- •4.2.2. Краткое описание алгоритма многоочередной диспетчеризации для операцииИстечение_кванта.
- •Конец … начало
- •4.2.3. Имитация развития процессов при выполнении л. Р. № 2
- •4.2.4. Порядок выполнения л.Р. № 2
- •4.2.5. Требования к отчету по л.Р. № 2
- •4.2.6. Контрольные вопросы к л.Р. № 2
- •4.3. Лабораторная работа № 3. "Реализация дисциплин диспетчеризации процессов с учетом приоритетов".
- •4.3.1. Краткое описание схемы многоочередной диспетчеризации с учетом приоритета.
- •Выполнение
- •Конец … начало
- •4.3.2. Порядок выполнения л.Р. № 3
- •4.3.3. Требования к отчету по л.Р. № 3.
- •4.3.4. Контрольные вопросы к л.Р. № 3
- •4.4. Лабораторная работа № 4. "Реализация дисциплины диспетчеризации процессов с учетом запросов ввода/вывода"
- •4.4.1. Краткое описание схемы диспетчеризации процессов с учетом ввода/вывода и ее реализации.
- •4.4.2. Порядок выполнения и требования к отчету л.Р. № 4
- •4.4.3. Контрольные вопросы к л.Р. № 4
4.3. Лабораторная работа № 3. "Реализация дисциплин диспетчеризации процессов с учетом приоритетов".
Цель работы.
Изучение способов приоритетной диспетчеризации активных процессов и их программной реализации.
Содержание работы.
При выполнении лабораторной работы № 3 необходимо осуществить развитие дисциплины диспетчеризации, реализованной в ходе выполнения лабораторных работ NN 1,2. Развитие дисциплины диспетчеризации должно осуществляться по направлению учета приоритетов активных процессов при реализации операций диспетчеризации "Запуск" и " Истечение_кванта".
4.3.1. Краткое описание схемы многоочередной диспетчеризации с учетом приоритета.
Основу многоочередной дисциплины, учитывающей в процессе диспетчеризации по отношению к операциям "Запуск" и "Истечение_кванта" заранее известные приоритеты активных процессов, представляет выше описанная многоочередная дисциплина, реализуемая в л.р. № 2.
Очереди дескрипторов пополняются вследствие выполнения двух типов операций диспетчеризации – "Запуск" и "Истечение_кванта" (см. рис.4б и рис.5). Отметим, что в рассмотренной выше схеме многоочередной диспетчеризации (рис. 5) дескрипторы после выполнения по отношению к соответствующим им процессам операции "Запуск" всегда помещаются в 1-ю очередь (очередь с самым маленьким номером). В ходе выполнения л.р. № 3 необходимо предпринять ряд изменений дисциплины диспетчеризации процессов, как при выполнении операции "Запуск", так и при выполнении операции "Истечение_кванта".
Первое. Необходимо модифицировать дисциплину диспетчеризации таким образом, чтобы дескрипторы процессов, поступающие в состояниеготовностьпосле выполнения по отношению к ним операции"Запуск",не обязательно попадали в 1-ю очередь, а помещались бы в очередь, номер которой определяется в соответствии с приоритетом поступающего процесса. Следовательно, необходимо осуществлять просмотр всех очередей дескрипторов процессов, начиная с начала первой очереди (помеченного символом * на рис.6).
Второе.При выполнении операции диспетчеризации"Истечетение_кванта" выполнявшийсяпроцесс, выбранный из очереди с номеромi, помещается в очередьi+1 в соответствии с комплексной дисциплиной типаHPF=FCFS.
Третье.В том случае, если приоритет вновь поступившего(запущенного)процесса выше, чем приоритетвыполняющегосяв данный момент процесса, то последний должен быть переведен в состояниеготовность,не дожидаясь завершения выделенного кванта процессорного времени,а вновь поступивший процесс - в состояниевыполнение.(Такая дисциплина диспетчеризации носит название диспетчеризация с абсолютным приоритетом). Формально, операция"Запуск"при диспетчеризации с абсолютным приоритетом может быть представлена следующим образом:
Запуск(имя_нового_процесса) :
еслирriorety.новый_процесс > рriorety.выполняемый_процесс
то выполняемый_процесс: выполнение -> {готовность|ожидание};
новый_процесс: начальное состояние -> выполнение;
иначеновый_процесс: начальное состояние->готовность.
Перевод выполняемого процесса в состояние готовность(илиожиданиеможно рассматривать как выполнение дополнительной операции диспетчеризации"Приоритетная_остановка",сопутствующей запуску нового процесса с учетом его абсолютного приоритета:
Приоритетная_приостановка:
выполняемый_процесс: выполнение ->
{готовность|ожидание}.
Вышеприведенная формализация операции "Запуск"предполагает, что все ресурсы, необходимые для выполнения нового процесса ему выделены. Выделение ресурсов (необходимого объема ОП или/и внешней памяти, необходимых УВВ или/и ВЗУ) может потребовать перевод ряда менее приоритетных процессов из состоянияготовностив состояние ожидания.
На рис. 6 схематически представлена дисциплина многоочередной диспетчеризации с учетом абсолютного приоритета запускаемого процесса, описанная выше.
Очередь1