Jelajahi Sumber

Добавить 'Лекции/2.5.1200_Управление_режимом_потоков/Gurkin_czen.md'

u23-27gurkin 4 bulan lalu
induk
melakukan
867d57a78b

+ 109 - 0
Лекции/2.5.1200_Управление_режимом_потоков/Gurkin_czen.md

@@ -0,0 +1,109 @@
+# Сценарий интерактивной игры «Диспетчер потоков: управление режимами»
+
+## Общая концепция
+
+Игрок выступает в роли планировщика операционной системы. Его задача – настроить алгоритм диспетчеризации, добавить потоки и управлять их выполнением, правильно реагируя на прерывания. Игра демонстрирует принципы управления режимами потоков (пользовательский режим / режим ядра), переключение контекста и работу разных алгоритмов планирования.
+
+---
+
+## Сцена 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 логически связаны, но считаются разными этапами.
+- Все визуальные элементы должны соответствовать тёмной теме и иметь анимации (по ТЗ).