Системы реального времени критичны ко времени, и эффективность их реализации важнее, чем в других системах. Эффективные системы реального времени можно разделить на циклы процессора, память или мощность. Это ограничение может повлиять на все, от выбора процессора до выбора языка программирования. Одно из основных преимуществ использования языка более высокого уровня — позволить программисту абстрагироваться от деталей реализации и сосредоточиться на решении проблемы. Это не всегда верно в мире встроенных систем. В некоторых языках более высокого уровня есть инструкции, которые на порядок медленнее, чем в языке ассемблера. Однако языки более высокого уровня можно эффективно использовать в системах реального времени, используя правильные методы. Мы будем обсуждать гораздо больше по этой теме в главе об оптимизации исходного кода.
Система работает в режиме реального времени до тех пор, пока она выполняет свои критические по времени процессы с приемлемой своевременностью. Приемлемая своевременность определяется как часть поведенческих или «нефункциональных» требований к системе. Эти требования должны быть объективно измеримыми и измеримыми (например, утверждение о том, что система должна быть «быстрой», не поддается количественной оценке). Система считается работающей в реальном времени, если она содержит некоторую модель управления ресурсами в реальном времени (эти ресурсы должны явно управляться для работы в реальном времени). Как упоминалось ранее, управление ресурсами может выполняться статически, в автономном режиме или динамически, в оперативном режиме.