
- •2. Процессы и потоки
- •2.5.3.4 Почтовые ящики
- •2 Процессы и потоки
- •2.1 Понятия процесс и поток
- •2.2 Создание процессов и потоков
- •2.3 Состояния потоков
- •2.4 Планирование процессов
- •2.4.1 Основные понятия планирования процессов
- •2.4.2 Алгоритмы планирования, основанные на квантовании
- •2.4.3 Алгоритмы планирования, основанные на приоритетах
- •2.4.4 Планирование в операционных системах пакетной обработки информации
- •2.4.4.1 Критерий эффективности
- •2.4.4.2 Алгоритмы планирования
- •2.4.5 Планирование в интерактивных системах (системах разделения времени)
- •2.4.5.1 Критерий эффективности
- •2.4.5.2 Алгоритмы планирования
- •2.4.6 Планирование в системах реального времени
- •2.5 Взаимодействие между процессами
- •2.5.1 Виды взаимодействий между процессами
- •2.5.2 Синхронизация процессов и потоков
- •2.5.2.1 Состязания (гонки)
- •2.5.2.1.1 Ситуация состязания
- •2.5.2.1.2 Критические секции
- •2.5.3.1.3 Способы реализации взаимного исключения
- •2.5.2.2.1 Ситуация взаимной блокировки
- •2.5.2.2.2 Моделирование взаимоблокировок
- •2.5.2.3 Методы борьбы с тупиками
- •2.5.2.3.2 Обнаружение и устранение взаимоблокировок
- •2.5.2.3.4 Обнаружение взаимоблокировки при наличии нескольких ресурсов каждого типа
- •2.5.2.3.5 Выход из взаимоблокировки
- •2.5.2.4 Динамическое избежание взаимоблокировок
- •2.5.2.4.1 Траектории ресурсов
- •2.5.2.4.2 Безопасные и небезопасные состояния
- •2.5.2.4.3 Алгоритм банкира для одного вида ресурсов
- •2.5.2.4.4 Алгоритм банкира для несколько видов ресурсов
- •2.5.2.6.1 Мьютексы
- •2.5.2.6.2 Системные семафоры
- •2.5.2.6.3 События
- •2.5.2.6.4 Ждущие таймеры
- •2.5.2.6.5 Сигналы
- •2.5.2.6.3 Мониторы Хоара
- •2.5.3.1 Конвейеры (каналы)
- •2.5.3.2 Очереди сообщений
- •2.5.3.3 Разделяемая память
- •2.5.3.4 Почтовые ящики
- •2.5.3.5 Сокеты
2.4.2 Алгоритмы планирования, основанные на квантовании
В основе многих вытесняющих алгоритмов планирования лежит концепция квантования. Квант – ограниченный непрерывный период процессорного времени. Потоки получают процессорное время квантами. Поток, который исчерпал свой квант, переводится в состояние готовности и ожидает, когда ему будет предоставлен новый квант, а на выполнение в соответствии с определенным правилом выбирается новый поток из очереди готовых.
Возможные переходы между состояниями:
1.
Потоку выделен квант процессорного
времени
2. Поток ожидает завершения ввода/вывода
3. Ввод/вывод завершен (событие произошло)
4. Поток исчерпал квант
К
Рис. 2.2 Граф
состояний потока в системе с квантованием
2.4.3 Алгоритмы планирования, основанные на приоритетах
Приоритет – это число, характеризующее степень привилегированности потока при использовании ресурсов ОС.
Фиксированный приоритет – приоритет потока назначается ОС при его создании и не изменяется во время существования потока.
Динамический
приоритет – приоритет может быть изменен
либо по инициативе самого потока, либо
по инициативе пользователя, либо ОС
изменяет приоритеты потоков, в зависимости
от ситуации, складывающейся в системе.
Существуют две разновидности приоритетного планирования:
-
Рис.
2.3 Граф состояний потока в системе с
относительными приоритетами
Возможные переходы между состояниями:
1. Выбор по приоритету
2.
Поток ожидает завершения ввода/вывода
3. Ввод/вывод завершен (событие произошло).
-
Рис.
2.4 Граф состояний потока в системе с
абсолютными приоритетами
Возможные переходы между состояниями:
1. Выбор по приоритету
2. Поток ожидает завершения ввода/вывода
3. Ввод/вывод завершен (событие произошло)
4. В очереди появился поток с более высоким приоритетом.