- •Содержание
- •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
З
Выполнение
Конец … начало



апуск
Выбор Завершение

а) упрощенный фрагмент диспетчеризации с FCFS (FIFO) без квантования времени ЦП.
З Конец … начало Выполнениеапуск Выбор Завершение



Истечение
кванта
б) упрощенный фрагмент схемы диспетчеризации с FCFS (FIFO) с квантованием времени ЦП.
Рис. 4. Одноочередная реализация диспетчеризации для операций Запуск, Выбор, Истечение_кванта
На рис. 4 представлена схема формирования очереди готовых процессов при выполнении операций планирования Запуск и операции диспетчеризации Истечение_кванта. Заметим, что операция Выбор производит выделение кванта времени ЦП, процессу, дескриптор которого находится в начале очереди готовых процессов, формируемой по принципу FCFS. Алгоритм, иллюстрируемый данной схемой, прост для реализации; необходимо отметить, что в рассмотренной схеме в наиболее благоприятных условиях находятся процессы, которым требуется меньшее время для использования ресурсов (включая ЦП).
4.2.2. Краткое описание алгоритма многоочередной диспетчеризации для операцииИстечение_кванта.
Рассмотренная выше дисциплина является одноочередной. Ее усовершенствованием является модификация данной схемы, связанная с введением многоочередной схемы диспетчеризации.
На рис.5 представлена схема многоочередной диспетчеризации.
Очередь1
З
Конец …
начало
Выполнение







Очередь2
Конец … начало






Очередь3
Конец …
начало




:
:
Очередь1
Конец …
начало




:
:
Очередь n-1
Конец …
начало




Очередь n
Конец …
начало




Истечение_кванта
Рис.5. Многоочередная реализация диспетчеризации для операций Истечение_кванта.
Для представленной схемы организуются n очередей. После выполнения операции планирования для какого-либо процесса его дескриптор помещается в Очередь 1. В принципе, в качестве первой очереди может использоваться списковая структура, формирование которой осуществляется не обязательно в соответствии с правилом FCFS. В очереди с номерами от 2 до n поступают дескрипторы активных процессов, отношении которых произведена операция Истечение_кванта. Поступление и извлечение дескрипторов процессов в/из очередей осуществляется следующим образом.
При выполнении операции Выбор процесс, дескриптор которого расположен в начале i-той очереди (1<=i<=n), будет помещен в состояние выполнение только в том случае, если все очереди от первой до (i-1)-ой – пустые. Выполнение выбранного процесса будет осуществляться в течение кванта времени (если, конечно, не произойдет операция диспетчеризации Запрос_ресурса, Завершение или какая-либо другая операция планирования процессов в отношении данного выполняемого процесса). После истечения кванта времени, вследствие выполнения операции диспетчеризации Истечение_кванта времени ЦП произойдет перевод процесса из состояния выполнение в состояние готовность и его дескриптор поступает в конец очереди с номером i+1.
Последующая за этим операция Выбор переведет в состояние выполнение тот процесс, дескриптор которого стоит в начале очереди с самым младшим номером. Таким процессом может оказаться процесс, дескриптор которого стоял следующим в очереди i или в очереди i+1 (при условии, что после выбора процесса из очереди i последняя оказалась пустой). Дескриптор процесса, переводимого из пассивного состояния в активное (с помощью операции Запуск), поступает в первую очередь (i=1). Если это имеет место быть, после окончания кванта времени ЦП, выделенного для выполнения процесса из очереди i, будет осуществлен запуск процесса, дескриптор которого помещен в очередь номер 1.
Данная схема обеспечивает быстрое выполнение наиболее коротких процессов. Недостаток данной схемы диспетчеризации заключается в непроизводительных расходах процессорного времени на перемещение дескрипторов процессов из одной очереди и другую.
