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

Лекция №7. Планирование процессов. Алгоритмы синхронизации процессов.

Планирование процессов.

Система уп­равления процессами обеспечивает прохождение процесса через компьютер. В зависимости от состояния процесса ему должен быть предоставлен тот или иной ресурс. Например, новый процесс необ­ходимо разместить в основной памяти, следовательно, ему необхо­димо выделить часть адресного пространства. Процессу в состоянии готовый должно быть предоставлено процессорное время. Выполня­емый процесс может потребовать оборудование ввода-вывода и до­ступ к файлу.

Планирование процессов - распределение процессов между имеющимися ресурсами.

Планирование процессов включает в себя решение следующих задач:

  1. определение момента времени для смены выполняемого процесса;

  2. выбор процесса на выполнение из очереди готовых процессов;

  3. переключение контекстов "старого" и "нового" процессов.

Первые две задачи решаются программными средствами, а последняя в значительной степени аппаратно.

Эффективное планирование процессов является сложной проблемой, поскольку должно учитываться много противоречивых требований, таких как:

  • Справедливость;

  • Максимальная пропускная способность;

  • Приемлемое время ответа для максимального числа интерактивных пользователей;

  • Предсказуемость (задание должно выполняться примерно за одно время независимо от загрузки вычислительной системы);

  • Минимум накладных расходов на выполнение планирования;

  • Сбалансированность использования ресурсов;

  • Исключение бесконечного откладывания;

  • Учет приоритетов;

  • Отдавать предпочтение процессам, занимающим ключевые ресурсы;

  • Плавно деградировать при увеличении нагрузок.

Для того чтобы реализовать перечисленные требования, механизм планирования должен знать и учитывать следующие факторы:

  • Является ли процесс обменным (активно использующим операции ввода-вывода) или вычислительным (активно использующим процессор);

  • Является ли процесс пакетным или диалоговым;

  • Уровень реактивности интерактивного процесса;

  • Приоритетность процесса;

  • Частота прерываний по отсутствию нужной страницы;

  • Частота прерывания с низкого приоритета на высокий;

  • Длительность периода ожиданий ЦП;

  • Суммарное использование времени ЦП и оценочное время, необходимое для завершения.

Одним из методов планирования процессов, ориентированных на эффективную загрузку ресурсов, является метод очередей ресурсов. Новые процессы находятся во входной очереди, часто называемой очередью работ заданий (рис 8).

Долгосрочный

планировщик

Краткосрочный

планировщик

Рис 8. Метод очередей ресурсов.

1) Входная очередь: располагается во внешней памяти, во входной очереди процессы ожидают освобождения ресурса — адресного про­странства основной памяти, чтобы переместиться в основную память.

2) Очередь готовых процессов: ею связаны готовые к выполнению процессы (т.е. им выделилось адресное пространство основной памяти), они располагаются в основной па­мяти. Процессы в этой очере­ди ожидают освобождения ресурса - процессорное время.

3) Процесс в состоянии ожидания завершения операции ввода-вы­вода находится в одной из очередей к оборудованию ввода-вывода.

Программа, под управлением которой процесс мигрирует между различными очередями при прохождении через компьютер, назы­вается планировщик (scheduler).

Мультипрограммная операционная система обычно включает два планировщика — долгосрочный и краткосрочный. Например, в OS/360 долговременный планировщик назывался планировщиком заданий, а краткосрочный — супервизором задач.

На уровень долгосрочного планирования выносятся редкие сис­темные действия, требующие больших затрат системных ресурсов, на уровень краткосрочного планирования — частые и более корот­кие процессы. На каждом уровне существует свой объект и собст­венные средства управления им.

Основное отличие между долгосрочным и краткосрочным пла­нировщиками заключается в частоте запуска, например: кратко­срочный планировщик может запускаться каждые 100 мс, долго­срочный — один раз за несколько минут.

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

На уровне долгосрочного планирования объектом является не отдельный процесс, а некоторое объединение процессов по функ­циональному назначению, которое называется работой (приложени­ем).

Краткосрочный планировщик решает, какой из процессов, нахо­дящихся в очереди готовых процессов, должен быть передан на вы­полнение в ЦП.

На уровне краткосрочного планирования объектом управления являются процессы, которые выступают как потребители централь­ного процессора для внутренних процессов или внешнего процессо­ра для внешних процессов. Причинами порождения процесса могут быть процессы на том же уровне или сигналы, посылаемые от дол­госрочного планировщика.

Алгоритмы планирования процессов.

Существует множество различных алгоритмов планирования процессов, по-разному решающих вышеперечисленные задачи, преследующих различные цели и обеспечивающих различное качество мультипрограммирования.

Задачи алгоритмов планирования:

1) справедливость – каждому процессу справедливую долю процессорного времени;

2) контроль над выполнением принятой политики;

3) баланс – поддержка занятости всех частей системы (например, чтобы были заняты процессор и устройство ввода-вывода).

Среди всего множества алгоритмов рассмотрим подробнее две группы наиболее часто встречающихся алгоритмов: алгоритмы, основанные на квантовании, и алгоритмы, основанные на приоритетах.

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

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

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

  • процесс перешел в состояние Ожидание,

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

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

Кванты, выделяемые процессам, могут быть одинаковыми для всех процессов или различными. Кванты, выделяемые одному процессу, могут быть фиксированной величины или изменяться в разные периоды жизни процесса. Процессы, которые не полностью использовали выделенный им квант (например, из-за ухода на выполнение операций ввода-вывода), могут получить или не получить компенсацию в виде привилегий при последующем обслуживании. По разному может быть организована очередь готовых процессов: циклически, по правилу "первый пришел - первый обслужился" (FIFO) или по правилу "последний пришел - первый обслужился" (LIFO).

2. Другая группа алгоритмов использует понятие "приоритет" процесса

Приоритет - это число, характеризующее степень привилегированности процесса при использовании ресурсов вычислительной машины, в частности, процессорного времени: чем выше приоритет, тем выше привилегии.

Приоритет может выражаться целыми или дробными, положительным или отрицательным значением. Чем выше привилегии процесса, тем меньше времени он будет проводить в очередях. Приоритет может назначаться директивно администратором системы в зависимости от важности работы или внесенной платы, либо вычисляться самой ОС по определенным правилам, он может оставаться фиксированным на протяжении всей жизни процесса либо изменяться во времени в соответствии с некоторым законом (динамические).

Существует две разновидности приоритетных алгоритмов: алгоритмы, использующие относительные приоритеты, и алгоритмы, использующие абсолютные приоритеты.

В обоих случаях выбор процесса на выполнение из очереди готовых осуществляется одинаково: выбирается процесс, имеющий наивысший приоритет. По-разному решается проблема определения момента смены активного процесса. В системах с относительными приоритетами активный процесс выполняется до тех пор, пока он сам не покинет процессор, перейдя в состояние Ожидание (или же произойдет ошибка, или процесс завершится). В системах с абсолютными приоритетами выполнение активного процесса прерывается еще при одном условии: если в очереди готовых процессов появился процесс, приоритет которого выше приоритета активного процесса. В этом случае прерванный процесс переходит в состояние готовности. На рисунке 9 показаны графы состояний процесса для алгоритмов с относительными (а) и абсолютными (б) приоритетами.

Рис 9. Графы состояний процессов в системах (а) с относительными приоритетами; (б) с абсолютными приоритетами

Во многих операционных системах алгоритмы планирования построены с использованием, как квантования, так и приоритетов. Например, в основе планирования лежит квантование, но величина кванта и/или порядок выбора процесса из очереди готовых определяется приоритетами процессов.

Для установления значений приоритетов процессов используются следующие дисциплины планирования и их различные комбинации.

1. Планирование по сроку завершения, гарантирующее выполнение задания в назначенное время. Это сложная проблема в мультипрограммных системах, поскольку пользователь должен точно указать все требуемые ресурсы. Необходимо активное управление ресурсами, что связано с высокими накладными расходами. Недостаток: несправедливо к другим пользователям (протекционизм).

2. Планирование по принципу FIFO, где ЦП предоставляется процессам в порядке готовности, и они выполняются до завершения или блокировки. Это самая простая дисциплина планирования фактически без переключения ЦП. Формально - справедливый принцип, но фактически не справедлив, так как длинные задания заставляют ждать короткие. Менее важные - заставляют ждать более важные. Характеризуется небольшим колебанием времени выполнения и большей предсказуемостью, нежели другие дисциплины. Используется только в пакетных системах, не гарантирует реактивности системы и обычно в комбинации с другими дисциплинами.

3. Циклическое или круговое планирование, где каждому готовому процессу в цикле представляется квант времени. По истечении кванта времени процесс переходит в конец очереди готовых процессов. При блокировке квант теряется. Эффективно для СРВ, так как гарантирует приемлемое время ответа для всех интерактивных пользователей. Основная проблема выбора - оптимальный размер кванта. Стараются выбрать такой размер, чтобы большинство рядовых запросов обслуживались за один квант.

4. Планирование по принципу - "кратчайшее задание - первым" или "по наименьшему оставшемуся времени выполнения". Максимальный приоритет назначается процессу, либо заданию с минимальным оценочным временем до завершения. Недостаток: время ожидания на большие задания растет; большие издержки на регистрацию истекшего времени обслуживания. Достоинство: сокращение очередей заданий и ожидающих процессов; стремится к минимальному времени ожиданий для заданий.

5. Планирование по времени нахождения в системе, в которой приоритет есть функция времени обслуживания и времени ожидания.

Приоритет= (Тож + Тобсл)/Тобсл

Приоритет отдает меньшее предпочтение коротким заданиям и без предубеждения относится к длинным. Чем реже процесс получает ЦП, тем выше его приоритет. Задания с вводом/выводом повышают приоритет.

6. Сеть многоуровневых очередей с обратными связями (рисунок 8.3), которая имеет следующие достоинства:

- определяет характер процессов и разделяет на соответствующие категории;

- отдает предпочтение коротким процессам;

- отдает предпочтение обменным процессам с хорошим коэффициентом использования устройств ввода/вывода. Это наиболее совершенный и сложный механизм планирования.