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

Дисциплины диспетчеризации и алгоритмы планирования процессов

Операционная система выполняет следующие основные функции, связан­ные с управлением задачами:

  1. создание и удаление задач;

  2. планирование процессов и диспетчирезация задач;

3) синхронизация задач, обеспечение их средствами коммуникации.

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

Создание и удаление задач осуществляется по соответствующим запросам от поль­зователей или от самих задач. Задача может породить новую задачу. При этом между процессами появляются «родственные» отношения. Порождающая задача называется «предком», «родителем», а порожденная «потомком» «сыном» или «дочерней задачей». «Предок» может приостановить или удалить свою дочер­нюю задачу, тогда как «потомок» не может управлять «предком».

Основным подходом к организации того или иного метода управления процесса­ми, обеспечивающего эффективную загрузку ресурсов или выполнение каких-либо иных целей, является организация очередей процессов и ресурсов. На распределение ресурсов влияют конкретные потребности тех за­дач, которые должны выполняться параллельно. Другими словами, можно столк­нуться с ситуациями, когда невозможно эффективно распределять ресурсы с тем, чтобы они не простаивали. Например, всем выполняющимся процессам требует­ся некоторое устройство с последовательным доступом. Но поскольку, как мы уже знаем» оно не может распределяться между параллельно выполняющимися процессами, то процессы вынуждены будут одень долго ждать своей очереди. Таким образом, недоступность одного ресурса может привести к тому, что дли­тельное время не будут использоваться и многие другие ресурсы. Если, же мы возьмем набор таких процессов, которые не будут конкурировать между собой за неразделяемые ресурсы при параллельном выполнении, то, ско­рее всего, процессы смогут выполниться быстрее (из-за отсутствия дополнительных ожиданий), да и имеющиеся в системе ресурсы будут использоваться более эффективно. Итак, возникает задача подбора такого множества процессов, что при выполнении они будут как можно реже конфликтовать из-за имеющихся в системе ресурсов. Такая задача называется планированием вычислительных про­цессов. Задачи динамического планирования стали называть диспетчеризацией. К сожалению, здесь наблюдается терминологическая несогласованность. Собственно мо­дули супервизора, отвечающие за диспетчеризацию задач, часто называют планировщи­ками (sheduler). Но фактически, говоря о тех же планировщиках памяти или о каких-нибудь других модулях, отвечающих за динамическое распределение ресурсов, имеют в виду, что эти планировщики осуществляют диспетчеризацию. Иногда диспет­черизацию называют краткосрочным планированием. Основное отличие между краткосрочными и долгосрочными планировщиками заключается в частоте запуска. В большинстве современных ОС долгосрочный планировщик отсутствует.

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

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

  1. по возможности заканчивать вычисления в том же порядке, в котором они были начаты;

  2. отдавать предпочтение более коротким процессам;

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

Пречень дисциплин диспетчеризации и их классификация приведены на рис.1.

Рис. 1. Дисциплины диспетчеризации.

Рассмотрим кратко основные дисциплины диспетчеризации.

Рис.2. Дисциплина диспетчеризации FCFS

Самой простой в реализации является дисциплина

FCFS (первым пришел – первым обслужен).

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

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

1. Вытесняющие алгоритмы – это такие способы планирования, в которых решения о переключении процессора принимаются ОС, а не активной задачей.

2. Невытесняющие алгоритмы – основаны на том, что активному потоку позволено выполняться до тех пор, пока он сам не отдаст управление ОС (не перейдёт в ожидание). Можно сказать, что рассмотренная дисциплина FCFS относиться к не вытесняющим.

Вытесняющий алгоритм, основанный на квантовании: в соответствии с этим алгоритмом каждому потоку предоставляется ограниченный непрерывный период процессорного времени – квант. Условия смены активного потока:

  1. Поток завершился или покинул систему;

  2. Произошла ошибка;

  3. Поток перешёл в состояние ожидания;

  4. Исчерпан квант процессорного времени.

Вытесняющий алгоритм, основанный на приоритетах.

Приоритет – число, характеризующее степень привилегированности потока. Приоритет процесса определяется ОС при его создании, а приоритет потока всегда определён приоритетом процесса. Различают динамические и фиксированные процессы установки приоритетов. Существует 2 разновидности приоритетного планирования: с относительными и с абсолютными приоритетами обслуживания. Они различаются моментом смены процессов.

Смешанные алгоритмы планирования.

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

  1. Получено прерывание от таймера, сигнализирующее, что время, отведённое данному процессу на выполнение, закончилось;

  2. Активный процесс выполнил системный запрос на доступ к ресурсу, который занят;

  3. Процесс выполнил запрос к освободившемуся ресурсу;

  4. Аппаратное прерывание, поступившее от периферийных устройств после завершения операции ввода-вывода, переводит процесс в состояние готовности;

  5. Внутреннее прерывание сигнализирует об ошибке, которая произошла в результате выполнения процесса.