Презентацию к данной лекции Вы можете скачать здесь.
Планирование и диспетчеризация процессора – одна из важнейших функций операционной системы. В лекции рассмотрены следующие вопросы:
Диспетчеризация процессора – распределение его времени между процессами в системе. Цель диспетчеризации – максимальная
Исполнение любого процесса можно рассматривать как цикл CPU / I-O –
Распределение периодов активности процессора ( .
(рис 11.1) Последовательность активных фаз процессора и фаз ввода-вывода.
На рис 11.2 изображена примерная гистограмма периодов активности процессора, основанная на анализе реального поведения процессов в операционных системах.
(рис 11.2) Гистограмма периодов активности процессора.
Из схемы видно, что чем короче период активности, тем выше частота таких периодов, и наоборот, т.е. частота периодов активности обратно пропорциональна их длительности.
Планировщик – компонента ОС, которая выбирает один из нескольких процессов, загруженных в память и готовых к выполнению, и выделяет процессор для одного из них.
Решения по диспетчеризации могут быть приняты в случаях, если процесс:
Диспетчеризация типов 1 и 4 обозначается термином диспетчеризация без прерывания процесса (non-preemptive).
Диспетчеризация типов 2 и 3 обозначается термином диспетчеризация с прерыванием процесса (preemptive).
Диспетчер процессора – компонента ОС, предоставляющая процессор тому процессу, который был выбран
Скрытая активность (латентность) диспетчера (dispatch latency) – время, требуемое для диспетчера, чтобы остановить один процесс и стартовать другой. Разумеется, система должна стремиться минимизировать это время, однако набор критериев диспетчеризации более сложен.
Имеется пять основных критериев диспетчеризации процессора, которые так или иначе должны учитываться системой.
Использование процессора (CPU utilization) – поддержание его в режиме
занятости максимально возможный период времени.
Пропускная способность системы (throughput) – (среднее) число процессов,
завершающих свое выполнение за единицу времени.
Время обработки процесса (turnaround time) – время, необходимое для
исполнения какого-либо процесса.
Время ожидания (waiting time) – время, которое процесс ждет в очереди
процессов, готовых к выполнению.
Время ответа (response time) – время, требуемое от момента первого
запроса до первого ответа (данный показатель, как мы обсуждали ранее в лекции 1,
наиболее важен для среды разделения времени).
Как и при любой оптимизации, независимо от стратегии, удовлетворить всем критериям одновременно невозможно. Далее рассмотрим различные стратегии диспетчеризации и проанализируем их достоинства и недостатки, с точки зрения достижения оптимальности указанных критериев.
Стратегия First-Come-First-Served (обслуживание в порядке поступления) – наиболее простая стратегия диспетчеризации, при которой ресурсы процессора предоставляются процессам в порядке их поступления (ввода) в систему, независимо от потребляемых ими ресурсов, в частности, от заявленного процессом времени, требуемого для его выполнения. При рассмотрении этой и других стратегий будем использовать диаграммы Ганта (Gantt charts изображающие имена процессов и временные диапазоны их выполнения, выраженные в некоторых единицах времени.
Рассмотрим следующий пример. Пусть процессы P1, P2 и P3 введены в систему в указанном порядке со следующими периодами активности:
| Процесс | Период активности |
| P1 | 24 |
| P2 | 3 |
| P3 | 3 |
Тогда при использовании стратегии
(рис 11.3) Схема диспетчеризации по стратегии FCFS (пример 1).
Таким образом, время ожидания для P1 = 0; P2= 24; P3 = 27.
Среднее время ожидания: (0 + 24 + 27)/3 = 17.
Если порядок процессов иной: P2 , P3 , P1 (последний введенный в систему процесс – самый долгий), то результат их диспетчеризации будет совершенно иным (рис 11.4).
(рис 11.4) Схема диспетчеризации по стратегии FCFS (пример 2).
Время ожидания процессов в данном случае: P1 = 6; P2 = 0; P3 = 3.
Среднее время ожидания: (6 + 0 + 3)/3 = 3
Данный результат много лучше, чем в предыдущем случае.
Эффект, продемонстрированный первым примером, носит название эффекта сопровождения (convoy effect) – увеличение среднего времени ожидания процессов в случаях, если короткий процесс обслуживается после долгого процесса.
Стратегия Shortest Job First (SJF, обслуживание самого короткого задания первым) – стратегия диспетчеризации процессора, при которой процессор предоставляется в первую очередь наиболее короткому процессу из имеющихся в системе.
В данном случае с каждым процессом связывается длина его очередного периода активности. Эта длина используется для того, чтобы первым обслужить самый короткий процесс .
Возможны две схемы применения данной стратегии:
Нетрудно видеть, что стратегия SJF оптимальна, в том смысле, что она обеспечивает минимальное среднее время ожидания для заданного набора процессов.
Рассмотрим пример применения стратегии SJF без прерывания процессов. Пусть набор процессов, времен их появления в системе и времен их активности следующие:
| Процесс | Время появления | Время активности |
| P1 | 0.0 | 7 |
| P2 | 2.0 | 4 |
| P3 | 4.0 | 1 |
| P4 | 5.0 | 4 |
Схема их диспетчеризации по стратегии SJF без прерывания процессов приведена на рис 11.5.
(рис 11.5) Схема диспетчеризации процессов по стратегии SJF без прерывания.
В данном случае среднее время ожидания = (0 + 6 + 3 + 7)/4 = 4.
Теперь применим к тем же процессам стратегию SJF с прерыванием и проанализируем, как изменится среднее время ожидания. Результат применения стратегии изображен на рис 11.6.
(рис 11.6) Схема диспетчеризации процессов по стратегии SJF с прерываниями.
В данном случае принцип прерывания процесса в момент поступления в систему более короткого процесса применяется несколько раз:
Из диаграммы видно, что, вследствие применения принципа прерывания процессов, периоды непрерывного выполнения процесса на процессоре могут быть не смежными и перемежаться с периодами выполнения других процессов.
В данном случае среднее время ожидания = (9 + 1 + 0 +2)/4 = 3, т.е. оно, как и следовало предполагать, оказалось меньше, чем без применения принципа прерывания процессов.
Попытаемся теперь предложить и применить формулы для предсказания следующего
периода
tn – фактическая длина n- го периода n- го периода Будем искать значение $$\tau _{n+1}$$ для предсказания следующего периода
tn и $$\tau _{n}$$:
$$\tau _{n+1} = \alpha t_{n} + (1 – \alpha ) \tau _{n}$$.
где $$\alpha$$ – число между 0 и 1. Коэффициент $$\alpha$$ характеризует, в какой
степени при предсказании учитывается недавняя история вычислений.
Пример предсказания следующего периода активности по приведенной формуле приведен на рис 11.7.
(рис 11.7) Пример предсказания следующего периода активности.
При $$\alpha =0 \tau _{n+1} = \tau _{n}$$, т.е. недавняя история не учитывается.
При $$\alpha =1 \tau _{n+1} = t_{n}$$ т.е. учитывается только фактическая длина последнего периода активности.
Если обобщить приведенную формулу, получим:
$$\tau _{n+1} = \alpha t_{n}+(1 - \alpha ) \alpha t^{n} -1 + … +(1 - \alpha )^{j} \alpha t_{n} -1 + … +(1 - \alpha )^{n+1} t_{n} \tau _{0}$$.
Поскольку $$\alpha$$ и $$(1 - \alpha )$$ не превосходят 1, каждый последующий
При данной стратегии с каждым процессом связывается его приоритет (целое число). Процессор выделяется процессу с наивысшим приоритетом (будем считать, что меньшее число означает более высокий
Данная стратегия, как и предыдущая, имеет варианты с прерыванием и без прерывания.
Более того, стратегию SJF можно рассматривать как диспетчеризацию по приоритетам, в которой приоритетом является очередное время активности.
При диспетчеризации по приоритетам возникает проблема "голодания" (starvation) - ситуации, когда процессы с низким приоритетом могут никогда не исполниться и бесконечно ждать.
Традиционным способом решение данной проблемы в операционных системах является учет возраста процесса ( aging ): c течением времени
Стратегия Round Robin (RR, круговая система) – это предоставление всем процессам по очереди одинаковых квантов времени. Название стратегии происходит от названия популярной в США карточной игры.
При данной стратегии каждый процесс получает небольшой квант процессорного времени, обычно – 10-100 миллисекунд. После того, как это время закончено, процесс прерывается и помещается в конец очереди готовых процессов.
Если всего имеется n процессов в очереди готовых к выполнению, и квант
времени равен q, то каждый процесс получает 1/ n процессорного
времени порциями самое большее по q единиц за один раз. Ни один процесс
не ждет больше, чем (n-1) q единиц времени.
Производительность данной стратегии зависит от коэффициента q:
q велико, то стратегия фактически эквивалентна стратегии q мало, то q должно быть большим, чем время контекстного переключения, иначе слишком велики окажутся накладные расходы на переключения с одного процесса на другой.Рассмотрим пример применения стратегии RR. Пусть в системе имеются следующие процессы со следующими временами активности:
| Процесc | Время активности |
| P1 | 53 |
| P2 | 17 |
| P3 | 68 |
| P4 | 24 |
Схема диспетчеризации процессора по стратегии RR с квантом времени .
(рис 11.8) Пример применения стратегии RR (q = 20).
Обычно стратегия RR имеет худшее время оборота, чем SJF (так как каждый процесс должен ждать до предоставления следующего кванта времени, пока кванты времени будут предоставлены всем другим процессам), но лучшее время ответа.
На рис 11.9 иллюстрируется зависимость числа контекстных переключений от кванта времени: чем меньше квант, тем больше число
(рис 11.9) Квант времени процессора и время переключения контекста.
На рис 11.10 приведен пример зависимости времени оборота от кванта времени. В данном случае зависимость носит более сложный характер.
(рис 11.10)
Поскольку процессы в системе могут иметь различную специфику (например, пакетные и интерактивные), на практике в операционных системах очередь готовых к выполнению процессов делится на две очереди:
Каждая очередь имеет свой собственный алгоритм диспетчеризации: основная –RR, фоновая –
При данной
На рис 11.11 приведен реалистичный пример структуры
(рис 11.11)
Для более гибкой диспетчеризации процессов в операционных системах организуются многоуровневые аналитические очереди (multi-level feedback queues),в которых обслуживаются процессы нескольких классов, причем каждый из классов имеет различные кванты времени. Самый быстрый (приоритетный) класс процессов получает минимальный квант. Если процесс не завершается за этот квант времени, ОС перемещает его в очередь процессов другого класса с большей величиной кванта, и т.д. Если процесс не завершается и за самый большой из выделяемых системой квантов времени, ОС перемещает его в класс пакетных процессов, обслуживаемых по стратегии
На рис 11.12 приведен пример организации многоуровневой аналитической очереди с квантами времени 8 (очередь Q0) и 16 (очередь Q1) и пакетными процессами по стратегии
(рис 11.12) Многоуровневая аналитическая очередь.
Планирование
Как уже отмечалось, системы реального времени делятся на два класса – hard real-time и soft real-time.В первом случае решение основной (критической) задачи требуется за фиксированный интервал времени ( response
time ), что и учитывается при планировании. Во втором случае требование более слабое: критические процессы,
решающие основную задачу системы, должны иметь более высокий приоритет, чем остальные процессы. На рис 11.13
иллюстрируются особенности диспетчеризации и
(рис 11.13) Латентность диспетчера в системах реального времени.
На рис 11.14 иллюстрируются принципы планирования в ОС Solaris. Система обслуживает несколько классов процессов, в порядке убывания приоритетов: реального времени, системные, интерактивные и с разделением времени. Более высокоприоритетные процессы планируются и диспетчеризуются первыми. Для каждого класса процессов имеется свой
(рис 11.14) Планирование в Solaris.
В таблица 1 изображены классы процессов и принципы распределения их приоритетов в Windows 2000. Классы процессов представлены столбцами таблицы, их приоритеты – строками. Рекомендуем обратить внимание, что даже простаивающий процесс реального времени имеет гораздо больший приоритет, чем простаивающие процессы других классов.
| реального времени | высокий | выше нормального | нормальный | ниже нормального | приоритет простаивающего процесса | |
|---|---|---|---|---|---|---|
| критический | 31 | 15 | 15 | 15 | 15 | 15 |
| наивысший | 26 | 15 | 12 | 10 | 8 | 6 |
| выше нормального | 25 | 14 | 11 | 9 | 7 | 5 |
| нормальный | 24 | 13 | 10 | 8 | 6 | 4 |
| ниже нормального | 23 | 12 | 9 | 7 | 5 | 3 |
| низший | 22 | 11 | 8 | 6 | 4 | 2 |
| простаивающий | 16 | 1 | 1 | 1 | 1 | 1 |
Возраст ( aging ) процесса – повышение операционной системой приоритета длительное время находящегося в системе процесса.
Время обработки процесса (turnaround time) – время, необходимое для исполнения какого-либо процесса.
Время ожидания (waiting time) – время, которое процесс ждет в очереди процессов, готовых к выполнению.
Время ответа (response time) – время, требуемое от момента запроса (команды) пользователя до первого ответа системы.
Голодание (starvation) - ситуация в системе, когда процессы с низким приоритетом длительное время ждут и не получают квантов времени процессора.
Диаграмма Ганта (Gantt chart) – схема в виде "временной линейки", изображающая имена процессов и временные диапазоны их выполнения, выраженные в некоторых единицах времени.
Диспетчеризация (процессора) – распределение времени процессора между процессами в системе путем поочередного выделения планировщиком операционной системы процессам квантов процессорного времени.
Диспетчеризация без прерывания процессов (non-preemptive) – стратегии диспетчеризации, не использующие прерывания работы процессов при поступлении в систему более коротких или более приоритетных.
Диспетчеризация с прерыванием процессов (preemptive) – стратегии диспетчеризации, использующие прерывания работы процессов при поступлении в систему более коротких или более приоритетных.
Использование процессора (CPU utilization) – поддержание его в режиме занятости максимально возможный период времени.
Многоуровневая очередь – совокупность
Планировщик (scheduler) – компонента ОС, которая выбирает один из нескольких процессов, загруженных в память и готовых к выполнению, и выделяет процессор для одного из них.
Пропускная способность системы (throughput) – (среднее) число процессов, завершающих свое выполнение за единицу времени.
Скрытая активность (латентность) диспетчера (dispatch latency) – время, требуемое для диспетчера, чтобы остановить один процесс и стартовать другой.
Стратегия First-Come-First-Served (обслуживание в порядке поступления) – стратегия диспетчеризации, при которой ресурсы процессора предоставляются процессам в порядке их поступления в систему, независимо от потребляемых ими ресурсов.
Стратегия Round Robin (RR, круговая система) – стратегия диспетчеризации, при которой всем процессам по очереди предоставляются одинаковые кванты времени.
Стратегия Shortest Job First (SJF, обслуживание самого короткого задания первым) – стратегия диспетчеризации процессора, при которой процессор предоставляется в первую очередь наиболее короткому процессу из имеющихся в системе.
Стратегия Shortest-Remaining-Time-First (SRTF, обслуживание процесса с минимальным оставшимся временем выполнения) - стратегия диспетчеризации процессора, при которой процессор предоставляется в первую очередь процессу с минимальным оставшимся временем выполнения.
Цикл CPU / I-O –
Диспетчеризация процессора – предоставление всем процессам в системе по очереди в определенном порядке квантов процессорного времени. Главной целью диспетчеризации является максимальная
Работа любого процесса в системе представляется как последовательность
Диспетчер – компонента ОС, выполняющая само переключение процессора с одного процесса на другой. Время, которое на это требуется, называется скрытой активностью (
Основные критерии диспетчеризации – использование процессора (максимизируется), пропускная способность системы (максимизируется), среднее время обработки одного процесса (минимизируется), среднее время ожидания одним процессом (минимизируется), среднее время ответа системы (минимизируется).
Для иллюстрации стратегий диспетчеризации используются
Стратегия диспетчеризации First-Come-First-Served (
Стратегия Shortest-
Метод экспоненциального усреднения позволяет вычислить предсказываемую длину следующего периода активности по фактическим и предсказанным длинам предыдущих периодов активности.
Диспетчеризация по приоритетам предоставляет первым ресурсы процессора более высокоприоритетному процессу. Чтобы избежать ситуации "голодания", ОС постепенно повышает
Стратегия
Число
Для обработки процессов различных классов и приоритетов (например, пакетных и интерактивных) ОС создает многоуровневые аналитические очереди процессов, каждая из которых обслуживается по различным стратегиям и (или) предоставляет процессам кванты времени различного размера. Процесс при необходимости может быть переведен из одной очереди в другую.
При планировании загрузки многопроцессорных систем учитывается их симметричность или асимметричность. Планирование их загрузки гораздо более сложно. В асимметричных системах не требуется синхронизировать процессы по системным структурам данных, так как они доступны процессу только на одном процессоре.
Для систем реального времени наиболее важным является предоставление наивысших приоритетов критическим процессам реального времени, решающим основную задачу системы.
В ОС Solaris и Windows 2000 выделяются процессы нескольких классов, для которых, соответственно, выделяются различные приоритеты. В системе Solaris для каждого класса процессов имеется свой
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.