Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

вопрос 24

.docx
Скачиваний:
2
Добавлен:
11.03.2016
Размер:
58.75 Кб
Скачать

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

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

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

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

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

Основные три системы:

  1. Системы пакетной обработки - могут использовать неприоритетный и приоритетный алгоритм (например:для расчетных программ).

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

  3. Системы реального времени - могут использовать неприоритетный и приоритетный алгоритм (например:система управления автомобилем).

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

  1. Для всех систем Справедливость - каждому процессу справедливую долю процессорного времени Контроль над выполнением принятой политики Баланс - поддержка занятости всех частей системы (например: чтобы были заняты процессор и устройства ввода/вывода)

  2. Системы пакетной обработки Пропускная способность - количество задач в час Оборотное время - минимизация времени на ожидание обслуживания и обработку задач. Использование процесса - чтобы процессор всегда был занят.

  3. Интерактивные системы Время отклика - быстрая реакция на запросы Соразмерность - выполнение ожиданий пользователя (например: пользователь не готов к долгой загрузке системы)

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

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

4.2.1 "Первый пришел - первым обслужен" (FIFO - First In Fist Out)

Процессы ставятся в очередь по мере поступления.

Преимущества:

  • Простата

  • Справедливость (как в очереди покупателей, кто последний пришел, тот оказался в конце очереди)

Недостатки:

  • Процесс, ограниченный возможностями процессора может затормозить более быстрые процессы,ограниченные устройствами ввода/вывода.

4.2.2 "Кратчайшая задача - первая"

 

Нижняя очередь выстроена с учетом этого алгоритма

 

Преимущества:

  • Уменьшение оборотного времени

  • Справедливость (как в очереди покупателей, кто без сдачи проходит в перед)

Недостатки:

  • Длинный процесс занявший процессор, не пустит более новые краткие процессы, которые пришли позже.

4.2.3 Наименьшее оставшееся время выполнение

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

 

4.2.4 Трехуровневое планирование

 

Трехуровневое планирование

 

 

Планировщик доступа выбирает задачи оптимальным образом (например: процессы, ограниченные процессором и вводом/выводом).

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

 

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

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

Самый простой алгоритм планирования и часто используемый.

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

 

Пример циклического планирования

 

Преимущества:

  • Простата

  • Справедливость (как в очереди покупателей, каждому только по килограмму)

Недостатки:

  • Если частые переключения (квант - 4мс, а время переключения равно 1мс), то происходит уменьшение производительности.

  • Если редкие переключения (квант - 100мс, а время переключения равно 1мс), то происходит увеличение времени ответа на запрос.

4.3.2 Приоритетное планирование

Каждому процессу присваивается приоритет, и управление передается процессу с самым высоким приоритетом.

Приоритет может быть динамический и статический.

Динамический приоритет может устанавливаться так:

П=1/Т, где Т- часть использованного в последний раз кванта

Если использовано 1/50 кванта, то приоритет 50.

Если использован весь квант, то приоритет 1.

Т.е. процессы, ограниченные вводом/вывода, будут иметь приоритет над процессами ограниченными процессором.

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

 

Вопрос 24 Планирование ОС реального времени.

Планирование в системах реального времени. В системах реального времени планирование имеет особое значение, поскольку время реакции на сигналы управляемого объекта не должно превышать заданное значение. Планирование облегчается тем, что в системах реального времени весь набор выполняемых задач известен заранее, часто также известно времени выполнения задач, моменты активизации и т. д. Эти данные могут быть использованы для создания статического расписания или для построения адекватного алгоритма динамического планирования. При разработке алгоритмов планирования учитывают, какие последствия возникают при несоблюдении временных ограничений. Если нарушение сроков выполнения задач не допустимо, то система реального времени считается жесткой (система управления ракетой или атомной электростанцией, система обработки цифрового сигнала при воспроизведении оптического диска). Если нарушения временного графика нежелательны, но допустимы, то система реального времени считается мягкой (система продажи билетов). Внешние события, на которые система должна реагировать, можно разделить на периодические (возникающие через регулярные интервалы времени) и непериодические (возникающие непредсказуемо). Для периодической задачи все будущие моменты запроса можно определить заранее путем прибавления к моменту начального запроса величины, кратной известному периоду. Возможно наличие нескольких периодических потоков событий, которые система должна обрабатывать. Все периодические задачи могут быть своевременно обработаны однопроцессорной системой только при выполнении условия: , где tобр i – время обработки i-го события процессором; Ti – период возникновения i-го события; m – число событий. Системы реального времени, удовлетворяющие этому условию, называются поддающимися планированию или планируемыми. Для таких систем может быть составлено статическое расписание выполнения задач. В жестких системах реального времени время завершения выполнения каждой из критических задач должно быть гарантировано для всех возможных сценариев работы системы. Это может быть достигнуто следующими путями: - исчерпывающее тестирование всех возможных сценариев поведения управляемого объекта и управляющих программ; - построением статического расписания (для планируемых задач); - выбором математически обоснованного динамического алгоритма планирования. Выполняемые задачи могут быть зависимыми и независимыми. Для независимых задач планирование производить проще. При большом числе независимых задач проще организовать их многопроцессорную обработку, чем организовывать мультипрограммное выполнение этих задач на одном компьютере, так как при этом значительно возрастает сложность программного обеспечения. Обычно одновременно выполняющиеся задачи являются зависимыми, поскольку должны обмениваться информацией и получать доступ к общим данным для достижения общей цели системы. Проблема планирования зависимых задач очень сложна, нахождение ее оптимального решения требует больших вычислительных ресурсов, сравнимых с теми, которые требуются для собственно выполнения задач управления. При планировании зависимых задач следует учитывать ограничения на синхронизацию и последовательность выполнения задач, обусловленные взаимными исключениями (запрет выполнения некоторых задач в течение определенных периодов времени). Классический динамический алгоритм для жестких систем реального времени с одним процессором использует вытесняющую многозадачность и основан на относительных статических (неизменяемых в течение жизни задачи) приоритетах. Суть алгоритма состоит в том, что всем задачам назначаются статические приоритеты в соответствии с величиной их периодов выполнения. Задача с самым коротким периодом получает наивысший приоритет, а задача с наибольшим периодом выполнения получает наименьший приоритет. При соблюдении всех ограничений этот алгоритм гарантирует выполнение временных ограничений для всех задач во всех ситуациях. Если же периоды повторения задач кратны периоду выполнения самой короткой задачи, то требование к максимальному коэффициенту загрузки процессора смягчается – он может доходить до 1. Существуют также алгоритмы с динамическим изменением приоритетов, которые назначаются в соответствии с такими текущими параметрами задачи как, например, конечный срок выполнения. При назначении задачи на выполнение в качестве очередной выбирается та задача, у которой текущее значение разницы между конечным сроком выполнения и временем, требуемым для ее непрерывного выполнения, является наименьшим. Моменты перепланировки. Для реализации алгоритма планирования ОС должна получать управление всякий раз, когда в системе происходит событие, требующее перераспределения процессорного времени. К таким событиям относятся: Прерывание от таймера, сигнализирующее, что время, отведенное активной задаче на выполнение, закончилось. Планировщик переводит задачу в состояние готовности и выполняет перепланирование. Активная задача выполнила системный вызов, связанный с запросом на ввод-вывод или на доступ к ресурсу, который в настоящий момент занят. Планировщик переводит задачу в состояние ожидания и выполняет перепланирование. Активная задача выполнила системный вызов, связанный с освобождением ресурса. Планировщик проверяет, не ожидает ли этот ресурс какая-либо задача. Если да, то эта задача переводится из состояния ожидания в состояние готовности. При этом, возможно, что задача, которая получила ресурс, имеет более высокий приоритет, чем текущая активная задача. После перепланирования более приоритетная задача получает доступ к процессору, вытесняя текущую задачу. Внешнее (аппаратное) прерывание, которое сигнализирует о завершении периферийным устройством операции ввода-вывода, переводит соответствующую задачу в очередь готовых, и выполняется планирование. Внутреннее прерывание сигнализирует об ошибке, которая произошла в результате выполнения активной задачи. Планировщик снимает задачу и выполняет перепланирование. При возникновении каждого из этих событий планировщик выполняет просмотр очередей и решает вопрос о том, какая задача будет выполняться следующей. Помимо указанных существует и ряд других событий (часто связанных с системными вызовами), требующих перепланировки. Например, запросы приложений и пользователей на создание новой задачи или повышение приоритета уже существующей задачи создают новую ситуацию, которая требует пересмотра очередей и, возможно, переключения процессора. 

Соседние файлы в предмете Операционные системы