1
0

Gurkin_czen.md 8.7 KB

Сценарий интерактивной игры «Диспетчер потоков: управление режимами»

Общая концепция

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


Сцена 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 логически связаны, но считаются разными этапами.
  • Все визуальные элементы должны соответствовать тёмной теме и иметь анимации (по ТЗ).