Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОС_лекции.doc
Скачиваний:
2
Добавлен:
15.04.2019
Размер:
370.69 Кб
Скачать

Планирование и диспетчеризация потоков(процессов)

Планирование решает 2 следующие задачи:

  1. определение момента переключения контекста

  2. определение претендента на следующее выполнение

Под задачей будем понимать поток или процесс.

Диспетчеризация реализует решение, принятое на этапе планирования и выполняет следующие действия:

  1. сохраняет контекст текущей задачи

  2. восстанавливает контекст следующей

  3. передает в процессор ??? задачи

Многозадачность может быть вытесняющей и невытесняющей.

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

В большинстве ОС планирование и диспетчеризация выполняются 1м модулем – планировщик(диспетчер). Алгоритмы планирования, т е выбора следующего претендента на выполнение отличаются в зависимости от типа системы:

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

Этот алгоритм хорош для критерия пропускной способности(максимум задач выполняемых в 1цу времени).

2. Для системы разделения времени - кратчайшая задача в 1ю очередь. Алгоритм предполагает, что с каждой задачей связана некоторая оценка времени ее выполнения. (рис)

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

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

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

Алгоритмы планирования для систем разделения:

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

  1. Циклическое планирование

Рисунок 2

При циклическом планировании все задачи в системе выстраиваются в очередь обычно в порядке своего поступления. Время центрального процессора выделяется квантами фиксированной длины. Сначала квант времени процессора получает 1я готовая задача из очереди, после того как выделенный ей план завершится, задача перемещается в конец очереди, а квант времени центрального процессора выделяет следующей готовой задаче из очереди. И т.д. Таким образом все задачи по кругу периодически получают время центрального процессора. Именно поэтому алгоритм называется циклическим. Поскольку размер кванта времени фиксирован, время ответа в этом методе пропорционально количеству выполняемых одновременно задач. Выбор размера кванта времени также представляет из себя не простую задачу. Большой квант времени увеличивает время ответа, с другой стороны – небольшой, слишком маленький квант времени приведёт к частому переключению задач, а переключение задач связано с восстановлением и сохранением процесса (контекста), на что также тратится время процессора. Поэтому если квант времени будет соизмерим со временем переключения контекста, то 50% ЦП тратится на переключение. Реально на практике в различных системах квант времени центрального процессора выбирают в размерах 30-70мл.сек.