# Сценарий интерактивной игры «Диспетчер потоков: управление режимами» ## Общая концепция Игрок выступает в роли планировщика операционной системы. Его задача – настроить алгоритм диспетчеризации, добавить потоки и управлять их выполнением, правильно реагируя на прерывания. Игра демонстрирует принципы управления режимами потоков (пользовательский режим / режим ядра), переключение контекста и работу разных алгоритмов планирования. --- ## Сцена 1. Старт и выбор алгоритма **Элементы сцены:** - Три кнопки: «Round Robin», «Приоритетное (с вытеснением)», «Выход». - Текстовое описание задания: «Выберите алгоритм планирования потоков». - Индикатор текущего времени (не влияет на механику, только атмосфера). **Действия игрока:** - Нажать на одну из кнопок выбора алгоритма. - При нажатии «Выход» игра закрывается. **Условия перехода к следующей сцене:** - Алгоритм выбран – игра переходит к Сцене 2 (добавление потоков). --- ## Сцена 2. Добавление потоков **Элементы сцены:** - Кнопка «+ Поток» – создаёт новый поток со случайными параметрами (ID, приоритет 1–5, остаток CPU burst 4–12). - Список (таблица) добавленных потоков с полями: ID, приоритет, остаток времени. - Кнопка «Запустить планирование» (изначально неактивна, активируется при добавлении не менее 3 потоков). - Кнопка «Назад» (возврат к выбору алгоритма). - Область сообщений: «Добавлен поток T1», «Добавлен поток T2» и т.д. **Действия игрока:** - Нажимать «+ Поток» до тех пор, пока не появится минимум 3 потока. - При желании добавить больше потоков (максимум не ограничен, но для интерфейса рекомендуется не более 8 для наглядности). - Нажать «Запустить планирование», когда готов. **Условия перехода к следующей сцене:** - Добавлено 3 или более потоков И нажата кнопка «Запустить планирование» – переход к Сцене 3 (диспетчеризация). --- ## Сцена 3. Диспетчеризация (основной игровой процесс) **Элементы сцены:** - Визуальная очередь готовых потоков – цветные прямоугольники с подписями «T[ID] (ост.X)». - Область активного потока – выделяется мигающим красным контуром. - Кнопка «Шаг (квант)» – выполняет один квант времени. - Счётчик шагов (сколько квантов уже выполнено). - Кнопка «Выход» (завершает игру). - Область сообщений (например, «Поток 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 логически связаны, но считаются разными этапами. - Все визуальные элементы должны соответствовать тёмной теме и иметь анимации (по ТЗ).