The complexity of the kernel is thereby increased, creating a greater likelihood of encountering errors. While applications can't corrupt the kernel, any of these device drivers may - increasing the probability of fatal errors. Universal Process Model Universal process model architecture describes a set of characteristics that have traditionally been associated with microkernel operating systems. Under UPM architecture, a small set of core services reside in the kernel - such as interprocess communication and synchronization mechanisms. All the remaining code in the system runs in separate processes with memory address spaces that are protected from each other.
Message passing provides a software bus by which one process can request a service from another.
Conventional operating system services, including file systems, networking, and device drivers, are implemented as separate processes running in their own memory-protected address space. In the case of device drivers, interrupt service routines are limited to performing necessary housekeeping, then dispatching an asynchronous message to trigger the process implementing the appropriate device driver. Since message passing overhead is kept to a minimum, this can be competitive with the monolithic monitor approach, obviating the need to perform too much in interrupt service routines or move device drivers into the kernel to improve performance. Because device drivers are run as individual processes, they can also be started and stopped on the fly, or restarted in the event of a failure. QNX Software Systems Ltd. All other trademarks belong to their respective owners.