0% found this document useful (0 votes)
194 views

Structure of Operating Systems

The document discusses different operating system structures including monolithic, layered, microkernel, and virtual machine-based structures. It provides examples of how different operating systems like MS-DOS, UNIX, Linux, and Windows implement these structures. It also describes the benefits of microkernel-based systems and how virtual machines can be used to virtualize operating systems and hardware resources.

Uploaded by

Paolo Legaspi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
194 views

Structure of Operating Systems

The document discusses different operating system structures including monolithic, layered, microkernel, and virtual machine-based structures. It provides examples of how different operating systems like MS-DOS, UNIX, Linux, and Windows implement these structures. It also describes the benefits of microkernel-based systems and how virtual machines can be used to virtualize operating systems and hardware resources.

Uploaded by

Paolo Legaspi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 56

Operating Systems

Structure of
Operating Systems
Operating Systems Structures

• Structure/Organization/Layout of OSs:
1. Monolithic (one unstructured program)
2. Layered
3. Microkernel
4. Virtual Machines
• The role of
Virtualization

2
Monolithic Operating System

3 A. Frank - P. Weisberg
Monolithic OS – basic structure

• Application programs that invokes 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.

4
MS-DOS System Structure
• MS-DOS – written to provide the most
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.

5 A. Frank - P. Weisberg
MS-DOS Layer Structure

6 A. Frank - P. Weisberg
UNIX System Structure
• UNIX – limited by hardware functionality, the
original UNIX OS had limited structuring.
• The UNIX OS consists of two separable parts:
1. Systems Programs:
2. 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.
7
Traditional UNIX System Structure

8 A. Frank - P. Weisberg
Traditional UNIX Kernel

9 A. Frank - P. Weisberg
LINUX Kernel Components

10 A. Frank - P. Weisberg
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.

11
Layered Operating System

12
An Operating System Layer

13 A. Frank - P. Weisberg
General OS Layers

14
Operating System Layers

15 A. Frank - P. Weisberg
Structure of the THE operating system

16 A. Frank - P. Weisberg
Older Windows System Layers

17
OS/2 Layer Structure

18 A. Frank - P. Weisberg
Microkernel System Structure (1)
• 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…
19
Layered vs. Microkernel Architecture

20 A. Frank - P. Weisberg
Microkernel System Structure (2)
• Communication takes place between user
modules using message passing.
• More flexibility, extensibility, portability and
reliability.
• But performance overhead caused by replacing
service calls with message exchanges between
processes.

21 A. Frank - P. Weisberg
Microkernel Operating System

22 A. Frank - P. Weisberg
Benefits of a Microkernel Organization (1)

• Extensibility/Reliability
– 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
– 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
23 other services.
Benefits of Microkernel Organization (2)

• Distributed system support


– message are sent without knowing what
the target machine is.
• Object-oriented operating system
– components are objects with clearly
defined interfaces that can be
interconnected to form software.
24
Mach 3 Microkernel Structure

25
Mac OS X Structure

26 A. Frank - P. Weisberg
Structure of the MINIX 3 system

27 A. Frank - P. Weisberg
Windows NT Client-Server Structure

28 A. Frank - P. Weisberg
Windows NT 4.0 Architecture

29
Windows XP Architecture

30 A. Frank - P. Weisberg
Windows 7.0 Architecture

31 A. Frank - P. Weisberg
The Neutrino Microkernel

32
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 with more
flexibility.

33
Solaris Modular Approach

34 A. Frank - P. Weisberg
Virtual Machines (1)

• A Virtual Machine (VM) takes the layered and


microkernel 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 host creates the illusion that a
process has its own processor and (virtual memory).
• Each guest provided with a (virtual) copy of
underlying computer.
35
Virtual Machines (2)

• The resources of the physical computer are


shared to create the virtual machines:
– CPU scheduling can create the appearance that
users have their own processor.
– Spooling and a file system can provide virtual card
readers and virtual line printers.
– A normal user time-sharing terminal serves as the
virtual machine operator’s console.

36
VM Implementation on Bare Machine

Non-virtual Machine Virtual Machine

37 A. Frank - P. Weisberg
VM Implementation on Host OS

38 A. Frank - P. Weisberg
Advantages/Disadvantages of VMs

• The VM concept provides complete protection of


system resources since each virtual machine is isolated
from all other virtual machines. This isolation permits
no direct sharing of resources.
• A VM system is a perfect vehicle for OS 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.
• The VM concept is difficult to implement due to the
effort required to provide an exact duplicate to the
underlying machine.
39
Virtual Machines History and Benefits

• First appeared commercially in IBM mainframes in 1972.


• Fundamentally, multiple protected execution environments
(different operating systems) can share the same hardware.
• Protect from each other.
• Some sharing of file can be permitted, controlled.
• Commutate with each other, other physical systems via
networking.
• Useful for development and testing.
• Consolidation of many low-resource use systems onto fewer
busier systems.
• “Open Virtual Machine Format”, standard format of VMs,
40 allows a VM to run within many different VM (host) platforms.
Testing a new Operating System

41 A. Frank - P. Weisberg
Integrating two Operating Systems

42 A. Frank - P. Weisberg
The Role of Virtualization

(a) General organization between a program, interface, and


system.
(b) General organization of virtualizing system A on top of
43 system B.
Architectures of Virtual Machines (1)
• There are interfaces at different levels.
• An interface between the hardware and
software, consisting of machine instructions
– that can be invoked by any program.
• An interface between the hardware and
software, consisting of machine instructions
– that can be invoked only by privileged
programs, such as an operating system.

44
Architectures of Virtual Machines (2)
• An interface consisting of system calls
as offered by an operating system.
• An interface consisting of library calls:
– generally forming what is known as
an Application Programming Interface
(API).
– In many cases, the aforementioned
system calls are hidden by an API.
45
Architectures of Virtual Machines (3)

Various interfaces offered by computer systems


46
Process Virtual Machine

(a) A process virtual machine, with multiple


instances of (application, runtime)
47 combinations.
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.
48
The Java Virtual Machine

49 A. Frank - P. Weisberg
Hypervisor/VMM (Virtual Machine Monitor)

(b) A virtual machine monitor, with multiple


instances of (applications, operating system)
combinations.
50
Process and System Virtual Machines

51 A. Frank - P. Weisberg
Types of Hypervisors

(a) A type 1 hypervisor. (b) A type 2 hypervisor


52
VM/370 with CMSs

53 A. Frank - P. Weisberg
VMware Architecture

54 A. Frank - P. Weisberg
Para-Virtualization
• Presents guest with system similar but not
identical to hardware.
• Guest must be modified to run on specialized
para-virtualized hardware.
• Guest can be an OS, or in the case of Solaris 10
applications running in containers.

55
Solaris 10 with Two Containers

56

You might also like