Operating System Design

Download Report

Transcript Operating System Design

Operating System Design - Part 1
Goals
what is OS design like?
• it‘s an engineering project rather than an exact science
have a clear vision of what you want and what you don‘t want in your OS
the four main items for a general-purpose OS are:
• define abstractions
• provide primitive operations
• ensure isolation
• manage the hardware
abstractions and primitives:
• use objects (data structures) which are manipulated by primitive operations
e. g. processes, files, mutexes etc.
Operating System Design - Part 2
Goals
isolation:
group resources together for protection purposes.
making sure each user can perform only authorized operations on
authorized data is a key goal of system design.
if some part of the OS goes down no other parts of the system should be affected.
manage the hardware:
provide a framework for allowing device drivers to manage devices.
should the OS also use this framework for chips like interrupt and bus controller?
conclusions:
the most important but also hardest task is the right abstraction.
task:
find all system calls and library functions for a given OS.
would you use the same system calls and library functions?
(think of completeness and efficiency)
would you use the same parameters?
(think of simplicity)
everything is an object!
Ideas - Part 1
make the complete I/O interface uniform
one communication object is inherited to all objects
 bind subsystems only through this communication object
objects must have the ability to declare itselves systemwide invalid
files are byte streams to the OS, but they give themselves special meanings,
since they are now objects with operations on them (consider a PDF document:
Acrobat is an interpreter for PDF operations  remote interpretation possible)
from exokernel design:
read/write system calls do compare/generate operations on every object’s checksum
 no reliable network protocols needed
client-server systems must have multiple servers transparent to the users
architectural coherence: LEGO is a very good example
provide a general and fast object for building linked lists and hash tables
Ideas - Part 2
the namespace itself is an object with its own primitives
Windows 2000 namespaces:
file system, registry and object name space
QNX namespaces:
the file system namespace includes the I/O device and object name space
use only messages for IPC
design every part of the OS separately:
 no mutexes, semaphores, etc.
• microkernel
• file system
• memory management
• input and output
• device drivers
define a systemwide transparent color which
• security
is recognized by every part of the GUI
• process and thread management
• manespaces
• HAL
 every part must be able to cope with multiprocessors