3.6 System Design and Implementation



This section discusses the operating system design problems.

6.1 Design goals

The goals and specifications of the operating system depend on the system type. The requirements are divided into two categories (Silberschatz et.al., (2008)):
  1. User goals: These goals include being convenient to use, easy to learn and to use, reliable, safe, and fast.
  2. System goals: The system should be easy to design, implement, and maintain; it should be flexible, reliable, error free, and efficient.
6.2 Mechanisms and policies

Mechanisms determine how to do something while policies determine what will be done. One of operating system goals is to separate between mechanisms and polices. The best separation of mechanism and policy is in microkernel-based operating systems. The basic set of primitive building blocks represents the mechanisms which are policy free.

3.6 System Design and Implementation



6.3 Implementation

The first operating systems were implemented using assembly languages. Later, high-level programming languages were used. The high-level programming language can provide faster and more understandable codes. However, the operating systems based on a high-level language have a reduced speed and large storage requirements. After the operating system is implemented, it has to be monitored during the execution for debugging and to identify the execution bottleneck.

6.4 System generation

The system generation means the developed operating system can be configured according to any of a class of machines with a variety of peripheral configurations. The operating system configuration is performed according to the following parameters:
  1. CPU type
  2. Main memory available
  3. I/O devices available
  4. Operating-system options such as the type of CPU-scheduling algorithm, the maximum number of processes to be supported, and so on.