CSE325 Principles of Operating Systems
Operating System Structure
David Duggan
dduggan@sandia.gov
January 27, 2011
A View of Operating System Services
1/26/2011
CSE325 - OS Structure
Operating System Design and
Implementation
Affected by choice of hardware, type of system
User goals and System goals
User goals operating system should be convenient to use,
easy to learn, reliable, safe, secure, and fast
System goals operating system should be easy to design,
implement, and maintain, as well as flexible, reliable, errorfree, secure, and efficient
Important principle to separate
Policy: What will be done?
Mechanism: How to do it?
The separation of policy from mechanism is a very important
principle, it allows maximum flexibility if policy decisions are to
be changed later
1/26/2011
CSE325 - OS Structure
Operating Systems Structures
Structure/Organization/Layout of OSs:
1.
Monolithic (one unstructured program)
2.
Layered
3.
Microkernel
4.
Virtual Machines
The role of Virtualization
CSE325 - OS Structure
Monolithic Operating System
CSE325 - OS
1/26/2011
Structure
Monolithic OS Basic Structure
Application programs that invoke the requested
system services.
A set of system services that carry out the operating
system procedures/calls.
A set of utility procedures that help the system
services.
1/26/2011
CSE325 - OS Structure
MS-DOS System Structure
MS-DOS written to provide functionality in the
least space:
not divided into modules (monolithic).
Although MS-DOS has some structure, its interfaces
and levels of functionality are not well separated.
CSE325 - OS Structure
MS-DOS Layer Structure
1/26/2011
UNIX System Structure
UNIX limited by hardware functionality, the
original UNIX operating system had limited
structuring. The UNIX OS consists of two separable
parts
The kernel
Consists of everything below the system-call interface
and above the physical hardware
Provides the file system, CPU scheduling, memory
management, and other operating-system functions; a
large number of functions for one level
Systems programs
1/26/2011
CSE325 - OS Structure
Traditional UNIX System Structure
Traditional UNIX Kernel [Bach86]
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.
CSE325 - OS Structure
Layered Operating System
1/26/2011
13
Operating System Layers
CSE325 - OS
1/26/2011
Structure
14
Older Windows System Layers
15
Microkernel System Structure
Move as much functionality as possible from
the kernel into user space.
Only a few essential functions in the kernel:
primitive memory management (address space)
I/O and interrupt management
Inter-Process Communication (IPC)
basic scheduling
Other OS services are provided by processes
running in user mode (vertical servers):
device drivers, file system, virtual memory
1/26/2011
CSE325 - OS Structure
16
Layered vs. Microkernel Architecture
17
Microkernel System Structure
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
CSE325 - OS Structure
Microkernel Operating System
CSE325 - OS
1/26/2011
Structure
Benefits of a Microkernel Organization
Extensibility/Reliability
modular design
easier to extend a microkernel
more reliable (less code is running in kernel mode)
more secure (less code to be validated in kernel)
small microkernel can be rigorously tested.
Portability
changes needed to port the system to a new
processor is done in the microkernel, not in the
other services.
1/26/2011
CSE325 - OS Structure
20
Mach 3 Microkernel Structure
1/26/2011
CSE325 - OS Structure
21
Mac OS X Structure
1/26/2011
CSE325 - OS Structure
22
Windows NT Client-Server Structure
1/26/2011
CSE325 - OS Structure
23
Windows NT 4.0 Architecture
Structure of the MINIX 3 System
Kernel 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 more flexible
1/26/2011
CSE325 - OS Structure
26
Solaris Modular Approach
CSE325 - OS
1/26/2011
Structure
27
XP Architecture
Virtual Machines
A virtual machine takes the layered approach to its
logical next step. 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 host creates the illusion that a
process has its own processor (and virtual memory)
Each guest provided with a (virtual) copy of
underlying computer
1/26/2011
CSE325 - OS Structure
29
Virtual Machines (Cont.)
Non-virtual Machine
(a) Non-virtual machine
1/26/2011
Virtual Machine
(b) virtual machine
CSE325 - OS Structure
30
Testing a new Operating System
Integrating two Operating Systems
The Role of Virtualization
(a)
(b)
General organization between a program, interface, and
system.
General organization of virtualizing system A on top of
33
system B.
Java Virtual Machine
Compiled Java programs are platform-neutral bytecodes
executed by a Java Virtual Machine (JVM).
JVM consists of:
- class loader
- class verifier
- runtime interpreter
Just-In-Time (JIT) compilers increase performance.
CSE325 - OS Structure
The Java Virtual Machine
1/26/2011
35
Hypervisor/VMM
1/26/2011
CSE325 - OS Structure
36
Types of Hypervisors
(a) A type 1 hypervisor. (b) A type 2 hypervisor
1/26/2011
CSE325 - OS Structure
37
Para- vs. Full-virtualization
Presents guest with system similar but not
identical to hardware
Guest must be modified to run on
paravirtualized hardware
Guest can be an OS, or in the case of Solaris
10 applications running in containers
Full-virtualization: unmodified guest OSes
1/26/2011
CSE325 - OS Structure
38