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

1.3. Задание на курсовую работу группы № 1

Для всех вариантов:

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

Вариант 1.Реализация планировщика с тремя состояниями:

ГОТОВ ВЫПОЛНЕНИЕОЖИДАНИЕ

В качестве ожидаемого события может быть выбрано нажатие определенной клавиши.

Вариант 2. Реализация планировщика с тремя состояниями, где механизм планирования основан на системе относительных приоритетов процесса.

Вариант 3. Реализация планировщика с тремя состояниями, где механизм планирования основан на системе абсолютных приоритетов процесса.

Вариант 4. Реализация планировщика с тремя состояниями, где величина кванта зависит от приоритета процесса, приоритет можно повысить или понизить.

Например: Процесс блокируется по нажатию определенной клавиши.

(+ / -) – (увеличение / уменьшение) приоритета.

Пробуждение – по нажатию той же клавиши.

1.4. Общая схема работы

  1. запуск планировщика

  2. инициализация процессов и постановка их в очередь готовых к выполнению

  3. выбор первого процесса из очереди готовых

  4. обращение к контексту процесса и запуск процесса

  5. при карусельной дисциплине в каждом элементарном цикле обработка счетчика тиков и проверка истечения кванта:

если квант закончился – передача управления планировщику, нет продолжение работы процесса

  1. для прерванного процесса запоминается контекст, а процесс ставится в очередь готовых

  2. если очередь не пуста – возврат на 3, иначе завершение программы

1.5. Требования к реализации (для всех вариантов)

  • три программных модуля + планировщик

  • наличие структуры, имитирующей БУП

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

  • возможность изменения кванта

1.6. Требования к пояснительной записке:

  • Описание методов управления задачами в мультизадачной или мультипрограммной ОС, алгоритмы планирования и диспетчеризации процессов и задач

  • Постановка задачи

  • Обоснование выбора метода решения

  • Описание процессов, используемых в курсовой работе

  • Алгоритм и блок-схема работы Диспетчера задач

  • Описание структур, имитирующих БУП

  • Интерпретация результатов

  • Список используемой литературы

1.7. Дополнительные сведения и пример для программной реализации

В качестве рабочего процесса для реализации можно взять процесс, выводящий на экран элементы псевдографики в определенном порядке или бегущую текстовую строку. Вывод разных процессов должен отличаться друг от друга (цветом, размером, формой, расположением на экране, проч.), и каждый из процессов должен легко идентифицироваться визуально. Процессы должны работать достаточно долго для того, чтобы оценить их работу (~1-2мин), и заканчиваться в разное время.

  1. Описание рабочих структур.

Наличие структуры, имитирующей блок управления процессом обязательно. Объединить всю информацию в одну структуру можно, но не желательно.

Дескриптор процесса должен состоять, по крайней мере, из идентификатора процесса, состояния процесса и ссылки на контекст. Причем под идентификатором понимается внутреннее (системное) имя процесса, нjне название программного модуля.

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

При переходе от одного состояния к другому состояние процесса должно изменяться планировщиком.

  1. Запуск планировщика

Работа программы начинается с запуска планировщика. Рабочие процессы либо инициализируются самим планировщиком в заранее определенном порядке, либо запускаются извне пользователем, т.е. определен некий пользовательский интерфейс.

  1. Инициализация процессов и постановка их в очередь готовых к выполнению

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

  1. Выбор первого процесса из очереди готовых

Выбирается первый элемент из списка готовых процессов. Выбранный процесс помечается как текущий (исполняющийся в данный момент).

Сдвиг очереди может осуществляться сразу, а может уже после того, как запущенный процесс вновь передает управление планировщику.

  1. Обращение к контексту процесса и запуск процесса

Обнуление счетчика тиков, обращение к контексту по дескриптору выбранного процесса и передача управления процессу.

  1. Обработка счетчика тиков и проверка истечения кванта

Для работы с квантом используются прерывания DOS.

  1. Сохранение контекста прерванного процесса

Если процесс не завершил работу, состояние текущего процесса сохраняется в стеке соответствующего процесса, процесс добавляется в список готовых процессов.

  1. Переход к следующему процессу

Если очередь готовых не пуста – возврат к 3 пункту, иначе завершение работы планировщика.