
- •Понятия процесса и потока. Классификация процессов. Создание процессов и потоков. Планирование процессов и потоков. Типы планирования процессора. Тупики. Методы взаимодействия процессов
- •Понятия процесс и поток
- •Классификация процессов
- •Создание процессов и потоков
- •Создание процесса
- •Завершение процесса
- •Многократные операции над процессами
- •Переключение контекста процесса
- •Иерархия процессов
- •Состояние процессов
- •Планирование процессов и потоков
- •Диспетчеризация процессов. Стратегии диспетчеризации процессов
- •Планирование и диспетчеризация потоков
- •Состояния потока
- •Вытесняющие и не вытесняющие алгоритмы планирования
- •Алгоритмы планирования, основанные на квантовании
- •Алгоритмы планирования, основанные на приоритетах
- •Смешанные алгоритмы планирования
- •Планирование в системах реального времени
- •Моменты перепланировки
- •Типы планирования процессора
- •2. Предотвращение тупиков за счет нарушения условий их возникновения.
- •Методы взаимодействия процессов
- •Независимые и взаимодействующие процессы
- •Виды организации взаимосвязи процессов
- •Коммуникация процессов
- •Непосредственная коммуникация процессов
- •Косвенная коммуникация процессов
- •Клиент-серверная взаимосвязь
Смешанные алгоритмы планирования
Во многих операционных системах алгоритмы планирования построены с использованием, как концепции квантования, так и приоритетов. Например, в основе планирования лежит квантование, но величина кванта и/или порядок выбора потока из очереди готовых определяется приоритетами потоков. На выполнение выбирается готовый поток с наивысшим приоритетом. Ему выделяется квант времени. Если во время выполнения в очереди готовых потоков появляется поток с более высоким приоритетом, то он вытесняет выполняемый поток. Вытесненный поток возвращается в очередь готовых, причем он становится впереди всех остальных потоков имеющих такой же приоритет.
Каждый процесс в зависимости от задачи, которую он решает, относится к одному из трех определенных в системе приоритетных классов:
классу реального времени;
классу системных процессов;
классу процессов разделения времени.
Назначение и обработка приоритетов выполняются для разных классов по-разному. Процессы системного класса, зарезервированные для ядра, используют стратегию фиксированных приоритетов. Уровень приоритета процессу назначается ядром и никогда не изменяется.
Процессы реального времени также используют стратегию фиксированных приоритетов, но пользователь может их изменять. Так как при наличии готовых к выполнению процессов реального времени другие процессы не рассматриваются, то процессы реального времени надо тщательно проектировать, чтобы они не захватывали процессор на слишком долгое время. Характеристики планирования процессов реального времени включают две величины: уровень глобального приоритета и квант времени. Для каждого уровня приоритета по умолчанию имеется своя величина кванта времени. Процессу разрешается захватывать процессор на указанный квант времени, а по его истечении планировщик снимает процесс с выполнения.
Состав класса процессов разделения времени наиболее неопределенный и часто меняющийся в отличие от системных процессов и процессов реального времени. Для справедливого распределения времени процессора между процессами в этом классе используется стратегия динамических приоритетов. Величина приоритета, назначаемого процессам разделения времени, вычисляется пропорционально значениям двух составляющих: пользовательской части и системной части. Пользовательская часть приоритета может быть изменена администратором и владельцем процесса, но в последнем случае только в сторону его снижения.
Системная составляющая позволяет планировщику управлять процессами в зависимости от того, как долго они занимают процессор, не уходя в состояние ожидания. У тех процессов, которые потребляют большие периоды процессорного времени без ухода в состояние ожидания, приоритет снижается, а у тех процессов, которые часто уходят в состояние ожидания после короткого периода использования процессора, приоритет повышается.
Приоритеты могут изменяться планировщиком в следующих случаях:
если поток находится в ожидании процессорного времени дольше, чем это задано системной переменной максимального времени ожидания, то его уровень приоритета будет автоматически увеличен операционной системой. При этом результирующее значение приоритета не должно превышать нижней границы диапазона приоритетов критического класса;
если поток ушел на выполнение операции ввода-вывода, то после ее завершения он получит наивысшее значение приоритета своего класса;
приоритет потока автоматически повышается, когда он поступает на выполнение.