1. Создаете N потоков обработки прерываний с разными приоритетами,
каждое слушает семафор и пробегает по назначенным прерываниям.
После сброса флага прерывания - включает обработчик прерывания (но
только если это действительно надо) 2. Для прерывания делаете трамплин, который вырубает прерывание процессора и семафорит нужной группе приоритета
Кажется это так делается у взрослых RTOS старо-давних времен