> In Linux, when a real time process is executing and an interrupt comes, will the RT process be preempted?

 

> Is RT process considered superior to interrupts?

 

Generally, interrupts always intercept processes as long as interrupts are enabled, but ...

 

> A missed IRQ is not considered fatal but where as missing the upper time limit for an RT process will be considered fatal. Hence I think, as a simple solution, the process should not be preempted.

> Is it the case?

 

… to deal with situations like this, two rather different approaches exist to mitigate the situation of missing deadlines on process level:

 

1)     RT-Preempt:
The RT-Preempt Patch makes Kernel Threads from ISRs that by default run at RT priority 50. Thus, only a minimal Kickoff ISR is needed to trigger the related thread, so that RT processes running at priorities bigger than 50 are only preempted for a minimal amount of time.

2)     Xenomai:
Xenomai features a Dual-Kernel approach (RT-Domain and Non-RT Domain), in which all interrupts are virtualized. Thus, RT processes (those running in the RT-Domain) are being executed with a higher priority than virtualized interrupts, more or less again imposing only a minimal amount of preemption delay due to some Kickoff ISR part.

 

However, there is no such mechanism available for vanilla kernels.