In hardware and software interrupt flow how queue up is handled? more precisely I have following doubts
Lets take a scenario I have a machine with 2 CPUs. CPU1 is processing process P1 and CPU2 is processing process P2. Process P3 is waiting for execution. Now CPU1 got the hardware interrupt (I1). so, CPU1 context switched to interrupt service routine (ISR) for I1.
Note: we can ignore the bottom half of interrupt and consider all interrupt has only top half.
- Once interrupt handling for I1 completed. Is it guarantee that P1 will be scheduled again or Is there a chance for P3 to be scheduled?
- Will process P1 (It is removed from CPU1 due to hardware interrupt) occupy CPU2 if it is free?
- What will happen to second interrupt I2 if the interrupt handler of I1 is not masked any interrupt? If it will queue up who will remember that queue?
- What will happen to second interrupt I2 if the interrupt handler of I1 is masked all interrupt?