3.4 System Structure



This section discussed different system structures and how each system components are interconnected with each other.

4.1 Simple structure

MS-DOS is an example of a simple structure system. Figure 3.6 shows the structure of MS-DOS which was not divided into modules carefully because the hardware has limited capabilities. The original UNIX operating system is another example of a simple system. It consists of two separable parts the kernel and the system programs as shown in Figure 3.7. The kernel consists of a series of interfaces and device drivers. The kernel provides the file system, CPU scheduling, memory management, and any system calls.

3.4 System Structure



MS-DOS layer structure. (Silberschatz et.al., (2008)


3.4 System Structure



UNIX system structure. (Silberschatz et.al., (2008)


3.4 System Structure



4.2 Layered approach

The operating system can be organized into Layers. The bottom layer (layer 0) is the hardware layer. The highest (layer M) is the user interface as shown in Figure 3.8. Higher-level layers can invoke routing in lower-level layers. The layers are designed such that each layer uses function in lower layers only. That makes the debugging and system verification simpler. Each layer hides the details of data structures, operations, and hardware from higher-level layers. The operating system designed has to appropriately defining the various layers so each layer can use only lower-level layers. Each call from a higher layer will propagate through lower layers. Each layer adds overhead to the system call to suite the parameters of each layer functions. As a result, a system call takes longer than does one on a nonlayered system.

3.4 System Structure



An operating system layer. (Silberschatz et.al., (2008)


3.4 System Structure



the OS/2 layer structure which is a descendant of MS-DOS that adds multitasking and dual-mode operation. OS/2 was implemented in a layered structure. A user cannot access low-level facilities. Thus the operating system has more control over the hardware.
OS/2 layer structure. (Silberschatz et.al., (2008)


3.4 System Structure



4.3 Microkernels

As the operating system kernel became large, the microkernel approach was proposed to modularize the kernel. In this approach, the nonessential components are removed from the kernel and are implemented as system and user-level programs. The microkernel provides the communication between the client program and the various services that are running in user space. The advantages of the microkernel approach are:
  1. The operating system can be extended easily because the new services are added to user space and no modifications are needed in the kernel.
  2. The microkernel is secure and reliable because services are running as user processes. If a service fails, the operating system remains untouched.
However, microkernel operating system can suffer from performance decreases because of increased system function overhead.

4.4 Modules

In modular kernel operating system, the object-oriented programming techniques are used to create a modular kernel. The kernel has a set of core components and modules that can be loaded dynamically. Figure 3.10 shows the structure of the Solaris operating system which consists of a core kernel with seven loadable kernel modules: scheduling classes, file systems, loadable system calls, executable formats, STREAMS modules, device and...

3.4 System Structure



...bus drivers and miscellaneous. This operating system approach makes the kernel to provide core services and any features can be implemented dynamically.
Figure 3.10: Solaris loadable modules. (Silberschatz et.al., (2009)).