12 ПЛАНИРОВАНИЕ ВЫПОЛНЕНИЯ ПРОЦЕССОВ И НИТЕЙ.pptx
- Количество слайдов: 29
ПЛАНИРОВАНИЕ ВЫПОЛНЕНИЯ ПРОЦЕССОВ И НИТЕЙ
ПЛАНИРОВАНИЕ ПРОЦЕССОВ ВОПРОС. Как определить какому процессу выделить процессорное время, если: • в системе появился новый процесс? • процесс завершился? • выполняющийся процесс перешёл в состояние «блокирован» ? • ресурсы, требуемые блокируемому процессу, стали доступны? • доступ к системе требуется одновременно нескольким пользователям? • и т. п. Ответив на этот вопрос будет определено правило планирование процессов. Планирование процессов – определение какому из имеющихся в системе процессов, находящихся в состоянии «готов» , предоставить необходимые ресурсы.
ПЛАНИРОВАНИЕ ПРОЦЕССОВ. УРОВНИ ПЛАНИРОВАНИЯ В зависимости от срока планирование делят на: • Долгосрочное (стратегическое); • Краткосрочное (оперативное).
Когда осуществляется краткосрочное планирование процессов? • Порождается новый процесс; • Один из процессов завершается; • Текущий процесс переходит в состояние «блокирован» ; • При появлении прерывания;
ПЛАНИРОВАНИЕ ПРОЦЕССОВ. СТРАТЕГИЯ ПЛАНИРОВАНИЯ Чтобы планировать надо определить цель функционирования ЭВМ. В системах пакетной обработки требуется: – Максимально загрузить процессор полезной работой. – Выполнить максимальное количество процессов в единицу времени; – Минимизировать время ожидания процессом выделения ему процессорного времени. В интерактивных системах требуется: – Организовать выполнение процессов таким образом, чтобы уменьшить время отклика каждого из них на запросы пользователей. – Максимально соответствовать пожеланиям пользователей. В системах реального времени требуется: – Выполнять процессы таким образом, чтобы каждый из них закончил свою работу к указанному сроку. – Реализовать требования к качеству обслуживания.
Стратегия планирования должна удовлетворять следующим требованиям: • справедливость – все процессы должны находиться в равных условиях; • эффективность – принятие решения при планировании должно осуществляться в кратчайшие сроки и с минимальными затратами ресурсов ЭВМ. • предсказуемость – поведение системы должно строго регламентировано; • масштабируемость – при изменении числа процессов система должна продолжать работать.
Исходя из возможность прерывания выполнения текущего процесса разделяют следующие типы планирования: • вытесняющее • НЕ вытесняющее.
• Полное и среднее время выполнения – сколько процессы находятся в системе; • Полное и среднее время ожидания – сколько процессы находятся в состоянии «готов» ; • Среднее время отклика – как быстро происходит переход из состояния «готов» в состояние «выполняется» .
ПЛАНИРОВАНИЕ ПРОЦЕССОВ. АЛГОРИТМ FCFS Суть алгоритма – первым будет выполняться процесс, который запущен первым. Вытеснение не предусмотрено. Достоинства – прост в реализации. Недостатки – применим только в пакетных системах, процессы могут длительное время находится в очереди. Среднее время ожидания – 2, 67 c. Среднее время ожидания – 1, 67 c. Среднее время выполнения – 4, 67 c. Среднее время выполнения – 3, 67 c.
ПЛАНИРОВАНИЕ ПРОЦЕССОВ. АЛГОРИТМ SJF Суть алгоритма – первым будет выполняться процесс, которому требуется наименьшее время. Достоинства – сокращает время выполнения процессов. Недостатки – необходимо четко указывать время необходимое процессам. Среднее время ожидания – 3. 25 c. Среднее время выполнения – 6, 5 c.
ПЛАНИРОВАНИЕ ПРОЦЕССОВ. АЛГОРИТМ SRT Суть алгоритма – первым будет выполняться процесс, которому требуется наименьшее время для его завершения. Достоинства – сокращает время выполнения процессов, вытесняющий. Недостатки – необходимо четко указывать время необходимое процессам, увеличивается время выполнения «длинных» процессов. Среднее время ожидания – 1, 5 c. Среднее время выполнения – 5 c.
ПЛАНИРОВАНИЕ ПРОЦЕССОВ. АЛГОРИТМ RR Суть алгоритма – процессы выполняются попеременно в течении заданного промежутка времени - кванта. Достоинства – возможно использовать в интерактивных системах. Недостатки – возникает проблема выбора кванта. Среднее время ожидания – 8, 25 c. Среднее время выполнения – 11, 5 c.
ПЛАНИРОВАНИЕ ПРОЦЕССОВ. АЛГОРИТМ RR Суть алгоритма – процессы выполняются попеременно в течении заданного промежутка времени - кванта. Достоинства – возможно использовать в интерактивных системах. Недостатки – возникает проблема выбора кванта. Квант времени выбран как 1 единица. Переключение занимает 0, 2 единицы. Значит накладные расходы составляют 20 %. Если выбрать квант времени 100 единиц, то накладные расходы составят всего 0, 2%. Но при наличии уже 3 пользователей, ответа от терминала придется ждать 300, 4 единицы.
ОС РЕАЛЬНОГО ВРЕМЕНИ. ПОНЯТИЕ ПЛАНИРУЕМОСТИ Системы реального времени делятся на: – – Жесткие, т. е. в которые указанное время ни в коем случае нельзя превышать. Иначе будет крах системы. Гибкие, т. е. в которых допустимы некоторые нарушения временного графика. – – Периодические, т. е. возникающие через регулярные интервалы времени. Случайные, т. е. возникающие непредсказуемо. Внешние события в таких системах можно разделить на: Системы реального времени называются поддающимися планированию, если выполняется условие: где m – число поступающих в систему событий, Ci – время, затрачиваемое на обработку i-го события, Pi – период.
ПЛАНИРОВАНИЕ В ОС РЕАЛЬНОГО ВРЕМЕНИ. АЛГОРИТМЫ EDF, RMS. Могут использоваться если: • Каждый периодический процесс должен быть завершен за период его выполнения. • Все процессы независимы. • Каждому процессу требуется одинаковое процессорное время на каждом интервале. • У непериодических процессов нет жестких сроков. • Прерывание процесса происходит мгновенно, без накладных расходов. Алгоритм планирования «пропорционально частоте» (Rate Monotonic Scheduling - RMS) Каждому процессу назначается фиксированный приоритет, равный частоте его запуска. Алгоритм планирования «процесс с ближайшим сроком завершения в первую очередь» (Earliest Deadline First – EDF) Каждый раз, когда процессу требуется процессорное время, он объявляет о своем присутствии и требуемом сроке завершения. Приоритет процессу назначается исходя и близости времени его завершения.
ПЛАНИРОВАНИЕ В ОС РЕАЛЬНОГО ВРЕМЕНИ. ПРИМЕР 1. Имеется три процесса: A, B, C. Процесс А запускается раз в 30 секунд и требует 10 секунд на каждом интервале. Процесс B запускается раз в 40 секунд и требует 15 секунд на каждом интервале. Процесс C запускается раз в 50 секунд и требует 5 секунд на каждом интервале. Оба алгоритма работают, но имеется простой системы (в 70 секунд).
ПЛАНИРОВАНИЕ В ОС РЕАЛЬНОГО ВРЕМЕНИ. ПРИМЕР 2. Имеется три процесса: A, B, C. Процесс А запускается раз в 30 секунд и требует 15 секунд на каждом интервале. Процесс B запускается раз в 40 секунд и требует 15 секунд на каждом интервале. Процесс C запускается раз в 50 секунд и требует 5 секунд на каждом интервале. Алгоритм RMS перестаёт работать (процесс C 3 не успевает выполниться до указанного срока).
ПРИОРИТЕТНОЕ ПЛАНИРОВАНИЕ. процессор процесс1 процесс2 процесс3 процесс4 процесс5 процесс6 Процессы выполняются по очереди (циклично или FCFS) Процесс переходит в состояние «БЛОКИРОВАН» Освобождаются необходимые ресурсы и процесс помещается в конец очереди. В чем проблема такой организации? - при освобождении ресурсов процесс долго не начнет их использовать - впереди в очереди может быть процесс, которому также нужны эти ресурсы.
ПРИОРИТЕТНОЕ ПЛАНИРОВАНИЕ. процессор процесс1 процесс2 0 0 процесс3 0 процесс4 процесс5 0 0 процесс6 0 1 Решение проблемы – назначение каждому процессу некоторого числа, определяющего приоритет. Процесс переходит в состояние «БЛОКИРОВАН» . Его приоритет увеличивается Освобождаются необходимые ресурсы, процесс переходит в состояние «ГОТОВ» . При этом он может быть: - помещён в начало очереди; - формировать ещё одну очередь, но с большим приоритетом. При создании процессу может быть задан высокий приоритет.
ПЛАНИРОВАНИЕ ПРОЦЕССОВ. ОСТАТОК КВАНТА Вопрос: Что делать с квантом, если процесс не использовал его до конца? Ответ1: В следующий раз дать процессу доработать свой квант. Ответ2: Выделить процессу целый квант. Ответ3: Добавить неиспользованное время к целому кванту. Вопрос: А что делать с приоритетом, если квант использован полностью? Ответ1: Ничего. Поместить процесс в конец очереди. Ответ2: Увеличить. Чтобы процесс быстрее завершился. Ответ3: Уменьшить. Сделать его фоновым.
ПЛАНИРОВАНИЕ ПРОЦЕССОВ. ИСТОРИЯ ЗАПУСКА Выделяемый квант может определяться следующим образом: T 2 = a. T 0 + (1 – a)T 1, T 0 – Базовый квант времени T 1 – Время, использованное процессом в последний раз ( T 1 <= T 0 ): a – коэффициент «старения» кванта.
ПРИОРИТЕТНОЕ ПЛАНИРОВАНИЕ. НЕСКОЛЬКО ОЧЕРЕДЕЙ. Очередь Квант 4 3 2 1 При создании процесс помещается в очередь с высоким приоритетом и ему выделяется определённый квант времени. Если процесс использовал свой квант полностью, то он перемещается в очередь с меньшим приоритетом и в следующий раз квант будет больше. Если процесс был прерван (не использовал свой квант), то он перемещается в очередь с большим приоритетом и в следующий раз ему выделяется квант, соответствующей очереди.
ПЛАНИРОВАНИЕ ПРОЦЕССОВ. ЛОТЕРЕЯ И СПРАВЕДЛИВОЕ ПЛАНИРОВАНИЕ. Лотерейное планирование. Лотерейный билет – целое число. Процесс может владеть одним или несколькими билетами. Планирование – случайно выбирается билет и назначается процесс, который им владеет. Справедливое планирование. Во внимание берётся владелец процесса. Планирование – сначала выбирается владелец, затем один из его процессов.
139 100 99 1 0 Планирование процессов в Linux. Приоритеты Пользовательские процессы. Приоритет задаётся при создании процесса. Может быть изменён утилитой nice (параметр – число из диапазона от 20 до -20, приоритета = 120 – параметр). Планирование – RR (с учётом типа процесса) Процессы реального времени. Приоритет задается вызовом функции sched_setscheduler(). Планирование: FCFS, RR
Планирование процессов в Linux. Динамический приоритет. У процессов реального времени приоритет изменяется только самим процессом. У обычных процессов имеется динамический приоритет: Бонус – «Поощрение» процесса за нахождение в состоянии сна (число из диапазона [0, 10]
Планирование процессов в Linux. Квант времени определяется базовым приоритетом:
ПЛАНИРОВАНИЕ ПРОЦЕССОВ. ПРИМЕР. WINDOWS Динамический уровни (1 -15) Уровни реального времени (16 -31) 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 Простаивающий 1 динамический 0 Реального времени 24 высокий Выше обычного 13 Обычный Ниже обычного 10 Простаивающий 8 6 4 Используется потоком обнуления страниц. Недоступен Win 32 приложениям
ПЛАНИРОВАНИЕ ПРОЦЕССОВ. ПРИМЕР. LINUX Процессы реального времени Выбирается процесс, имеющий наилучшее значение goodness и находящийся на вершине очереди. Пользовательские процессы 99 Применяются алгоритмы планирования –FIFO или RR goodness = 1000 + приоритет 2 1 0 Алгоритм планирования – RR на основе динамических приоритетов goodness = counter + базовый приоритет (nice) counter – изменяется во времени
Проблема инверсии приоритетов Планирование процессов в SMP системах Реентерабельные процедуры ядра


