Я читаю о RTOS, и есть концепция, касающаяся реализации планировщика, которую я не понимаю.
Одним из способов разработки задач программного обеспечения в реальном времени является разделение выполнения по временным интервалам. Это означает, что, если задача T
начинает выполняться, но не может завершить свою работу в течение определенного временного интервала, ОСРВ должна сохранить состояние T
, прервать его и повторно поставить в очередь для последующего выполнения.
Скажем, реализация задачи - это просто процедура, которую вызывает ОСРВ. Мой вопрос:
Как реализовать механизм прерывания? Я имею в виду, что если ОСРВ начнет выполнять пользовательскую процедуру, она не сможет проверить, является ли задача устаревшей, если процедура возвращается, и при необходимости она не сможет ее прервать, верно?
Насколько я понимаю, должен существовать механизм, с помощью которого ОСРВ может выполнять действия между выполнением инструкций каждой пользовательской задачи. Я полагаю, что это достигается через тиковое прерывание , означает ли это, что ОСРВ должна выполнять операции такого рода (перепланирование, прерывание задач, сохранение их состояния и т. Д.) При тиковом прерывании обработчик