Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОСлаб.doc
Скачиваний:
43
Добавлен:
01.05.2015
Размер:
437.25 Кб
Скачать

5.3 Требования к отчету

Отчет по работе выполняется на бумажном носителе и должен содержать:

- задание к работе;

- описание тех или иных действий, выполненных для получения результата;

- листинги программ с комментариями;

- снимки экрана с результатами работы;

- выводы по каждому заданию.

5.4 Контрольные вопросы

5.4.1 Что такое «поток»?

5.4.2 В чем разница между потоком и процессом?

5.4.3 В каких случаях возникает взаимоблокировка?

5.4.4 На чем основан алгоритм обнаружения взаимоблокировок?

5.4.5 Какие виды планировщиков Вам известны?

5.4.6 Какие состояния возможны для активных процессов?

5.4.7 Приведите пример пассивных процессов?

5.4.8 Что понимается под мультипрограммированием?

5.4.9 Что понимается под планированием вычислительных процессов?

5.4.10 Что определяет стратегия планирования?

6 Лабораторная работа. Способы распределения процессорного времени в операционных системах

Цель работы: ознакомиться с основными дисциплинами диспетчеризации и получить практические навыки их использования при распределении процессорного времени.

6.1 Общие сведения

Дисциплины диспетчеризации (обслуживания) – это правила формирования очереди готовых к выполнению задач, в соответствии с которыми формируется эта очередь (список).

Различают два больших класса дисциплин обслуживания: бесприоритетные и приоритетные. При бесприоритетном обслуживании выбор задач производится в некотором заранее установленном порядке без учета их относительной важности и времени обслуживания. При реализации приоритетных дисциплин обслуживания отдельным задачам предоставляется преимущественное право попасть в состояние исполнения.

К наиболее часто используемым дисциплины диспетчеризации относятся следующие:

а) 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) графическое отображение маршрутов процессов в ходе эмуляции.

Для смены дисциплины диспетчеризации необходимо выполнить следующие действия:

а) нажать кнопку «Остановить» во вкладке «Файл» для остановки процесса эмуляции;

б) нажать кнопку «Сброс» во вкладке «Файл»;

в) выполнить действия для запуска выполнения программы.