Я изучаю ISR, но не могу найти, в чем разница между процедурой обслуживания прерываний RTOS и ОС общего назначения. Может ли кто-нибудь объяснить разницу между ними, если она есть?
Разница между ISR RTOS и ОС общего назначения
comment
Что вы подразумеваете под нормальной ОС?
- person kkrambo   schedule 30.03.2017
comment
@kkrambo, под обычной ОС я подразумеваю любую операционную систему, такую как Windows, Linux и т. Д.
- person Dinesh Maurya   schedule 30.03.2017
comment
@DineshMaurya: универсальная или настольная ОС, вероятно, является лучшим описанием, чем обычное.
- person Clifford   schedule 30.03.2017
comment
@Clifford, спасибо за ваше предложение. Изменено слово «нормальный» на «общего назначения», чтобы сделать его более понятным.
- person Dinesh Maurya   schedule 31.03.2017
Ответы (1)
В RTOS выход из контекста прерывания обычно приводит к запуску планировщика (в ISR будет эпилог прерывания, который делает это), чтобы определить готовую задачу с наивысшим приоритетом (которая могла измениться, если ISR сигнализирует о задаче каким-либо образом). С другой стороны, в GPOS (ОС общего назначения) переключение задач обычно выполняется на основе временных интервалов, поэтому планировщик запускается только по прерыванию часов ОС.
Другими словами, в GPOS по завершении ISR он обычно возвращается к той задаче, которая была прервана, в то время как в RTOS он оценивает расписание задачи и переключает контекст на задачу с наивысшим приоритетом в состоянии готов. штат.
person
Clifford
schedule
30.03.2017
Хм... есть ли у вас примеры GPOS, где "планировщик запускается только по прерыванию часов ОС"? Windows и Linux определенно не попадают в эту категорию.
- person ThingyWotsit; 31.03.2017
@Clifford, если я понимаю пункты из unix.stackexchange.com/questions/84107/ правильно, тогда планировщик должен вызываться при возврате из ISR даже в ОС общего назначения.
- person Dinesh Maurya; 31.03.2017
@DineshMaurya «ISR» (т.е. драйвер), у кода есть выбор. Он может выполнить нормальный возврат прерывания или запросить запуск по расписанию. Возможно, он заполнил только часть большого сетевого буфера и поэтому просто возвращается. Позже, в другом прерывании, когда поступило больше данных, он может сигнализировать семафор/событие/что угодно и (вызов/переход/установка/что угодно) запросить, чтобы ОС выполнила выполнение планирования при выходе из состояния прерывания, чтобы сделать поток, который ожидал данных, готовых/запущенных «немедленно». Нет необходимости или желания ждать какого-либо таймера - производительность была бы очень плохой, если бы это произошло.
- person ThingyWotsit; 31.03.2017
@DineshMaurya: ответ был общим; разные ОС могут отличаться. Дело в том, что в RTOS необходимо запустить планировщик для упреждающего планирования на основе приоритета в реальном времени. Политики планирования GPOS менее ограничены.
- person Clifford; 31.03.2017