[OS] Operating System Structure 2
Updated:
Operating System Structure Part 2
Operating System Structure
MS-DOS
- written to provide the most functionality in the least space
- not divided into modules
- its interfaces and levels of functionality are not well separated
- allow applications to access HW access
- no user- and kernel- mode separation
- Single-tasking, single memory space
- Shell (command interpreter) invoked when system booted
- Simple method to run program (loads program into memory, overwriting all include small part of CI)
- Program exit -> the remaining CI reloads shell from disk
Layered Approach
- The operating system is divided into a number of layers
- The bottom layer is the hardware, the highest layer is the user interace
- Layers are selected such that each layer uses functions (operations) and services of only lower-level layers
Traditional UNIX System Structure (Monolithic)
- consists of everything below the system call interface and above the physial hardware
- provides a large number of functions for one level
- file system, CPU scheduling, memory management, I/O, …
- Pros : Performance
- Cons
- Difficult to maintain and upgrade due to interdependencies in the code
- Security / reliability
- Any component of OS can ruin entire system
- Entire OS code runs in a single memory space
Microkernel System Structure
- moves out as much as possible from the kernel to user-space services
- communication takes place between user modules using message passing
- Pros
- Easier to extend (Modular structure, easy to add services)
- Easier to port
- More reliable, secure
- Cons
- Performance overhead of user space to kernel space communication
- Example
- The Mach
- L3 / L4
- seL4 (mathematically verfied software kernel)
Modern Operating System Structure
- Hybrid!!
- Pros of Monolithic + Pros of Microkernel
Leave a comment