🖥️

Overview of Operating System Structures

Oct 13, 2024

Operating System Structures

Introduction

  • Discussing the structures of operating systems.
  • Previous discussion on multi-programming and multi-tasking systems.
  • Emphasis on the need for careful engineering of operating systems.
  • Overview of different structures used in operating system design.

Simple Structure

  • Early operating systems like MS-DOS.
  • Lack of defined structure; all layers access base hardware.
  • Vulnerability to crashes due to direct hardware access.
  • Example: Microsoft Disk Operating System (MS-DOS).
  • Simple structure leads to potential system crashes.
  • Limitations due to hardware like Intel 8088, which lacked hardware protection.

Monolithic Structure

  • Used by earlier Unix systems.
  • Contains a large kernel with many functionalities.
  • Structure: Kernel, Shells/Commands, System Libraries.
  • Difficult to implement and maintain due to complex single-level packing.
  • Challenges in adding or debugging functionalities.

Layered Structure

  • Operating system divided into layers.
  • Each layer has specific functionalities.
  • Easier to debug and maintain (focus on specific layers).
  • Challenges in design and efficiency.
    • Service requests pass through multiple layers, causing delays.
  • Protected hardware access.
  • Example of layering: Backing storage below memory management.

Microkernels

  • Reduces kernel size by removing non-essential components.
  • Core functionalities in the microkernel; others as system programs.
  • Communication through message passing.
  • Advantages: More functions in user mode; less risk of system crashes.
  • Disadvantages: Performance decrease due to system function overhead.

Modular Structure

  • Best current methodology using object-oriented programming.
  • Core kernel with dynamically loadable modules.
  • Resembles both layered and microkernel approaches.
  • More flexible: Any module can communicate with any other module directly.
  • Avoids overhead of message passing used in microkernels.

Summary

  • Structures: Simple, Monolithic, Layered, Microkernel, Modular.
  • Each has its own advantages and disadvantages.
  • Modular approach combines flexibility and efficiency, widely used in modern operating systems.