Skip to content
Sahithyan's S3
1
Sahithyan's S3 — Operating Systems

Design

Design of an OS depends on a lot of things, and a lot of variations exist. Some important design aspects are discussed below.

Factors affecting the design of OS:

Defines what needs to be done.

Defines how something is done at the low-level implementation.

Examples:

  • CPU Scheduling
    • Mechanism: The context-switch routine that saves/restores registers.
    • Policy: Which process to run next (FCFS, Round Robin, Priority).
  • Memory Management
    • Mechanism: Page table structures, page replacement hooks.
    • Policy: Which page replacement strategy (LRU, FIFO).
  • I/O
    • Mechanism: Device driver interface to queues requests.
    • Policy: Which request to serve first (SCAN, SSTF).-

Standalone computers, networked nowadays.

Smartphones/tablets with sensors and wireless networks.

Servers respond to client requests.

All nodes act as both client and server.

Computing delivered as services (SaaS, PaaS, IaaS). Uses virtualization heavily.

Perform tasks within strict timing constraints (automotive, medical).

Characteristics of an OS expected by a user.

Examples: easy to use, fast, safe.

Characteristics of an OS expected by its developers.

Examples: easy to design, maintain, reliable.

A system goal. Usually kernel is implemented using a language that is closer to the hardware. Examples: C and assembly. System programs are built using C, C++ or scripting languages.