What are some of the important do's and dont's inside a kernel mode and ISR Routine ? For example -
- Is context-switching disabled while running an interrupt handler ?
- Can a context switch happen when a process is inside a critical
section ? - What circumstances inside kernel mode merit disabling of further interrupts ?
How come a process switch can occur on a page-fault, where a process fetches data from the disk, but not happen during other occurences of interrupts. How do you classify if a executable path can be interrupted/rescheduled/pre-empted ?
What are the other things one has to remember when process is in kernel mode or handling ISR routine ?