Posted Jan 18, 2007 21:31 UTC (Thu) by seanyoung
Parent article: LCA: Andrew Tanenbaum on creating reliable systems
There is also the issue of interrupts. Disabling an interrupt is device-specific, so it cannot be handled in the micro kernel.
What would happen with a shared, level-triggered interrupt line? As I understand, each device driver process will be scheduled (eventually), possibly re-asserting the interrupt line before it is disabled.
Please correct me if I'm wrong, but with I/O ports, DMA and interrupts it seems the hardware is a bigger issue than the implementation.
Besides, the amount of context-switching is enormous. A simple read()
would context switch to kernel, vfs, kernel, fs, kernel, ide, kernel and all the way back.
to post comments)