0% found this document useful (0 votes)
182 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
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
182 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
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