First page Back Continue Last page Summary Text
Hardware faults are emulated with Linux signals.
SIGSEGV is delivered whenever a process accesses invalid memory - this serves as the equivalent of a memory fault..
The clock is implemented with SIGALRM in the idle thread, and SIGVTALRM in all other processes. The difference is caused by the fact that the idle thread sleeps, so SIGVTALRM would never fire.
Device interrupts are implemented with SIGIO. All devices do their IO through file descriptors, which cause SIGIO whever IO becomes available.