CIS 307: Views, Components, and Architectures of Operating Systems

[Introduction], [Resource Manager], [Virtual Machine], [Responsive System], [Components], [Monolithic Architecture], [Layered Architecture], [Virtual Machine Architecture], [Micro-Kernel Architecture]

Introduction

Here is a possible definition of an Operating System (paraphrased from Brinch Hansen):
An Operating System is a set of manual and automatic procedures that enable a group of people to use a computer installation efficiently.
The word Efficiently is very ambiguous. What are the Objective Functions to be used to evaluate efficiency? Here are some possibilities: Of course these objective functions may not all agree. For example, cost and functionality may conflict, as well as response time and utilization.

Resource Manager

We can think of an operating system as a Resource Manager. Here are some of the resources managed by the OS: While managing these resources the OS is concerned with general issues like:

Virtual Machine

We can think of an operating system as a Virtual Machine standing between our programs and the bare hardware, thus providing a more convenient, extended machine.

or alternatively

Responsive System

We can think of an operating system as a Responsive System answering requests coming from user programs (supervisory calls+exceptions) and from devices (interrupts).

Components

Here are the basic components of an OS: Some functionality, such as Protection, Security, Privacy, Reliability are realized across many components.

Monolithic Architecture

The oldest architecture used for operating systems is the Monolithic Kernel

A monolithic kernel can be easy to implement if we are ready to accept very high latency [i.e. we service requests withour worrying about the urgency of other requests], otherwise it may be with a very difficult to understand structure. Monolithic kernels are an architecture whose tima has come and gone.

Layered Architecture

Dijkstra introduced the Layered Architecture for operating systems when he developed in the 60's the THE operating system.

It is not always easy to have a truly layered architecture since some functionalities are naturally described as mutually dependent. In addition a layered architecture is often inefficient since it requires a high number of traversals of interfaces.

Virtual Machine Architecture (VM370)

This architecture creates a virtual 370 machine for each "user" and the user can choose which OS to run on that virtual machine.

The virtal machine architecture is elegant, but it does not deal with the questions of resource management, or of responsiveness.

Micro-Kernel Architecture

The most modern architecture (Mach, OSF, and NT) is the Micro-Kernel Architecture.

The micro-kernel architecture allows us to build a number of different operating systems all using the same micro-kernel, Each operating system will make use of different system processes. Notice that little is in the kernel, but it has great importance. Interactions between processes involve kernel intervention. Thus the efficiency of the transfer from user to kernel mode and back must be very high.

http://www.cis.temple.edu/~ingargio/cis307/readings/intro.html

ingargiola.cis.temple.edu