Скачать презентацию ПЛАНИРОВАНИЕ ВЫПОЛНЕНИЯ ПРОЦЕССОВ И НИТЕЙ ПЛАНИРОВАНИЕ ПРОЦЕССОВ Скачать презентацию ПЛАНИРОВАНИЕ ВЫПОЛНЕНИЯ ПРОЦЕССОВ И НИТЕЙ ПЛАНИРОВАНИЕ ПРОЦЕССОВ

12 ПЛАНИРОВАНИЕ ВЫПОЛНЕНИЯ ПРОЦЕССОВ И НИТЕЙ.pptx

  • Количество слайдов: 29

ПЛАНИРОВАНИЕ ВЫПОЛНЕНИЯ ПРОЦЕССОВ И НИТЕЙ ПЛАНИРОВАНИЕ ВЫПОЛНЕНИЯ ПРОЦЕССОВ И НИТЕЙ

ПЛАНИРОВАНИЕ ПРОЦЕССОВ ВОПРОС. Как определить какому процессу выделить процессорное время, если: • в системе ПЛАНИРОВАНИЕ ПРОЦЕССОВ ВОПРОС. Как определить какому процессу выделить процессорное время, если: • в системе появился новый процесс? • процесс завершился? • выполняющийся процесс перешёл в состояние «блокирован» ? • ресурсы, требуемые блокируемому процессу, стали доступны? • доступ к системе требуется одновременно нескольким пользователям? • и т. п. Ответив на этот вопрос будет определено правило планирование процессов. Планирование процессов – определение какому из имеющихся в системе процессов, находящихся в состоянии «готов» , предоставить необходимые ресурсы.

ПЛАНИРОВАНИЕ ПРОЦЕССОВ. УРОВНИ ПЛАНИРОВАНИЯ В зависимости от срока планирование делят на: • Долгосрочное (стратегическое); ПЛАНИРОВАНИЕ ПРОЦЕССОВ. УРОВНИ ПЛАНИРОВАНИЯ В зависимости от срока планирование делят на: • Долгосрочное (стратегическое); • Краткосрочное (оперативное).

Когда осуществляется краткосрочное планирование процессов? • Порождается новый процесс; • Один из процессов завершается; Когда осуществляется краткосрочное планирование процессов? • Порождается новый процесс; • Один из процессов завершается; • Текущий процесс переходит в состояние «блокирован» ; • При появлении прерывания;

ПЛАНИРОВАНИЕ ПРОЦЕССОВ. СТРАТЕГИЯ ПЛАНИРОВАНИЯ Чтобы планировать надо определить цель функционирования ЭВМ. В системах пакетной ПЛАНИРОВАНИЕ ПРОЦЕССОВ. СТРАТЕГИЯ ПЛАНИРОВАНИЯ Чтобы планировать надо определить цель функционирования ЭВМ. В системах пакетной обработки требуется: – Максимально загрузить процессор полезной работой. – Выполнить максимальное количество процессов в единицу времени; – Минимизировать время ожидания процессом выделения ему процессорного времени. В интерактивных системах требуется: – Организовать выполнение процессов таким образом, чтобы уменьшить время отклика каждого из них на запросы пользователей. – Максимально соответствовать пожеланиям пользователей. В системах реального времени требуется: – Выполнять процессы таким образом, чтобы каждый из них закончил свою работу к указанному сроку. – Реализовать требования к качеству обслуживания.

Стратегия планирования должна удовлетворять следующим требованиям: • справедливость – все процессы должны находиться в Стратегия планирования должна удовлетворять следующим требованиям: • справедливость – все процессы должны находиться в равных условиях; • эффективность – принятие решения при планировании должно осуществляться в кратчайшие сроки и с минимальными затратами ресурсов ЭВМ. • предсказуемость – поведение системы должно строго регламентировано; • масштабируемость – при изменении числа процессов система должна продолжать работать.

Исходя из возможность прерывания выполнения текущего процесса разделяют следующие типы планирования: • вытесняющее • Исходя из возможность прерывания выполнения текущего процесса разделяют следующие типы планирования: • вытесняющее • НЕ вытесняющее.

 • Полное и среднее время выполнения – сколько процессы находятся в системе; • • Полное и среднее время выполнения – сколько процессы находятся в системе; • Полное и среднее время ожидания – сколько процессы находятся в состоянии «готов» ; • Среднее время отклика – как быстро происходит переход из состояния «готов» в состояние «выполняется» .

ПЛАНИРОВАНИЕ ПРОЦЕССОВ. АЛГОРИТМ FCFS Суть алгоритма – первым будет выполняться процесс, который запущен первым. ПЛАНИРОВАНИЕ ПРОЦЕССОВ. АЛГОРИТМ FCFS Суть алгоритма – первым будет выполняться процесс, который запущен первым. Вытеснение не предусмотрено. Достоинства – прост в реализации. Недостатки – применим только в пакетных системах, процессы могут длительное время находится в очереди. Среднее время ожидания – 2, 67 c. Среднее время ожидания – 1, 67 c. Среднее время выполнения – 4, 67 c. Среднее время выполнения – 3, 67 c.

ПЛАНИРОВАНИЕ ПРОЦЕССОВ. АЛГОРИТМ SJF Суть алгоритма – первым будет выполняться процесс, которому требуется наименьшее ПЛАНИРОВАНИЕ ПРОЦЕССОВ. АЛГОРИТМ SJF Суть алгоритма – первым будет выполняться процесс, которому требуется наименьшее время. Достоинства – сокращает время выполнения процессов. Недостатки – необходимо четко указывать время необходимое процессам. Среднее время ожидания – 3. 25 c. Среднее время выполнения – 6, 5 c.

ПЛАНИРОВАНИЕ ПРОЦЕССОВ. АЛГОРИТМ SRT Суть алгоритма – первым будет выполняться процесс, которому требуется наименьшее ПЛАНИРОВАНИЕ ПРОЦЕССОВ. АЛГОРИТМ SRT Суть алгоритма – первым будет выполняться процесс, которому требуется наименьшее время для его завершения. Достоинства – сокращает время выполнения процессов, вытесняющий. Недостатки – необходимо четко указывать время необходимое процессам, увеличивается время выполнения «длинных» процессов. Среднее время ожидания – 1, 5 c. Среднее время выполнения – 5 c.

ПЛАНИРОВАНИЕ ПРОЦЕССОВ. АЛГОРИТМ RR Суть алгоритма – процессы выполняются попеременно в течении заданного промежутка ПЛАНИРОВАНИЕ ПРОЦЕССОВ. АЛГОРИТМ RR Суть алгоритма – процессы выполняются попеременно в течении заданного промежутка времени - кванта. Достоинства – возможно использовать в интерактивных системах. Недостатки – возникает проблема выбора кванта. Среднее время ожидания – 8, 25 c. Среднее время выполнения – 11, 5 c.

ПЛАНИРОВАНИЕ ПРОЦЕССОВ. АЛГОРИТМ RR Суть алгоритма – процессы выполняются попеременно в течении заданного промежутка ПЛАНИРОВАНИЕ ПРОЦЕССОВ. АЛГОРИТМ RR Суть алгоритма – процессы выполняются попеременно в течении заданного промежутка времени - кванта. Достоинства – возможно использовать в интерактивных системах. Недостатки – возникает проблема выбора кванта. Квант времени выбран как 1 единица. Переключение занимает 0, 2 единицы. Значит накладные расходы составляют 20 %. Если выбрать квант времени 100 единиц, то накладные расходы составят всего 0, 2%. Но при наличии уже 3 пользователей, ответа от терминала придется ждать 300, 4 единицы.

ОС РЕАЛЬНОГО ВРЕМЕНИ. ПОНЯТИЕ ПЛАНИРУЕМОСТИ Системы реального времени делятся на: – – Жесткие, т. ОС РЕАЛЬНОГО ВРЕМЕНИ. ПОНЯТИЕ ПЛАНИРУЕМОСТИ Системы реального времени делятся на: – – Жесткие, т. е. в которые указанное время ни в коем случае нельзя превышать. Иначе будет крах системы. Гибкие, т. е. в которых допустимы некоторые нарушения временного графика. – – Периодические, т. е. возникающие через регулярные интервалы времени. Случайные, т. е. возникающие непредсказуемо. Внешние события в таких системах можно разделить на: Системы реального времени называются поддающимися планированию, если выполняется условие: где m – число поступающих в систему событий, Ci – время, затрачиваемое на обработку i-го события, Pi – период.

ПЛАНИРОВАНИЕ В ОС РЕАЛЬНОГО ВРЕМЕНИ. АЛГОРИТМЫ EDF, RMS. Могут использоваться если: • Каждый периодический ПЛАНИРОВАНИЕ В ОС РЕАЛЬНОГО ВРЕМЕНИ. АЛГОРИТМЫ EDF, RMS. Могут использоваться если: • Каждый периодический процесс должен быть завершен за период его выполнения. • Все процессы независимы. • Каждому процессу требуется одинаковое процессорное время на каждом интервале. • У непериодических процессов нет жестких сроков. • Прерывание процесса происходит мгновенно, без накладных расходов. Алгоритм планирования «пропорционально частоте» (Rate Monotonic Scheduling - RMS) Каждому процессу назначается фиксированный приоритет, равный частоте его запуска. Алгоритм планирования «процесс с ближайшим сроком завершения в первую очередь» (Earliest Deadline First – EDF) Каждый раз, когда процессу требуется процессорное время, он объявляет о своем присутствии и требуемом сроке завершения. Приоритет процессу назначается исходя и близости времени его завершения.

ПЛАНИРОВАНИЕ В ОС РЕАЛЬНОГО ВРЕМЕНИ. ПРИМЕР 1. Имеется три процесса: A, B, C. Процесс ПЛАНИРОВАНИЕ В ОС РЕАЛЬНОГО ВРЕМЕНИ. ПРИМЕР 1. Имеется три процесса: A, B, C. Процесс А запускается раз в 30 секунд и требует 10 секунд на каждом интервале. Процесс B запускается раз в 40 секунд и требует 15 секунд на каждом интервале. Процесс C запускается раз в 50 секунд и требует 5 секунд на каждом интервале. Оба алгоритма работают, но имеется простой системы (в 70 секунд).

ПЛАНИРОВАНИЕ В ОС РЕАЛЬНОГО ВРЕМЕНИ. ПРИМЕР 2. Имеется три процесса: A, B, C. Процесс ПЛАНИРОВАНИЕ В ОС РЕАЛЬНОГО ВРЕМЕНИ. ПРИМЕР 2. Имеется три процесса: A, B, C. Процесс А запускается раз в 30 секунд и требует 15 секунд на каждом интервале. Процесс B запускается раз в 40 секунд и требует 15 секунд на каждом интервале. Процесс C запускается раз в 50 секунд и требует 5 секунд на каждом интервале. Алгоритм RMS перестаёт работать (процесс C 3 не успевает выполниться до указанного срока).

ПРИОРИТЕТНОЕ ПЛАНИРОВАНИЕ. процессор процесс1 процесс2 процесс3 процесс4 процесс5 процесс6 Процессы выполняются по очереди (циклично ПРИОРИТЕТНОЕ ПЛАНИРОВАНИЕ. процессор процесс1 процесс2 процесс3 процесс4 процесс5 процесс6 Процессы выполняются по очереди (циклично или FCFS) Процесс переходит в состояние «БЛОКИРОВАН» Освобождаются необходимые ресурсы и процесс помещается в конец очереди. В чем проблема такой организации? - при освобождении ресурсов процесс долго не начнет их использовать - впереди в очереди может быть процесс, которому также нужны эти ресурсы.

ПРИОРИТЕТНОЕ ПЛАНИРОВАНИЕ. процессор процесс1 процесс2 0 0 процесс3 0 процесс4 процесс5 0 0 процесс6 ПРИОРИТЕТНОЕ ПЛАНИРОВАНИЕ. процессор процесс1 процесс2 0 0 процесс3 0 процесс4 процесс5 0 0 процесс6 0 1 Решение проблемы – назначение каждому процессу некоторого числа, определяющего приоритет. Процесс переходит в состояние «БЛОКИРОВАН» . Его приоритет увеличивается Освобождаются необходимые ресурсы, процесс переходит в состояние «ГОТОВ» . При этом он может быть: - помещён в начало очереди; - формировать ещё одну очередь, но с большим приоритетом. При создании процессу может быть задан высокий приоритет.

ПЛАНИРОВАНИЕ ПРОЦЕССОВ. ОСТАТОК КВАНТА Вопрос: Что делать с квантом, если процесс не использовал его ПЛАНИРОВАНИЕ ПРОЦЕССОВ. ОСТАТОК КВАНТА Вопрос: Что делать с квантом, если процесс не использовал его до конца? Ответ1: В следующий раз дать процессу доработать свой квант. Ответ2: Выделить процессу целый квант. Ответ3: Добавить неиспользованное время к целому кванту. Вопрос: А что делать с приоритетом, если квант использован полностью? Ответ1: Ничего. Поместить процесс в конец очереди. Ответ2: Увеличить. Чтобы процесс быстрее завершился. Ответ3: Уменьшить. Сделать его фоновым.

ПЛАНИРОВАНИЕ ПРОЦЕССОВ. ИСТОРИЯ ЗАПУСКА Выделяемый квант может определяться следующим образом: T 2 = a. ПЛАНИРОВАНИЕ ПРОЦЕССОВ. ИСТОРИЯ ЗАПУСКА Выделяемый квант может определяться следующим образом: T 2 = a. T 0 + (1 – a)T 1, T 0 – Базовый квант времени T 1 – Время, использованное процессом в последний раз ( T 1 <= T 0 ): a – коэффициент «старения» кванта.

ПРИОРИТЕТНОЕ ПЛАНИРОВАНИЕ. НЕСКОЛЬКО ОЧЕРЕДЕЙ. Очередь Квант 4 3 2 1 При создании процесс помещается ПРИОРИТЕТНОЕ ПЛАНИРОВАНИЕ. НЕСКОЛЬКО ОЧЕРЕДЕЙ. Очередь Квант 4 3 2 1 При создании процесс помещается в очередь с высоким приоритетом и ему выделяется определённый квант времени. Если процесс использовал свой квант полностью, то он перемещается в очередь с меньшим приоритетом и в следующий раз квант будет больше. Если процесс был прерван (не использовал свой квант), то он перемещается в очередь с большим приоритетом и в следующий раз ему выделяется квант, соответствующей очереди.

ПЛАНИРОВАНИЕ ПРОЦЕССОВ. ЛОТЕРЕЯ И СПРАВЕДЛИВОЕ ПЛАНИРОВАНИЕ. Лотерейное планирование. Лотерейный билет – целое число. Процесс ПЛАНИРОВАНИЕ ПРОЦЕССОВ. ЛОТЕРЕЯ И СПРАВЕДЛИВОЕ ПЛАНИРОВАНИЕ. Лотерейное планирование. Лотерейный билет – целое число. Процесс может владеть одним или несколькими билетами. Планирование – случайно выбирается билет и назначается процесс, который им владеет. Справедливое планирование. Во внимание берётся владелец процесса. Планирование – сначала выбирается владелец, затем один из его процессов.

139 100 99 1 0 Планирование процессов в Linux. Приоритеты Пользовательские процессы. Приоритет задаётся 139 100 99 1 0 Планирование процессов в Linux. Приоритеты Пользовательские процессы. Приоритет задаётся при создании процесса. Может быть изменён утилитой nice (параметр – число из диапазона от 20 до -20, приоритета = 120 – параметр). Планирование – RR (с учётом типа процесса) Процессы реального времени. Приоритет задается вызовом функции sched_setscheduler(). Планирование: FCFS, RR

Планирование процессов в Linux. Динамический приоритет. У процессов реального времени приоритет изменяется только самим Планирование процессов в Linux. Динамический приоритет. У процессов реального времени приоритет изменяется только самим процессом. У обычных процессов имеется динамический приоритет: Бонус – «Поощрение» процесса за нахождение в состоянии сна (число из диапазона [0, 10]

Планирование процессов в Linux. Квант времени определяется базовым приоритетом: Планирование процессов в Linux. Квант времени определяется базовым приоритетом:

ПЛАНИРОВАНИЕ ПРОЦЕССОВ. ПРИМЕР. WINDOWS Динамический уровни (1 -15) Уровни реального времени (16 -31) 31 ПЛАНИРОВАНИЕ ПРОЦЕССОВ. ПРИМЕР. 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 и ПЛАНИРОВАНИЕ ПРОЦЕССОВ. ПРИМЕР. LINUX Процессы реального времени Выбирается процесс, имеющий наилучшее значение goodness и находящийся на вершине очереди. Пользовательские процессы 99 Применяются алгоритмы планирования –FIFO или RR goodness = 1000 + приоритет 2 1 0 Алгоритм планирования – RR на основе динамических приоритетов goodness = counter + базовый приоритет (nice) counter – изменяется во времени

Проблема инверсии приоритетов Планирование процессов в SMP системах Реентерабельные процедуры ядра Проблема инверсии приоритетов Планирование процессов в SMP системах Реентерабельные процедуры ядра