Лабораторная работа. Способы распределения процессорного времени в операционных системах
Цель работы: ознакомиться с основными дисциплинами диспетчеризации и получить практические навыки их использования при распределении процессорного времени.
Общие сведения
Дисциплины диспетчеризации (обслуживания) – это правила формирования очереди готовых к выполнению задач, в соответствии с которыми формируется эта очередь (список).
Различают два больших класса дисциплин обслуживания: бесприоритетные и приоритетные. При бесприоритетном обслуживании выбор задачпроизводится в некотором заранее установленном порядке без учета их относительнойважности и времени обслуживания. При реализации приоритетных дисциплинобслуживания отдельным задачам предоставляется преимущественноеправо попасть в состояние исполнения.
К наиболее часто используемым дисциплины диспетчеризации относятся следующие:
а) FCFS (First Come First Served — первым пришел, первым обслужен), согласно которой задачи обслуживаются «в порядке очереди», то есть в порядке их появления. Задачи, которые были заблокированы в процессе работы, после перехода в состояние готовности вновь ставятся в эту очередь готовности. Эта дисциплина обслуживания не требует внешнего вмешательства в ход вычислений, при ней не происходит перераспределения процессорного времени;
б) SJN (Shortest Job Next — следующим выполняется самое короткое задание) требует, чтобы для каждого задания была известна оценка в потребностях машинного времени. Дисциплина обслуживания SJN предполагает, что имеется только одна очередь заданий, готовых к выполнению. Задания, которые в процессе своего исполнения были временно заблокированы, вновь попадали в конец очереди готовых к выполнению наравне с вновь поступающими;
в) SRT (Shortest Remaining Time) — следующим будет выполняться задание, которому осталось меньше всего выполняться на процессоре;
г) RR (карусельная, Round Robin) - одна из самых распространенных дисциплин предполагает, что каждая задача получает процессорное время порциями или квантами времени (time slice) q. После окончания кванта времени q задача снимается с процессора, и он передается следующей задаче. Снятая задача ставится в конец очереди задач, готовых к выполнению. Для оптимальной работы системы необходимо правильно выбрать закон, по которому кванты времени выделяются задачам.
Различают невытесняющую (кооперативную) многозадачность (дисциплины FCFS, SJN, SRT) и вытесняющую многозадачность (RR и другие, созданные на ее основе).
С целью исследования принципов работы рассмотренных дисциплин диспетчеризации на кафедре «Инженерная кибернетика» был разработан программный комплекс «Эмуляция работы дисциплин диспетчеризации».
Окно программной системы для удобства и эффективности работы разбито на несколько функциональных зон (рисунок 6.1).
Верхняя левая область – область отображения загруженных процессов из операционной системы и их параметров. Количество данных процессов зависит от количества реальных процессов, запущенных на реальной машине, на которой установлена настоящая программа. Первый список собственно сами процессы. Второй список – общее время выполнения процесса, устанавливается один раз при загрузке процесса. Третий список – оставшееся время выполнения процесса после блокировки. Четвертый список – разрешение блокировки (если блокировка разрешена, то в поле устанавливается «1», иначе «0»). Пятый список – время блокировки. Шестой список – бит завершения процесса (устанавливается «1» если процесс полностью завершился). Все значения списков, кроме первого и второго, изменяются в процессе эмуляции в зависимости от хода выполнения процесса.
Верхняя правая область – область отображения работы модуля эмуляции процессов. В ней отображаются название процесса, который в настоящее время запущен в процессоре, очереди готовых к выполнению, выполненных и заблокированных процессов (в зависимости от выбранной дисциплины диспетчеризации), время до завершения процесса и оставшееся время кванта (для дисциплины RR).
Нижняя левая область – область построения графиков. График отношения заблокированных к выполненным задачам строится в реальном времени. Координата графика добавляется при выгрузке задачи из процессора. По ординате графика откладывается значение, равное отношению выполненных к заблокированным задачам. По абсциссе откладывается количество выгруженных задач (вне зависимости от состояния процесса).
Нижняя правая область – область отображения маршрута процесса. В зависимости от выбранной дисциплины диспетчеризации строится шаблон всех возможных маршрутов процесса (линии черного цвета). В момент загрузки зеленым цветом рисуется маршрут задачи от очереди до процессора, а красным дальнейший маршрут после выгрузки. Тем самым есть возможность наглядно просмотреть все действия, которые происходят с задачей в процессе эмуляции.
Рисунок 6.1 – Функциональные зоны главного окна
При вызове руководства пользователя оно отображается вместо областей, расположенных в левой части. Данное окно можно закрыть в любой момент времени нажатием кнопки.
Для эмуляции используются названия реальных процессов вычислительной машины, на которой установлена настоящая программа.
Приступая к работе с данным программным продуктом необходимо выполнить следующие действия:
а) запустить приложение dispatcher.exe;
б) в главном меню во вкладке «Файл» нажать кнопку «Загрузить» после чего сгенерируется список процессов и их параметров, с помощью которых будет производиться эмуляция;
в) во вкладке «Дисциплина» необходимо выбрать алгоритм дисциплины диспетчеризации, с помощью которой будет производиться эмуляция;
г) нажать кнопку «Запустить» во вкладке «Файл».
После выполнения вышеперечисленных действий запустится процесс эмуляции. Во время выполнения программы в ее рабочем окне отображается информация о ходе выполнения эмуляции. Функционально окно можно разделить на четыре части:
1) область отображения списка используемых процессов и их параметры, необходимые для системы;
2) область построения зависимостей выполнения процессов;
3) область отображения эмуляции процессора и очередей выполняемых процессов;
4) графическое отображение маршрутов процессов в ходе эмуляции.
Для смены дисциплины диспетчеризации необходимо выполнить следующие действия:
а) нажать кнопку «Остановить» во вкладке «Файл» для остановки процесса эмуляции;
б) нажать кнопку «Сброс» во вкладке «Файл»;
в) выполнить действия для запуска выполнения программы.
Задания к лабораторной работе
6.2.1 Запустить программный комплекс «Эмуляция работы дисциплин диспетчеризации» и с его помощью
- провести серии экспериментов по определению оптимальных параметров для отдельных дисциплин (частоты выполнения заблокированного процесса для FCFS, оптимального значения кванта времени для RR);
- построить графики отношения заблокированных и выполненных задач для каждой серии;
- выбрать оптимальную дисциплину диспетчеризации для загруженных процессов; обосновать свой выбор.
6.2.2 Три задачи А, В, С поступают в компьютерный центр практически одновременно. Ожидается, что время их выполнения составит 1, 2, 4 мин. Требуется определить среднее время выполнения задач, считая, что время переключения между процессами (время смены контекста) – 2 мс, а время кванта процессора – 20 мс. Планирование циклическое (RR) - каждой задаче достается справедливая доля процессорного времени.
6.2.3 Четыре пакетных задачи A, B, C, D поступают в двухпроцессорный компьютер практически одновременно. Ожидаемое время их выполнения составляет 7, 4, 6 и 2 мин. Установленные приоритеты составляют 3, 2, 1 и 4, причем 4 – высший приоритет. Определить среднее оборотное время для алгоритма «первым пришел – первый обслужен», запущенная задача работает до конца. Время, которое теряется на переключение между процессами, не учитывать.
Требования к отчету
Отчет по работе выполняется на бумажном носителе и должен содержать:
- задание к работе;
- описание тех или иных действий, выполненных для получения результата, или листинги программ с комментариями;
- снимки экрана с результатами работы;
- выводы по каждому заданию.
6.4 Контрольные вопросы
6.4.1 С какой целью в операционных системах используются дисциплины диспетчеризации?
6.4.2 В каких операционных системах используется дисциплина FCFS?
6.4.3 Какими достоинствами обладают рассмотренные основные дисциплины обслуживания?
6.4.4 Какие недостатки невытесняющих дисциплин устранены с помощью дисциплины RR?
6.4.5 Какое влияние на результат использования RR оказывает учет приоритетов?
6.4.6 Что представляет собой частота выполнения заблокированного процесса?
6.4.7 Приведите пример использования дисциплин диспетчеризации в ОС реального времени.
6.4.8 Приведите схемы функционирования дисциплин SJN и SRT.
6.4.9 Как изменится схема функционирования FCFS при использовании одной очереди вместо двух?
6.4.10 Какие стратегии обслуживания используются в Unix-системах?