Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 700363.doc
Скачиваний:
16
Добавлен:
01.05.2022
Размер:
3.69 Mб
Скачать

2.4 Планирование загрузки процессоров в операционных системах реального времени – частотно-монотонное планирование

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

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

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

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

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

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

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

( 0 )

Величина , входящая в выражение (0), называется коэффициентом загрузки процессора со стороны -го процесса.

2.5 Планирование загрузки процессоров в многопроцессорных системах

Существует три основных способа организации системы управления процессорами в многопроцессорной операционной системе:

  • организация с главным процессором;

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

  • симметричная многопроцессорная организация (SMP).

Рассмотрим их более внимательно.

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

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

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

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

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

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