[an error occurred while processing this directive]
|
Упростим ситуацию. Есть только две задачи: одна реал-тайм, другая - нереалтайм. Пусть реалтайм задача имеет больший приоритет. Теперь реальная ситуация: время работы реалтайм приложения не является фиксированным: в одно время она требует почти всех процессорных ресурсов, в другой период ей нужно лишь 50 процентов. Та же ситуация с нереалтайм задачей: иногда она почти ничего не делает, а иногда начинает кушать по максимуму (т.е. хочет всего оставшегося от реал-тайма времени). Тогда выделение одной задаче определенного количества квантов времени не подойдет (вот тут-то и встает вопрос об эффективности!). В самом деле, по-хорошему, я должен сделать так:
реалтайм задача ест столько, сколько ей нужно, а весь остаток передается нереалтайм задаче. Остальное время (если оно есть) система выполняет idle.
А описанный Вами принцип реализован, например, в такой операционной системе, как OSEK. Но OSEK именно по этой причине назвать полноценной операционкой реального времени нельзя.