Сценарий интерактивной игры «Диспетчер потоков: управление режимами»
Общая концепция
Игрок выступает в роли планировщика операционной системы. Его задача – настроить алгоритм диспетчеризации, добавить потоки и управлять их выполнением, правильно реагируя на прерывания. Игра демонстрирует принципы управления режимами потоков (пользовательский режим / режим ядра), переключение контекста и работу разных алгоритмов планирования.
Сцена 1. Старт и выбор алгоритма
Элементы сцены:
- Три кнопки: «Round Robin», «Приоритетное (с вытеснением)», «Выход».
- Текстовое описание задания: «Выберите алгоритм планирования потоков».
- Индикатор текущего времени (не влияет на механику, только атмосфера).
Действия игрока:
- Нажать на одну из кнопок выбора алгоритма.
- При нажатии «Выход» игра закрывается.
Условия перехода к следующей сцене:
- Алгоритм выбран – игра переходит к Сцене 2 (добавление потоков).
Сцена 2. Добавление потоков
Элементы сцены:
- Кнопка «+ Поток» – создаёт новый поток со случайными параметрами (ID, приоритет 1–5, остаток CPU burst 4–12).
- Список (таблица) добавленных потоков с полями: ID, приоритет, остаток времени.
- Кнопка «Запустить планирование» (изначально неактивна, активируется при добавлении не менее 3 потоков).
- Кнопка «Назад» (возврат к выбору алгоритма).
- Область сообщений: «Добавлен поток T1», «Добавлен поток T2» и т.д.
Действия игрока:
- Нажимать «+ Поток» до тех пор, пока не появится минимум 3 потока.
- При желании добавить больше потоков (максимум не ограничен, но для интерфейса рекомендуется не более 8 для наглядности).
- Нажать «Запустить планирование», когда готов.
Условия перехода к следующей сцене:
- Добавлено 3 или более потоков И нажата кнопка «Запустить планирование» – переход к Сцене 3 (диспетчеризация).
Сцена 3. Диспетчеризация (основной игровой процесс)
Элементы сцены:
- Визуальная очередь готовых потоков – цветные прямоугольники с подписями «TID».
- Область активного потока – выделяется мигающим красным контуром.
- Кнопка «Шаг (квант)» – выполняет один квант времени.
- Счётчик шагов (сколько квантов уже выполнено).
- Кнопка «Выход» (завершает игру).
- Область сообщений (например, «Поток T2 выполнил квант, осталось 5 тактов»).
Действия игрока:
- Многократно нажимать «Шаг (квант)», наблюдая за изменением очереди и активного потока.
- Если выбран Round Robin: каждые 3 шага текущий поток уходит в конец очереди.
- Если выбрано приоритетное: при появлении потока с более высоким приоритетом (меньшее число) происходит вытеснение – текущий поток сохраняется, а новый становится активным.
Условия перехода к следующей сцене:
- Игрок выполнил не менее 4 шагов – появляется дополнительная кнопка «Прерывание!» (переход к Сцене 4 не автоматический, а по желанию игрока; при этом сама игра остаётся в Сцене 3, но прерывание становится доступным).
Особое условие: если все потоки завершились (остаток времени стал 0 у всех) – игра переходит к финальной Сцене 5 (статистика и завершение).
Сцена 4. Обработка прерывания (внутри Сцены 3)
Элементы сцены (появляются поверх Сцены 3 при нажатии кнопки «Прерывание!»):
- Всплывающее окно (диалог) с текстом: «Внешнее прерывание! Переход в режим ядра. Что делать?»
- Две кнопки: «Обработать немедленно» и «Отложить».
Действия игрока:
- Выбрать один из вариантов.
Результат выбора:
- «Обработать немедленно» – приоритет текущего потока повышается на 2 (число уменьшается, минимум 1). Выводится сообщение: «Прерывание обработано! Приоритет потока T[X] повышен».
- «Отложить» – прерывание игнорируется, но в статистике это будет отмечено как штраф (в финальной сцене снижается оценка).
Условие возврата к основной игре:
- После выбора всплывающее окно закрывается, игра возвращается к Сцене 3 (диспетчеризация). Счётчик прерываний увеличивается.
Сцена 5. Финальная статистика и завершение
Элементы сцены:
- Текстовый отчёт с параметрами:
- Выбранный алгоритм.
- Количество обработанных потоков.
- Общее количество шагов (квантов).
- Количество обработанных прерываний (и сколько из них – немедленно).
- Оценка эффективности (A, B, C, D, F) на основе среднего времени ожидания (упрощённо: если прерывания обрабатывались сразу – выше оценка).
- Кнопка «Сброс» – возвращает в Сцену 1 (выбор алгоритма).
- Кнопка «Выход» – закрывает приложение.
Действия игрока:
- Ознакомиться со статистикой.
- Нажать «Сброс» для новой игры или «Выход» для завершения.
Условие завершения игры:
- Нажата кнопка «Выход» – приложение закрывается.
Примечания к реализации
- Сцена 4 технически может быть реализована как модальное окно, не требующее отдельной сцены, но по условию задания «Сцена» – это этап игры, поэтому описан переход на отдельный экран обработки прерывания с возвратом.
- Минимальное количество сцен – 5 (сцены 1, 2, 3, 4, 5). Сцена 3 и сцена 4 логически связаны, но считаются разными этапами.
- Все визуальные элементы должны соответствовать тёмной теме и иметь анимации (по ТЗ).