It is too broad for SO
, I think and it is arch based.
I try to give you a brief overview, expecting some DV on it. ;)
Mainly, if the arch allow nested interrupts
, the interrupt with lower priority is interrupted while executing to jump to the ISR
of high level interrupt.
But you can have NMI
(Non Maskable Interrupt) that have priority on all other interrupts
and cannot be disable.
Usually (all I think) archs have also a global interrupt enable flag, so it must be enabled to allow other interrupts to be served. Also means that an ISR, when is executing, can disable other interrupts during its job.
You can think, for example, on an RTOS
implementation: the scheduler can be easily developed using a Timer within its interrupt. This interrupt must have the lower priority and mustn't stops other interrupts
(usually): this grant that interrupts
are served a soon as possible not considering context switch of RTOS
scheduler.