OPERATING SYSTEM STRUCTURE
An operating system facilitates application access to system hardware and software resources though device drivers. This can be via a defined set of interrupts. A more extensible approach is to use drivers with defined interfaces to the OS, many of which make use of the underlying interrupt architecture.
An Operating System as Interrupts
It is a simple matter to build a basic operating system for a microcontroller if it supports indexed (vectored) software interrupts. That is, when a software interrupt is asserted by software, or by hardware, an index is supplied that is automatically used to look up the address to vector to for the interrupt from within a lookup table of interrupt addresses. DOS is essentially such an operating system. For example MSDOS interrupt 23H is the Control-C handler.
An x86 operating system typically has two levels of interrupts. At one level are the hardware generated interrupts; at a higher level are the system level interrupts. The hardware generates a hardware interrupt to the system that must then map this to a system level interrupt. The processor orchestrates deciphering between interrupts that are daisy-chained together on the same interrupt, such as COM1 and COM3. The x86 systems typically have a Programmable Interrupt Controller (PIC)1 that takes a number of interrupts as input and outputs as one interrupt to the microprocessor. The processor can then send messages to the interrupts to see which one responds to being ...