Планирование в системах реального времени
В системах реального времени главным критерием эффективности является обеспечение временных характеристик вычислительного процесса. Любая система реального времени должна реагировать на сигналы управляемого объекта в течение заданных временных ограничений. Задача облегчается тем, что в системе реального времени известен набор выполняемых задач, а также имеется информация о времени выполнения задач, моментах активации, о допустимых сроках ожидания ответа и т.д.
При разработке алгоритмов планирования в системах реального времени необходимо учитывать какие последствия в этих системах возникают при необеспечении временных ограничений.
В жестких системах реального времени время завершения выполнения каждой из критических задач должно быть гарантировано для всех возможных сценариев работы системы.
В мягких системах реального времени предполагается, что заданные временные ограничения могут наращиваться, поэтому здесь применяется менее затратные способы планирования.
Для реализации алгоритма планирования ОС должна получать управление всякий раз, когда в системе происходит событие, требующее перераспределения процессорного времени. К ним относятся:
1) прерывание от таймера, сигнализирующее, что время, отведенное активной задаче на выполнение, закончилось; планировщик переводит задачу в состояние готовности и выполняет перепланирование.
2) активная задача выполнила системный вызов, связанный с запросом на ввод/вывод и на доступ к ресурсу, который в настоящий момент занят; планировщик переводит задачу в состояние ожидания и выполняет перепланирование.
3) активная задача выполнила системный вызов, связанный с освобождением ресурса; планировщик проверяет не ожидает ли этот ресурс какая-либо задача, если да, то эта задача переводится из состояния ожидания в состояние готовности.
4) внешнее прерывание, которое сигнализирует о завершении периферийным устройством операции ввода/вывода; планировщик переводит соответствующую задачу в очередь готовых и выполняет перепланирование.
5) внутреннее прерывание сигнализирует об ошибке, которая произошла в результате выполнения активной задачи; планировщик снимает задачу и выполняет перепланирование.
При возникновении каждого из этих событий планировщик выполняет просмотр очередей и решает вопрос о том, какая задача будет выполнятся следующей.