Operating System Structures – Pedagogy Zone

Simple Structure

MS-DOS written to provide the most functionality in the least space, Operating System Structures.

  • Not divided into modules
  • Although MS-DOS has some structure, its interfaces and levels of functionality are not well separated

Layered Approach

The operating system is divided into a number of layers (levels), each built on top of lower layers. The bottom layer (layer 0), is the hardware; the highest (layer N) is the user interface.

With modularity, layers are selected such that each uses functions (operations) and services of only lower level layers

UNIX

UNIX – limited by hardware functionality, the original UNIX operating system had limited structuring. The UNIX OS consists of two separable parts

  • Systems programs
  • The kernel
  1. Consists of everything below the system call interface and above the physical hardware
  2. Provides the file system, CPU scheduling, memory management, and other operating system functions; a large number of functions for one level

Microkernel System Structure

Moves as much from the kernel into “user” space

  • Communication takes place between user modules using message passing
  • Benefits:
    • Easier to extend a microkernel
    • Easier to port the operating system to new architectures
    • More reliable (less code is running in kernel mode)
    • More secure
  • Detriments:
    • Performance overhead of user space to kernel space communication

Monolithic Kernels

  • Execute all of their code in the same address space (kernel space)
  • Rich and powerful hardware access

Disadvantages

  • The dependencies between system components
  • A bug in a driver might crash the entire system
  • Large kernels → very difficult to maintain

Microkernels

  • Run most of their services in user space
    • improve maintainability and modularity
    • A simple abstraction over the hardware
    • A set of primitives or system calls
      • Memory management
      • Multitasking
      • IPC

Disadvantages

  • #(system calls) ↑
  • #(context switches) ↑

Monolithic Kernels Versus Micro kernels

Most of the field proven reliable and secure computer systems use a more microkernel like approach

Micro kernels are often used in embedded robotic or medical computers where crash tolerance is important

Performances : Monolithic model is more efficient
IPC by: Shared kernel memory
instead of message passing
(Microkernel)

Modules

  • Most modern operating systems implement kernel modules
    • Uses object oriented approach
    • Each core component is separate
    • Each talks to the others over known interfaces
    • Each is loadable as needed within the kernel
  • Overall, similar to layers but with more flexible

Virtual Machines

  • A virtual machine takes the layered approach to its logical conclusion. It treats hardware and the operating system kernel as though they were all hardware
  • A virtual machine provides an interface identical to the underlying bare hardware
  • The operating system creates the illusion of multiple processes, each executing on its own processor with its own (virtual) memory

Virtual Machines (Cont.)

The resources of the physical computer are shared to create the virtual machines

  1. CPU scheduling can create the appearance that users have their own processor
  2. Spooling and a file system can provide virtual card readers and virtual line printers
  3. A normal user time sharing terminal serves as the virtual machine operator’s console
  4. The virtual machine concept provides complete protection of system resources since each virtual machine is isolated from all other virtual machines. This isolation, however, permits no direct sharing of resources.
  5. A virtual-machine system is a perfect vehicle for operating systems research and development. System development is done on the virtual machine, instead of on a physical machine and so does not disrupt normal system operation.
  6. The virtual machine concept is difficult to implement due to the effort required to provide an exact duplicate to the underlying machine

System Boot

  1. Operating system structures must be made available to hardware so hardware can start it
  2. Small piece of code bootstrap loader, locates the kernel, loads it into memory, and starts it
  3. Sometimes two-step process where boot block at fixed location loads bootstrap loader
  4. When power initialized on system, execution starts at a fixed memory location
  5. Firmware used to hold initial boot code
Read More Topics
Prescriptive process model
Application programming interface
Importance of C
Characteristics of Oop
IP over ATM

About the author

Santhakumar Raja

Hi, This blog is dedicated to students to stay update in the education industry. Motivates students to become better readers and writers.

View all posts

Leave a Reply