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.