Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Раздел 5. Операционные системы, среды и оболочк...docx
Скачиваний:
41
Добавлен:
23.09.2019
Размер:
416.36 Кб
Скачать

9. Планирование в однопроцессорных системах. Планирование в системах пакетной обработки, системах реального времени и интерактивных системах. Алгоритмы планирования. Планировщики.

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

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

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

  1. FIFO - очередь задач (First In, First Out)

  1. LIFO - очередь задач (стек) (Last In, First Out)

Варианты LIFO и FIFO иллюстрируют статическое планирование исполнения процессов в однопроцессорной системе под управлением операционной системы с монопольным доступом к процессору (операционная система без вытеснения процесса).

  1. Круговое обслуживание задач на базе FIFO очереди

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

Планирование в системах пакетной обработки данных

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

Планирование в интерактивных системах

"Циклическое планирование". Каждому процессу предоставляется некоторый интервал времени процессора - квант. Если к концу кванта времени процесс все еще работает, он прерывается, а управление передается другому процессу. Первоначальный процесс переносится в конец очереди. Значение кванта около 20-50 мс является оптимальным. В этом типе алгоритма есть важное допущение о том, что все процессы равнозначны. "Приоритетное планирование". Основная идея: каждому процессу присваивается приоритет, и управление передается готовому к работе процессу с самым высоким приоритетом. Чтобы предотвратить бесконечную работу процессов с высоки приоритетом, планировщик может уменьшит приоритет процесса с каждым тактом часов (то есть при каждом прерывании по таймеру). Если в результате приоритет текущего процесса окажется ниже, чем приоритет следующего процесса, произойдет переключение. Возможно предоставление каждому процессу максимального отрезка времени работы. Как только время кончилось, управление передается следующему по приоритету процессу.

Планирование в системах реального времени

В системах реального времени существенную роль играет время. Чаще всего одно или несколько внешних физических устройств генерирует входные сигналы, и компьютер должен адекватно на них реагировать в течение заданного промежутка времени. Например, компьютер в проигрывателе компакт-дисков получает биты от дисковода и должен за очень маленький промежуток времени конвертировать их в музыку. Если процесс конвертации будет слишком долгим, звук окажется искаженным. Подобные системы также используются для наблюдения за пациентами в палатах интенсивной терапии, в качестве автопилота самолета, для управления роботами на автоматизированном производстве. В любом из этих случаев запоздалая реакция ничуть не лучше, чем отсутствие реакции. Системы реального времени делятся на жесткие системы реального времени, что означает наличие жестких сроков для каждой задачи, и гибкие системы реального времени, в которых нарушения временного графика нежелательны, но допустимы. В обоих случаях реализуется разделение программы на несколько процессов, каждый из которых предсказуем. Эти процессы чаще всего бывают короткими и завершают свою работу в течении секунды. Когда появляется внешний сигнал, именно планировщик должен обеспечить соблюдение графика. Внешние события, на которые система должна реагировать можно разделить на периодические (возникающие через регулярные промежутки времени) и непериодические (возникающие непредсказуемо). Алгоритмы планирования для систем реального времени могут быть как статическими, так и динамическими. В первом случае все решения планирования принимаются заранее, еще до запуска системы. Во втором случае решения планирования принимаются по ходу дела. Статическое планирование допустимо только при наличии достоверной информации о работе, которую необходимо выполнить и о временном графике, которого нужно придерживаться. Динамическое планирование не нуждается в подобных ограничениях.

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

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

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

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

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

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

Алгоритм планирования с переключениями (приоритетный) - требует прерывание по аппаратному таймеру, процесс работает только отведенный период времени, после этого он приостанавливается по таймеру, чтобы передать управление планировщику.

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

Алгоритм, основанный на приоритетах

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

Алгоритмы планирования

Существует достаточно большой набор разнообразных алгоритмов планирования, которые предназначены для достижения различных целей и эффективны для разных классов задач: 1) First-Come, First-Served - первым пришел, первым обслужен. 2) Round Robin (RR) – это вид детской карусели, это модемфицированный вид FCFS. 3) Shortest Job First (SJF) - кратчайшая работа первой. Одним из наиболее ограниченных ресурсов вычислительной системы является процессорное время. Для его распределения между многочисленными процессами в системе приходится применять процедуру планирования процессов. По степени длительности влияния планирования на поведение вычислительной системы различают краткосрочное, среднесрочное и долгосрочное планирование процессов. Конкретные алгоритмы планирования процессов зависят от поставленных целей, класса решаемых задач и опираются на статические и динамические параметры процессов и компьютерных систем. Различают вытесняющий и невытесняющий режимы планирования. При невытесняющем планировании исполняющийся процесс уступает процессор другому процессу только по собственному желанию, при вытесняющем планировании исполняющийся процесс может быть вытеснен из состояния исполнения помимо своей воли. Простейшим алгоритмом планирования является невытесняющий алгоритм FCFS, который, однако, может существенно задерживать короткие процессы, не вовремя перешедшие в состояние готовность. В системах разделения времени широкое распространение получила вытесняющая версия этого алгоритма – RR. Среди всех невытесняющих алгоритмов оптимальным с точки зрения среднего времени ожидания процессов является алгоритм SJF. Алгоритмы планирования делятся на вытесняющие а невытесняющие.

Планировщик.