Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СОС ответы на билеты.doc
Скачиваний:
169
Добавлен:
18.09.2019
Размер:
677.89 Кб
Скачать
  1. Планирование и диспетчеризация потоков

Планирование и диспетчеризация потоков

Планирование - это работа по определению того, в какой момент прервать выполнение одного потока и какому потоку предоставить возможность выполняться Задачи планирования:

Определение момента времени для смены текущего активного потока

Выбор для выполнения потока из очереди готовых потоков

Диспетчеризация - это реализация решения, найденного в результате планирования Задачи диспетчеризации:

Сохранение контекста текущего потока

Загрузка контекста нового потока

Запуск нового потока на выполнение

Контекст потока можно разделить на общую часть для всех потоков данного процесса и часть, относящуюся только к данному потоку Иерархия контекстов ускоряет переключение потоков

  1. Алгоритмы планирования

Алгоритм планирования, основанный на квантовании.

В соответствии с алгоритмами, основанными на квантовании, смена активного процесса происходит, если:

роцесс завершился и покинул систему,

роизошла ошибка,

процесс перешел в состояние ОЖИДАНИЕ,

исчерпан квант процессорного времени, отведенный данному процессу.

Поток, который исчерпал свой квант, переводится в состояние готовности и ожидает, когда ему будет предоставлен новый квант процессорного времени, а на выполнение в соответствии с определенным правилом выбирается новый поток из очереди готовых.

Кванты, выделяемые потокам, могут быть одинаковыми для всех потоков или различными.

Алгоритмы планирования в интерактивных ОС:

интерактивные системы ориентированы на максимальное удобство пользователя. В этих системах невозможно трёхуровневое планирование, однако двухуровневое широкок используется.

Циклическое планирование

наиболее старый, простой и справедливый алгоритм. каждому процессу (предполагается, что процессы равнозначны) предоставляется промежуток времени работы процессора - квант времени. если к концу кванта процесс всё ещё работает, то этот процесс прерывается и процессор обрабатывает уже другой, следующий процесс. Если процесс прекращает работу раньше срока истечения кванат, то происходит перход управления в этот момент. Планировщик только поддерживает список процессов. Исчерпавшие лимит, обработанные процессы помещаются в коенц списка процессов. Вадный вопрос - длина кванат - при малой длине кваната высоки потери на переключение, при большой - заторможенность реакции на быстрые запросы. 20-50 мс- оптимальное значение кванта.

Приоритетное планирование

В основе - неравнозначность процессов. Каждому процессуприсваивается приоритет, передача управления - процессу с наивысшим приоритетом. Для предотвращения зацикливания и постоянной обрабокт процессов планировщик может уменьшать приоритеты процессов во время выполенния. Также имеется выделение квантов времени - определённых временныъх интервалов, по окончаниикоторого точно проихойдёт передача управления. система может динамически задавать приоритеты для достижения своих целей (поддрежка аппатарной части, требующих мгновенно квант процессорного времени и т.п.) Возможноа группировка процессов по приоритетам.

Гарантированное планирование

Если в системе одновременно работаю k пользователей, то одному будет предоставлено (1/k) процессорного времени, а в системе с одним пользователем запущено n процессов, то каждому процессу достнется (1/n) процессорного времени. система самас ледит за количестволм процессов и отследивает промежутки процессорного времени, выделяфемого каждому из процессов (или пользователей)

Лотерейное планирование

Достойная идея, но труднореализуемая. Система распределяет "лотерейные билеты" между процессами, и "выигрывший" процесс получает 20 мс процессорного времни. В этом принципе возможна приоритетность - раздача нескольких билетов "выжным" процессам. Притом каждый процессс получает ресурсов примерно равные проценту имеющихся у него лотерейных билетов. Процесссы могут передавать сови лотерейные билеты (клиент-сервер - клиент прервался, жёдт сервера, клиент отдаёт свои билеты серверному процессу). Данное планировае удобно при меняющихся неравнозначных по заруженности процессах. (Видеосервер с несколькими потоками разного битрейта, особенно переменного)

Справедливое планирование

Во внимание берётся тот, кто запускает процесс. Если один пользователь создал 9 процессов, а параллельный ему второй - 1, то при таком планировании система распределит время процессора между пользователями попаам, в то время как другие виды планирования отали большинство процессорного времние первому пользователю. Данное планирование отведёт ровно 50% процессорного времени одному из дву пользоватлей, независимо от того, как он будет использовать эти 50%.