- •Московский государственный университет
- •Группа заданий №1
- •1.3. Задание на курсовую работу группы № 1
- •1.4. Общая схема работы
- •1.5. Требования к реализации (для всех вариантов)
- •1.6. Требования к пояснительной записке:
- •1.7. Дополнительные сведения и пример для программной реализации
- •1.8. Вопросы к защите
- •Группа заданий №2
- •Методы решения проблем синхронизации
- •Семафоры Дейкстры.
- •Мьютексы.
- •Мониторы Хоара.
- •2.3. Задание на курсовую работу № 2
- •2.4. Реализация
- •Группа заданий №3. Моделирование механизмов виртуальной памяти.
- •Управление памятью
- •Память и отображения, виртуальное адресное пространство
- •Сегментная, страничная, сегментно-страничная организация памяти
1.3. Задание на курсовую работу группы № 1
Для всех вариантов:
Разработать планировщик задач, запускающий процессы на выполнение из очереди готовых процессов, согласно выбранной схеме (варианты предлагаются ниже).
Вариант 1.Реализация планировщика с тремя состояниями:
ГОТОВ ВЫПОЛНЕНИЕОЖИДАНИЕ
В качестве ожидаемого события может быть выбрано нажатие определенной клавиши.
Вариант 2. Реализация планировщика с тремя состояниями, где механизм планирования основан на системе относительных приоритетов процесса.
Вариант 3. Реализация планировщика с тремя состояниями, где механизм планирования основан на системе абсолютных приоритетов процесса.
Вариант 4. Реализация планировщика с тремя состояниями, где величина кванта зависит от приоритета процесса, приоритет можно повысить или понизить.
Например: Процесс блокируется по нажатию определенной клавиши.
(+ / -) – (увеличение / уменьшение) приоритета.
Пробуждение – по нажатию той же клавиши.
1.4. Общая схема работы
запуск планировщика
инициализация процессов и постановка их в очередь готовых к выполнению
выбор первого процесса из очереди готовых
обращение к контексту процесса и запуск процесса
при карусельной дисциплине в каждом элементарном цикле обработка счетчика тиков и проверка истечения кванта:
если квант закончился – передача управления планировщику, нет продолжение работы процесса
для прерванного процесса запоминается контекст, а процесс ставится в очередь готовых
если очередь не пуста – возврат на 3, иначе завершение программы
1.5. Требования к реализации (для всех вариантов)
три программных модуля + планировщик
наличие структуры, имитирующей БУП
обязательно инициализируемая в начале работы очередь готовых процессов
возможность изменения кванта
1.6. Требования к пояснительной записке:
Описание методов управления задачами в мультизадачной или мультипрограммной ОС, алгоритмы планирования и диспетчеризации процессов и задач
Постановка задачи
Обоснование выбора метода решения
Описание процессов, используемых в курсовой работе
Алгоритм и блок-схема работы Диспетчера задач
Описание структур, имитирующих БУП
Интерпретация результатов
Список используемой литературы
1.7. Дополнительные сведения и пример для программной реализации
В качестве рабочего процесса для реализации можно взять процесс, выводящий на экран элементы псевдографики в определенном порядке или бегущую текстовую строку. Вывод разных процессов должен отличаться друг от друга (цветом, размером, формой, расположением на экране, проч.), и каждый из процессов должен легко идентифицироваться визуально. Процессы должны работать достаточно долго для того, чтобы оценить их работу (~1-2мин), и заканчиваться в разное время.
Описание рабочих структур.
Наличие структуры, имитирующей блок управления процессом обязательно. Объединить всю информацию в одну структуру можно, но не желательно.
Дескриптор процесса должен состоять, по крайней мере, из идентификатора процесса, состояния процесса и ссылки на контекст. Причем под идентификатором понимается внутреннее (системное) имя процесса, нjне название программного модуля.
Очередь организуется как динамический список дескрипторов.
При переходе от одного состояния к другому состояние процесса должно изменяться планировщиком.
Запуск планировщика
Работа программы начинается с запуска планировщика. Рабочие процессы либо инициализируются самим планировщиком в заранее определенном порядке, либо запускаются извне пользователем, т.е. определен некий пользовательский интерфейс.
Инициализация процессов и постановка их в очередь готовых к выполнению
Порождение процесса планировщиком при инициализации обязательно. При этом планировщиком формируется идентификатор процесса, по которому планировщик опознает процесс. В контекст заносятся стартовые параметры процесса. Дескриптор процесса ставится в конец списка, имитирующего очередь готовых процессов.
Выбор первого процесса из очереди готовых
Выбирается первый элемент из списка готовых процессов. Выбранный процесс помечается как текущий (исполняющийся в данный момент).
Сдвиг очереди может осуществляться сразу, а может уже после того, как запущенный процесс вновь передает управление планировщику.
Обращение к контексту процесса и запуск процесса
Обнуление счетчика тиков, обращение к контексту по дескриптору выбранного процесса и передача управления процессу.
Обработка счетчика тиков и проверка истечения кванта
Для работы с квантом используются прерывания DOS.
Сохранение контекста прерванного процесса
Если процесс не завершил работу, состояние текущего процесса сохраняется в стеке соответствующего процесса, процесс добавляется в список готовых процессов.
Переход к следующему процессу
Если очередь готовых не пуста – возврат к 3 пункту, иначе завершение работы планировщика.