Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

Подписываем
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Предоплата всего
Подписываем
Планирование верхнего уровня управления заданиями
(Планирование заданий с учетом требований
к памяти и внешним устройствам)
Для студентов III-IV курсов факультета автоматики и вычислительной техники
(специальность 2201) всех форм обучения
Изучение и исследование некоторых алгоритмов и способов планирования заданий (с учетом требований к памяти и внешним устройствам) в мультипрограммной вычислительной системе.
Функцией службы управления процессом является распределение аппаратных ресурсов центрального процессора.
Можно выделить следующие компоненты этой службы:
–планировщик заданий,
–планировщик задач (планировщик процессов).
Задание представляет собой описание комплекса работ, которые пользователь хочет выполнить на ЭВМ. Этот комплекс может быть представлен в виде последовательности некоторых частных работ, описываемых с помощью шагов задания. Из шагов задания формируются задачи. Для выполнения задач система создает процессы.
Объектами работы планировщика заданий являются задания, а планировщик задач управляет процессами.
Планировщик заданий выбирает, какие задания и в какой последовательности должны поступать на обработку (своего рода «макропланировщик»).
Планировщик задач выступает в роли «микропланировщика», распределяющего процессор между процессами.
В случае мультипрограммирования планировщик заданий выбирает несколько заданий из множества всех представленных и вводит их в систему. Для каждого задания формируется таблица задания JCB (Job Control Block). Пример таблицы задания приведен на рис. 1.
Идентификатор задания – |
Количество шагов – |
1 |
приоритет – |
объем памяти – |
число внешних устройств – |
предполагаемое время выполнения – |
|||
признаки выполнения задачи – |
|||
2 . . N |
|||
признаки выполнения задачи – |
Рис. 1. Таблица задания.
Для программного выполнения этих заданий планировщик заданий создает процессы и выделяет им необходимые ресурсы (память, внешние устройства).
Планировщик процессов должен решить, какому из созданных процессов предоставить процессор, в какой момент и на какое время.
Планировщик заданий обеспечивает определенную дисциплину выбора заданий на обработку. Для принятия такого решения могут учитываться такие характеристики заданий, как приоритет, необходимые ресурсы и т.п. Планировщик заданий не только выделяет необходимые ресурсы для поступающего на обработку задания, но и освобождает ресурсы после выполнения задания.
Как уже упоминалось, планировщик заданий обеспечивает выбор задания из очереди и передачу его на обработку в соответствии с определенной дисциплиной обслуживания.
Дисциплиной обслуживания называют правило, на основе которого из очереди выбирается задание на обслуживание.
Классификация дисциплин обслуживания приведена на рис.2.
d0������������������������. 2. ������������������������������������������������������������������������������������������������������������������������������������������������������������ ������������������������������������������������������������������������������������������������������������ ������������������������������������������������������������������������������������������������������������������������������������������������.
В настоящей лабораторной работе рассматриваются 4 дисциплины обслуживания:
. Линейная дисциплина обслуживания FIFO (First In –First Out). Из очереди заявок на обслуживание выбирается заявка, поступившая в очередь первой.
. Линейная дисциплина обслуживания LIFO (Last In –First Out). Из очереди заявок на обслуживание выбирается заявка, поступившая в очередь последней.
. Дисциплина обслуживания с фиксированным приоритетом SJF (Short Job First). Из очереди заявок на обслуживание выбирается заявка с минимальным временем обслуживания.
. Дисциплина обслуживания с фиксированным приоритетом PRT (PRioriTy). Из очереди заявок на обслуживание выбирается заявка с максимальным приоритетом.
Существует несколько оценок эффективности планирования. Одной из них является время обращения задания – время, прошедшее с момента поступления задания в систему до момента завершения его выполнения.
t = tЗ – tП, где
t – время обращения задания,
tЗ – время завершения задания,
tП – время поступления задания.
Но эта оценка не является универсальной. Например, если сравнивать время обращения одночасового и одноминутного задания (при условии, что задания начнут выполняться сразу же, как только поступят в систему), то время обращения одночасового задания будет значительно больше, чем время обращения одноминутного. Но это совсем не значит, что одночасовое задание было обслужено плохо, т.к. время обращения задания не может быть меньше времени выполнения.
Более универсальной оценкой, позволяющей сравнивать между собой задания любой длины, является взвешенное время обращения
W = (tЗ – tП) / T, где
W – взвешенное время обращения,
T – действительное время выполнения задания.
Для случая M заданий можно провести оценку по среднему взвешенному времени обращения
WСР – средневзвешенное время обращения,
Wi – взвешенное время обращения i -го задания,
M – количество заданий.
Примем, что в нашем распоряжении имеются 9 Kb оперативной памяти и 5 внешних устройств. Характеристики заданий приведены в таблице 1.
Таблица 1. Характеристики заданий.
Номер задания |
Время поступления |
Необходимое процессорное время |
Требования |
Требования |
1 |
||||
2 |
||||
3 |
||||
4 |
Время ввода каждого задания определим по формуле:
tввода = q × N , где
q – время работы одного внешнего устройства (q=5 ед.времени), N – число внешних устройств.
Таким образом, если бы задания выполнялись по одному, то на каждое задание было бы затрачено время
T = tввода + tпроц. , где
T – время выполнения задания,
tпроц. – процессорное время, затраченное для выполнения задания.
В ЭВМ поступает поток заданий, поэтому при одновременном выполнении нескольких заданий процессорное время распределяется между ними равномерно. Т.о. реально затраченное время для выполнения задания ≥ необходимого процессорного времени.
Для простоты предположим, что все внешние устройства могут работать параллельно, не задерживая друг друга.
Временная диаграмма мультипрограммной работы ЭВМ при приведенных выше исходных данных изображена на рис.3
Рис. 3. Временная диаграмма мультипрограммной работы ЭВМ
(Дисциплина обслуживания FIFO).
Процесс построения временной диаграммы рассмотрен в таблице 2.
Таблица 2. Описание построения временной диаграммы.
Время |
Событие |
t = 0 |
Поступило задание 1. Т.к. свободных ресурсов (ОП и ВУ) заданию хватает, оно назначается на выполнение. (Начинается ввод). |
t = 5 |
Ввод завершен и все процессорное время отдается для выполнения задания 1. |
t = 7 |
Поступило задание 2. Свободных ресурсов для выполнения задания недостаточно, поэтому оно помещается в очередь. |
t = 12 |
Поступило задание 3. Свободных ресурсов для выполнения задания недостаточно, поэтому оно также помещается в очередь. В очереди сейчас находятся задания 2 и 3. |
t = 20 |
Поступило задание 4. Т.к. свободных ресурсов заданию хватает, оно назначается на выполнение. Первые 5 ед. времени процессорное время заданию 4 не требуется и его полностью получает задание 1. |
t = 25 |
Завершился ввод задания 4. С этого момента времени процессор необходим обоим заданиям. Процессор начинает работать в мультипрограммном режиме. Каждое из заданий получает 10 ед. процессорного времени. В сумме процессорного времени затрачено 20 ед. |
t = 45 |
Завершено выполнение задания 1. Ресурсы, занятые им, освобождены. Теперь свободных ресурсов достаточно для назначения на выполнение задания 2 или 3 (но не одновременно). В действие вступает дисциплина обслуживания FIFO. На выполнение назначается задание 2 –оно поступило первым (задание 3 остается в очереди). |
t = 50 |
Те 5 ед. времени, в течение которых выполнялся ввод задания 2, все процессорное время (5 ед.) получило задание 4. Вновь процессор начинает работать в мультипрограммном режиме. 10 ед. процессорного времени распределяются между заданиями 4 и 2. |
t = 60 |
Выполнение задания 4 завершено, но освободившихся ресурсов недостаточно для назначения на выполнение задания 3. Задание 3 остается в очереди. |
t = 65 |
Завершилось выполнение задания 2. освободившихся ресурсов достаточно для назначения на выполнение задания 3. Задание 3 выполняется в однопрограммном режиме. |
t = 85 |
Завершилось выполнение задания 3. |
Каким образом можно проверить правильность построения временной диаграммы?
Для этого необходимо определить по временной диаграмме, сколько времени работал процессор. Это временные интервалы с t=5 до t=65 и с t=75 до t=85. В интервале с t=65 до t=75 процессор простаивал. Таким образом, процессор работал в течение 70 ед. времени.
Далее необходимо просуммировать процессорное время всех выполненных заданий.
Tпроцессора = 30+10+10+20=70 ед.
Значения равны, следовательно, диаграмма построена верно.
Для оценки эффективности дисциплины обслуживания найдет средневзвешенное время обращения. Согласно формуле . Необходимо найти взвешенные времена выполнения каждого задания (данные берем из временной диаграммы и таблицы):
Т.о. Wср = (W1 + W2 + W3 + W4) / 4 = 2.14.
В настоящей лабораторной работе реализована модель планировщика заданий. Программная модель планировщика заданий реализует следующие функции:
– ввод параметра потока заданий;
– ввод параметров системы;
– назначение задания на выполнение и выделение заданию необходимых ресурсов (при условии, что свободных ресурсов достаточно для выполнения задания);
– отслеживание выполняющихся заданий в дискретные моменты времени (через каждый квант модельного времени);
– выборку заданий из очереди в соответствии с заданной дисциплиной обслуживания;
– отсчет времени ввода и выполнения задания;
– печать состояния заданий через каждый квант модельного времени.
Примечание. При рассмотрении реализованной модели следует обратить внимание на следующее допущение: модель не учитывает время, необходимое планировщику для загрузки задания в память, подготовки для него JCB и т.п. Таким образом, можно считать, что все задания находятся в памяти и процесс их загрузки уже завершен.
После ввода пользователем параметров системы и заданий, по нажатию клавиши «Старт» программа переходит в режим моделирования. В режиме моделирования программа создает для внутренних целей журнал работы. В этом вывода на экран не происходит.
После завершения моделирования программа переключается в режим диалога с пользователем и осуществляет вывод на экран результатов моделирования. Работа в этом режиме происходит только с журналом полученных результатов, т.е. при изменении параметров просмотра (View -> Diagram, View -> Process и т.д.) повторного моделирования не происходит, а изменяются лишь параметры просмотра содержимого журнала.
Перемоделирование происходит лишь при изменении параметров системы, заданий или выборе новой дисциплине обслуживания. Такой способ работы позволяет значительно сократить время работы программы.
Блок-схема работы программы в режиме моделирования приведена на Рис. 4.
Рис. 4. Блок-схема программной модели планировщика заданий.
В ЭВМ (работа которой промоделирована в настоящей лабораторной работе) имеется память объемом 16К и 10 внешних устройств, реализуется режим мультипрограммирования: если одновременно выполняется несколько задач, а процессорное время распределяется между ними равномерно. В ЭВМ поступает поток (или пакет) из заданий. Поступившие задания, которым не хватает свободных ресурсов, помещаются в очередь. Для выборки заданий из очереди (среди заданий, для которых достаточно свободных ресурсов) используются дисциплины обслуживания FIFO, LIFO, SJF, PRT. Задание состоит из одной задачи. Для формирования последовательности заданий используется набор из 10 типов задач, характеристики которых приведены в таблице 3. Каждое задание включает одну из этих 10 задач. В одном потоке заданий могут встречаться задания, содержащие одинаковые задачи. Для выполнения каждого задания требуется определенный объем оперативной памяти, несколько внешних устройств, процессорное время.
Если бы задания выполнялись по одному, то на каждое задание было бы затрачено время
T = tвода + tпроцессора, где
T – время выполнения задания,
tввода – время ввода задания,
tпроцессора – процессорное время, необходимое для выполнения задания.
Время ввода задания определяется по формуле
tввода = q × N, где
N – число внешних устройств, используемых заданием,
q – время работы одного внешнего устройства (q = 5 ед. модельного времени).
Закрепленные за заданием внешние устройства освобождаются только после завершения задания. Все внешние устройства могут работать параллельно, не задерживая друг друга.
Таблица 3. Характеристики задач.
Номер задачи |
||||||||||
Процессорное время, |
70 |
40 |
||||||||
Требования к ОП, К |
6 |
6 |
1 |
|||||||
Требования к ВУ, шт. |
2 |
|||||||||
Приоритет |
2 |
Таблица 4. Варианты заданий.
Номер |
Дисциплины обслуживания |
1 |
FIFO, SJF |
2 |
LIFO, PRT |
3 |
LIFO, SJF |
4 |
FIFO, PRT |
Порядок выполнения лабораторной работы
Лабораторная работа состоит из двух частей. В первой части лабораторной работы исследуются модели дисциплин обслуживания для существующего входного потока (входной поток задан заранее и сохранен в файле test.dat). Цель первой части работы –знакомство с интерфейсом программы и ознакомление с различными дисциплинами обслуживания. Параметры заданий и системы подобраны таким образом, что позволяют наглядно увидеть различия между дисциплинами обслуживания.
Для выполнения лабораторной работы используется программа MultiVis. Она позволяется моделировать выполнение потока (или пакета) заданий в некой абстрактной системе с определенным количеством оперативной памяти и внешних устройств. Для выполнения программы используются следующие файлы:
Рис. 5. Общий вид программы
Рис. 6. Диалог ввода заданий.
Рис. 7. Моделирования в режиме временной диаграммы.
Описание режима временной диаграммы (рис. 7). В нижней части экрана представлена временная ось, отображающая время моделирования. Поскольку используется событийное моделирование, то все времена, указанные на оси, соответствуют некоторым событиям. Эти события отмечаются на экране вертикальными пунктирными линиями. Горизонтальными линиями отображаются состояния заданий в системе. Задание может находиться в 3-х состояниях: ожидание (у системы недостаточно ресурсов для выполнения задания), загрузка (задание выполняет работу с внешними устройствами для загрузки) и выполнение (развитие задания на процессоре).
Рис. 8. Моделирования в режиме просмотра текущего состояния заданий.
Рис. 9. Окно статистики.
Вторая часть лабораторной работы ставит целью исследование различных дисциплин обслуживания (указанных в Вашем варианте) при изменении параметров системы (в данном случае объема оперативной памяти). Для исследования используется входной пакет (пакет –все задания поступают одновременно) коротких, а затем длинных работ. После пакета задается поток коротких и длинных работ (поток –существует значительный разброс между временем поступления заданий в систему). Рекомендуется использовать те же задания, что и при исследовании пакета работ.
Параметры исследования:
Рис. 10. Диалог редактирования задания.
Таблица 5. Примерный вид таблицы результатов исследований.
Количество |
Дисциплина обслуживания 1 |
Дисциплина обслуживания 2 |
|
Короткие |
Длинные |
Короткие |
Длинные |
пакет |
поток |
пакет |
поток |
пакет |
поток |
пакет |
поток |
Отчет должен содержать 2 таблицы: в одну заносятся результаты средневзвешенного времени выполнения заданий, в другую –максимальные значения коэффициента мультипрограммирования (для каждого варианта моделирования).
Цель работы 1
Общие сведения о планировании заданий 1
Дисциплины обслуживания 2
Оценки эффективности планирования 2
Пример построения временной диаграммы мультипрограммной
работы ЭВМ (дисциплина обслуживания FIFO) 3
Описание модели, планировщик заданий 5
Исходные данные 6
Варианты заданий 7
Порядок выполнения лабораторной работы 7
Первая часть лабораторной работы 7
Вторая часть лабораторной работы 11
Содержание отчета 12
Контрольные вопросы 12
Список рекомендуемой литературы 12
Содержание 13