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

Механизмы реального времени

1.3.1. Система приоритетов и алгоритмы диспетчеризации

Базовыми инструментами разработки сценария работы системы являются система приоритетов процессов (задач) и алгоритмы планирования (диспетчеризации) ОСРВ.

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

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

Рассмотрим их более подробно.

Модель цифровой управляющей системы.

При управлении, каким либо процессом ЭВМ должна решать совокупность задач. Программы П1…Пn хранятся в постоянной или оперативной памяти ЭВМ. Они инициируются в порядке, определяемом процессами, происходящими в управляемом объекте и в самой ЭВМ.

Причина инициирования программы называется заявкой. Заявки генерируются на объекте и поступают в ЭВМ периодически или в произвольные, случайные моменты времени. При этом за короткий отрезок времени может поступить несколько заявок Z1…Zn, для обслуживания которых должны быть выполнены соответствующие программы П1…Пn. При наличии одного процессора эти программы могут быть выполнены только последовательно, в связи, с чем возникают очереди на обслуживание.

Модель функционирования цус

Обработка заявок организуется по следующей схеме. (рисую)

Заявки Z1…Zn поступают в устройство организации прерываний. При появлении заявки Zi устройство прерывания инициирует в процессоре операцию прерывания, в результате выполнения которой процессор переключается на выполнение программы приема и постановки заявок в очередь, называемой ДИСПЕТЧЕР1. Это Д1на рисунке.

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

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

Процедура Диспетчирования реализуется программой ДИСПЕТЧЕР2 – Д2 на рисунке. Эта программа анализирует состояния очередей O1…On, выбирает заявку Zk, имеющую преимущественное право на обслуживание, и инициирует соответствующую прикладную программу Пк. Считается, что в момент окончания работы программы обслуженная заявка покидает систему.

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

Таким образом, обработка заявки проводится в два этапа:

На первом этапе заявка принимается Д1 в систему и ставится в очередь, где ожидает обслуживания.

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

Программы Д1 и Д2 управляют порядком обработки заявок и относятся к классу управляющих программ.

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

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

Функционирование ЦУС можно рассматривать как совокупность трех процессов:

  1. Поступление заявок на вход системы

  2. Диспетчерование

  3. Обслуживание заявок

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

  1. Запуск диспетчера 1. В функции диспетчера 1 входит определение типа заявки и поставление ее в очередь обслуживания (Oj) в зависимости от типа пришедшей заявки.

  2. Д1 передает управление Д2. Д2 в зависимости от типа диспечеризации выбирает наиболее приоритетную заявку из очереди и запускает приложение необходимое для обработки данной заявки