Тема 5 Управление потоками
Взаимосвязь между заданиями, процессами и потоками Задание ОС Создать Инициировать ОС Процесс Выделить (ресурсы) Выбрать Создать Процесс Поток Инициировать Полоса активности объекта Планировщик ОС Завершить X Выделить (квант времени) Завершить X X Линия жизни объекта 2
Иерархическая структура обработки задания операционной системой Задание. Набор процессов с общими квотами и лимитами Задание (JOB) Процесс 1 Процесс 2 Процесс N Процесс. Контейнер для ресурсов и потоков Поток 1 Поток 2 Поток N Поток. Исполнение кода в процессе Волокно 1 Волокно 2 Волокно 3 Волокна (Fibers) Волокно. Облегченный поток, полностью управляемый в пространстве пользователя 3
Виды планирования Вид планирования Выполняемые функции Долгосрочное Решение о добавлении задания (процесса) в пул выполняемых в системе Среднесрочное Решение о добавлении процесса к числу процессов полностью или частично размещенных в основной памяти Краткосрочное Решение о том, какой из доступных процессов (потоков) будет выполняться процессором Планирование ввода-вывода Решение о том, какой из запросов процессов (потоков) на операцию ввода-вывода будет выполняться свободным устройством ввода -вывода 4
Системные приоритеты Планирование в Windows 31 30 16 15 Пользоват. приоритеты Очереди системных потоков и потоков псевдореального времени Наивысший 8 7 6 0 -1 Наинизший Наивысший Базовый приоритет Наивысший Повышенный Обычный Пониженный Наинизший П Р О Ц Е С С О Р Наинизший Поток обнуления страниц Пустой поток 5
Алгоритмы планирования потоков 1. Невытесняющие (non-preemptive) Ø планирование распределяется между ОС и прикладными программами; Ø необходимость частых передач управлений ОС, в противном случае возможна монополизация процессора приложением; Ø зависания приложений могут привести к краху системы 2. Вытесняющие (preemptive) Ø функции планирования сосредоточены в ОС; Ø планирование на основе квантования процессорного времени; Ø планирование на основе приоритетов потоков: статических, динамических, абсолютных, относительных, смешанных; Операционные системы 6
Типичный граф состояния потока Поток завершен или ошибка ВЫПОЛНЕНИЕ Поток выбран на выполнение Поток вытеснен (исчерпал квант) ГОТОВНОСТЬ Вновь созданный поток Поток ожидает завершения вводавывода или другого события ОЖИДАНИЕ Ввод-вывод завершен (событие произошло) 7