operating system structure

53,395 views 42 slides Dec 24, 2012
Slide 1
Slide 1 of 42
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42

About This Presentation

No description available for this slideshow.


Slide Content

Operating-System Structures

System Components

Operating System Services

System Calls

System Programs

System Structure

Virtual Machines

System Design and Implementation

System Generation

Common System Components

Process Management

Main Memory Management

File Management

I/O-System Management

Secondary-Storage Management

Networking

Protection System

Command-Interpreter System

Process Management

A processis a program in execution. A process is an active entity.

A process needs certain resources, including CPU time, memory, files,
and I/O devices, to accomplish its task.

Initialization data is also passed for execution of a process.

A program can have many processes as it runs.

System processes execute OS code whereas user processes execute
user code.

OS reclaims reusable resources from the process on its termination.

The OS is responsible for the following activities in connection with
process management:

Process creation and deletion.

process suspension and resumption.

Provision of mechanisms for:

process synchronization

process communication

deadlock handling

Main-Memory Management

Memory is a large array of words or bytes, each with its own address. It is a
repository of quickly accessible data shared by the CPU and I/O devices.

Main memory is a volatile storage device. It loses its contents in the case of
system failure.

The I/O operations implemented via DMA also read and write in memory.

Main-memory is frequently addressed by CPU for accessing instructions and
data from memoryduring program execution.

Different memory-management techniques are used to keep several
programsin memoryfor improving CPU utilization and response time.

An appropriate memory-management scheme is used for a specific
hardware design of the system.

The operating system is responsible for the following activities in connection
with memory management:

Keep track of which parts of memory are currently being used and by whom.

Decide which processes to be loaded when memory space becomes available.

Allocate and deallocate memory space as needed.

File Management

A file is a collection of related information defined by its creator. Commonly,
files represent programs (both source and object forms) and data.

Computers can store files on HD, FD, MD, OD or magnetic tape/ drum. Each
media has its own characteristics, device controller and properties such as
access speed, capacity, data-transfer rate, and access-method (random or
sequential).

OS maps files (logical storage units) onto physical media and accesses
these files via the storage devices.

OS manages the mass storage media and the devices that control them and
provides protection to files in multi-user environment.

The operating system is responsible for the following activities in connection
with file management:

File creation and deletion.

Directory creation and deletion.

Support of primitives for manipulating files and directories.

Mapping files onto secondary storage.

File backup on stable (nonvolatile) storage media.

I/O System Management

OS hides the peculiarities of specific hardware of I/O devices
from the user.

The I/O system consists of:

A memory-management component that includes buffereing, caching,
and spooling.

A general device-driver interface.

Drivers for specific hardware devices.

The device-driver knows the peculiarities of the specific
device to which it is assigned.

Interrupt handlers and device drivers are used in the
construction of efficient I/O subsystems.

The I/O subsystem interfaces to other system components,
manages devices, transfers data, and detects I/O completion.

Secondary-Storage Management

Since main memory (primary storage) is volatile and too small to
accommodate all data and programs permanently, the computer
system must provide secondary storageto back up main memory.

Secondary-storage devices are used to store data and programs of
theusers.

Application programs (compilers, assemblers, editors, AutoCAD
etc.) arecommonlyavailableonFDs, CDs,HDs,Ods etc.

Most modern computer systems use disks as the principal on-line
storage medium, for both programs and data.

OS uses optimal techniques for secondary-storage management in
order to increase its efficiency.

The operating system is responsible for the following activities in
connection with disk management:

Free space management.

Storage allocation.

Disk scheduling.

Networking (Distributed Systems)

A distributedsystem is a collection of processors (PCs, workstations,
minicomputers, large and general purpose computer systems) that do not
share memory or a clock. Each processor has its own local memory and
clock.

The processors in the system are connected through communication lines
(high speed buses or networks).

Communication takes place using a protocol (FTP, NFS, TCP/IP) which have
a great effect on the system’s utility and popularity.

The communication network design considers routing, connection strategies,
problems of contention, and security.

Os provides network access using network interface’s device drivers.

A distributed system provides user access to various system resources.

WWW provides a new access method for information sharing using http - for
use in communication between a web server and a web browser.

Access to a shared resource allows:

Computation speed-up.

Increased functionality.

Increased data availability.

Enhanced reliability.

Protection System

Users must be protected during the concurrent execution
of multiple processes.

OS’s authorization is required to utilize the resources (i.e.
files, memory segments, CPU, plotters, printers, tapes).

Different mechanisms are used to provide to different
resources.

Protectionrefers to a mechanism for controlling access
by programs, processes, or users to both system and
user resources.

The protection mechanism must:

distinguish between authorized and unauthorized usage.

specify the controls to be imposed.

provide a means of enforcement.

Improves reliability by detecting errors at an early
stage.

Command-Interpreter System

Most important system component being an interface between the user
and OS.

In some systems it is in the kernel while in other OSs (MS DOS, UNIX),
it is a special program that runs when a job is initiated or when user
logs-on.

Named ascommand.com in MSDOS andshellin UNIX. In these
OSs, commandsare typed and entered for execution by the user.

In latest OSs, User-friendly interface style has been incorporated to
facilitate the users.

Many commands are given to the operating system by control
statements which deal with:

process creation and management

I/O handling

secondary-storage management

main-memory management

file-system access

protection

networking

Operating System Services

OS services for convenience of the users/programmers:-

Program execution – system capability to load a program into memory, run, and
end it normally or abnormally.

I/O operations – since user programs cannot execute I/O operations directly, the
operating system must provide some means to perform I/O.

File-system manipulation – program capability to read, write, create, and delete
files.

Communications – exchange of information between processes executing either
on the same computer or on different systems tied together by a network.
Implementedviashared memoryormessage passingapproaches.

Error detection – ensures correct computing by detecting errors in the CPU and
memory hardware, in I/O devices, or in user programs.

OS services for ensuring efficient system operations:-

Resource allocation – allocating resources to multiple users or multiple jobs
running at the same time.

Accounting – keep track of which users use how many and which kinds of
computer resources for account billing or for accumulating usage statistics.

Protection – ensuring that all access to system resources is controlled.

System Calls

System calls provide the interface between a process and the OS:

Generally available as assembly-language instructions.

Languages defined to replace assembly language for systems programming allow
system calls to be made directly (e.g., C, C++).

A system call is used to complete a specific task:

Reading input file name

Opening a file

Error message if any

Abnormal termination

Deletion of a file

Prompting a message

Reading data for the file

Writing data to the file or console

Closing the file

Normal termination

Three general methods are used to pass parameters between a running
program and the operating system:

Pass parameters inregisters.

Store the parameters in a table in memory, and the table address is passed as a
parameter in a register (used in linux)

Push(store) the parameters onto thestackby the program, andpopoff the stack by
OS.

Passing of Parameters as a Table

Types of System Calls

Process control

End, Abort

Load, Execute

Create process, Terminate process

Get process attributes, Set process attributes

Waitfor time

Waitevent, Signal event

Allocate memory, Free memory

File management

Create file, Delete file

Open, Close

Read, Write, Reposition

Get file attributes, Set file attributes

Device management

Request device, Release device

Read, Write, Reposition

Get device attributes, Set device attributes

Logically attach devices, Logically detach devices

Types of System Calls

Information maintenance

Get time or date, Set time or date

Get system data, Set system data

Get process, file, or device attributes, Set process, file, or device
attributes

Communications

Create communication connection, Delete communication
connection

Send messages, Receive messages

Transferstatus information

Attach remote devices, Detach remote devices

MS-DOS Execution
At System Start-up Running a Program

UNIX Running Multiple Programs

Communication Models
Message Passing Shared Memory

Communication may take place using either message
passing or shared memory.

System Programs

System programs are user interfaces to system calls and provide a
convenient environment for program development and execution.
Categoriesof system programsare:-

File Manipulation– used for creating, deleting, renaming, printing, dumping,
listing, and generally manipulating files and directories.

Status Information– ask the system for date, time, available memory/disk, used
memory/disk, number of users etc.

File Modification– text editors to create and modify the content of files stored
on disk or tape.

Programming Language Support – compilers, assemblers, and interpreters for
common programming languages are provided to the user with the OS.

Program Loading and Execution – OS may provide absolute loaders,
relocatable loaders, linkage editors, and debuggers for program loading and
execution.

Communications– provide mechanism for creating virtual connections among
processes, users, and different computer systems which allows message
passing, browse web pages, send e-mail messages, log-in remotely, transfer
files from one machine to another.

Application Programs or System Utilities– many OSs are supplied with
system utilities or application programs (i.e. web browsers, word processors, text
formatters, spreadsheets, database systems) to perform common operations.

System Programs

Most users’ view of the operation system is defined by system programs, not
by the actual system calls.

Command-interpreter is the most important system program and can be
implemented in two ways:-

Schemes of commands implementationare:

Command interpreter itself contains the code to execute the commands,
jumps to a section of its code that sets up the parameters, and makes the
appropriate system call.

Advantages
: faster execution; easy to use by the programmers.

Disadvantages
: bigger size of the command-interpreter; needs
changes for new commands.

All commands are implemented through special system programs.
Command file is loaded in the memory and executed.
Advantages
: small size of command interpreter; not changed for
new commands, new commands can be incorporated easily.
Disadvantages
: clumsy task of passing parameters from the
command-interpreter to the system program; slower in loading and
execution; misinterpretation of the command parameters as they are
designed and implemented at different times by different
programmers.

Simple System Structure
(MS-DOS)

MS-DOS was written to
provide the most
functionality in the least
space.

It was not divided into
modules carefully.

Although MS-DOS has
some structure, its
interfaces and levels of
functionality are not well
separated.


UNIX – limited by hardware functionality, the original
UNIX operating system had limited structuring. The UNIX
OSconsistsoftwoseparableparts:

Systems programs

Systems programs are provided to define the user interface.

The kernel

Consists of everything below the system-call interface and
above the physical hardware.

Separated into a series of interfaces and device drivers.

Different components (file system, CPU scheduling, memory
management and other OS functions) were layered in its
design.

OS may provide smaller modules for much greater control of
computer resources, incorporating changes in the separate
modules easily to enhance functionality and hide information in
different components.
Simple System Structure
(UNIX)

UNIX System Structure

Layered Approach

The operating system isdivided into a number of layers (levels),
each built on top of lower layers. The bottom layer (layer 0) is
thehardware; thehighest(layer N)is theuserinterface.

With modularity, layers are selected such that each uses
functions(operations)and services ofonly lower-level layers.

OS has a greater control over the computer resources and
applicationsthat makeuseofit.

Provides more freedom to the implementers to make changes
intheinner workingsofthesystem.

Provides information hiding by allowing the programmers to
implement the low-level routines using top-down modular
programmingapproach.

Layeredapproach isused formodularization oftheOS.

Higher-levellayers can invokelower-level layers.

Less number of layers provide more functionality at each level
while reducing theproblems.

Layered Approach

Advantages: modularization makes debugging and
verification much easier; design and implementation
is simplified; each layer hides certain data structures,
operations and hardware details from higher-level
layers.

Disadvantages:leveldefinitionandimplementationis
very difficult; order of levels for the design of layered
structure is problematical; interaction between layers
and passing of parameters / data is very complex;
less efficient as a system call takes longer time for
executionthananon-layeredsystem.

Examples:TechnischeHogeschoolEindhoven(THE)
OSandVenuslayerstructure.

An Operating System Layer

Level 5:User programs
Level 4: buffering for input and output devices
Level 3: operator-console device driver
Level 2:memory management
Level 1:CPU scheduling
Level 0: hardware
Figure : THE layer structure
Level 6:User programs
Level 5:device drivers and schedulers
Level 4:virtual memory
Level 3:I/O channel
Level 2:CPU scheduling
Level 1:instruction interpreter
Level 0: hardware
Figure : Venus layer structure

Layered Approach

OS/2 provides multitasking and dual mode
operationonmorepowerfulhardware.

OS/2 does not provide direct user access to low-
level facilities like DOS, OS has more control over
the hardware, and has more information about
usageofresources.

Windows NT 4.0 has increased its performance by
moving layers from user space to kernel space and
closelyintegratingthem.

OS/2 Layer Structure

Microkernel System Structure

Larger kernels need more space and are difficult to manage.

Microkernel approach moves all non-essential components from the
kernel and implements them as system-level programs and user-
level programs, moving as much from the kernel into “user” space.

Microkernel provides minimal process memory management and
communication facility.

Microkernel provides communication facility through message-
passing between the client program and various services that are
also running in the user space.

Microkernel provides indirect communication between the client
program and the service.

Benefits:

easier to extend a microkernel

fewer changes required in the modification of microkernel

easier to port the operating system to new architectures

more reliable (less code is running in kernel mode)

more secure – if a routine fails, the rest of the OS remains untouched

Windows NT Client-Server Structure

Virtual Machines

The layered approach is taken to its logical conclusion in
theconceptofavirtualmachine.

The virtual machine concept treats the kernel of the OS
andthehardwarethoughtheywereallhardware.

Systemprogramstreathardware instructionsand system
calls as they were at the same level. Application
programscanalsocallsystemprograms.

A virtual machine provides an interfaceidenticalto the
underlyingbarehardware.

The operating system creates the illusion of multiple
processes, each executing on its own processor with its
own(virtual)memory.

Virtual Machines

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.

A virtual machine has virtual memory, virtual disks, virtual printer, virtual
console, virtual processor and virtual communication network.

A user can run any type of software package on his/her virtual machine.

The virtual machine software is concerned with multiprogramming
multiple virtual machines onto a physical machine.

Virtual disks (minidisks) are difficult to implement in a virtual machine.
A lot of effort is required to provide an exact duplicate of the underlying
machine.

Virtual user mode and virtual monitor mode run in the physical user
mode.

Virtual Machines

Advantages

The virtual-machine concept provides complete protection of
system resources since each virtual machine is isolated from all
othervirtual machines.

A virtual-machine system is a perfect vehicle for operating-
systems research and development. System development is
done on the virtual machine, instead of on a physical machine
andsodoesnot disruptnormalsystem operation.

Virtual machines are useful for solving system compatibility
problems.

Disadvantages

No direct sharing of resources as each virtual machine is
isolatedfromall othervirtual machines.

The virtual machine concept is difficult to implement due to the
effort required to provide anexactduplicate to the underlying
machine.

The privileged instructions (needed mainly for I/O) must be
simulatedandhenceexecutemoreslowly.

System Models
Non-virtual Machine Virtual Machine

Java Virtual Machine

In addition to a language specification and a large API library, Java
also provides a specification for a Java Virtual Machine (JVM).

For each Java class, the Java compiler produces an architecture-
neutral bytecode output (.class) file that will run on any implementation
of the JVM.

JVM consists of:
- class loader
- class verifier
- runtime interpreter

The Java interpreter may be a software module that interprets the
byte-codes one at a time, or it may be a Just-In-Time (JIT) compiler
that turns the architecture-neutral bytecodes into native machine
language for the host computer.

Most implementations of the JVM use a JIT compiler for enhanced
performance.

JVM design provides a secure, efficient, object-oriented, portable, and
architecture-neutral platform on which to run Java programs.

Java Virtual Machine

System Design Goals

System goals and specifications are required to be
definedforthedesignofOS.

ChoiceofhardwareandtypeofOStobedecided.

RequirementsofOScanbedividedintwogroups:

Goals desired by users: the system should be
convenient and easy to use; easy to learn; reliable;
safe,andfast.

Goals desired by programmers / designers:easy
to design, implement, maintain and operate; it should
beflexible;reliable;errorfree,andefficient.

The wide range of systems shows that different
requirements can result in a large variety of solutions for
differentenvironments.

System Mechanisms and Policies

Mechanisms determine how to do something and
policiesdecidewhatwillbedone.

Timer used in the CPU protection is a mechanism and
the time to be set for a particular user is a policy
decision.

Mechanisms and policies should be treated separately
– an important principle. Policies do change from time
to time or place to place but mechanisms rarely
change.

Policy-independent mechanisms are incorporated for
flexibility.

Policy decisions must be made for all resource-
allocationandschedulingproblems.

System Implementation

Designed OS is implemented using either assembly language or a high
level language. Both languages can be used in the implementation of
an OS.

Traditionally written in assembly language, operating systems can now
be written in higher-level languages (MCP in ALGOL, MULTICS in PL/1
PRIMOS in FORTRAN, and Unix, OS/2 and Windows in C).

Advantages of using a high level language:code writing is much
faster; more compact; easier to understand; easier to debug; OS is far
easier to port; better data structures and algorithms provide
performanceimprovements.

Disadvantages of using a high level language:reduced speed, and
increased storage requirements.

The most critical or bottleneck routines (memory manager, CPU
scheduler) can be written in assembly language for obtaining better
performancewith small code.

Trace listings of system behaviour (using log file or real time approach)
and analysis program help to identify bottlenecks and inefficiencies.

System Generation (SYSGEN)

As the OSs are designed to run on any of a class of machines at a
variety of sites with a variety of peripheral configurations, the system
must be configured or generated for each specific computer site. This
process is known as SYSGEN.

The SYSGEN program reads from a file or asks the operator for
following information concerning the specific configuration of the
hardware system or probes the hardware directly to determine the
type of components:

CPU type: options for instruction sets; description of each CPU
for multiple CPU systems.

Memory:total memory, available memory - normally determined
by the system.

Devices:total devices, system needs to know the device number,
the device interrupt number, type and model of each device.

Options:Desired options of the OS and parameters values
needed (buffers and their sizes, CPU scheduling algorithm,
maximumnumber of processes to be supported).

System Generation Approaches

Approaches

The source code of the OS is modified and the OS is completely compiled
to meet requirements of the described system – fully tailored OS (one
extreme).

The system description could cause the creation of tables and the selection
of modules from a precompiled library. These modules would be linked to
form the generated OS. SYSGEN is faster but has more generality that was
actually needed.

A completely table driven system can be constructed. All the code would
always be a part of the system and selection would occur at execution time,
not at a compile or link time – another extreme.

The major differences among these approaches are the size,
generality of the generated system, and the ease of modification as the
hardware configuration changes.

Bootstrap program or Bootstrap loaderlocates the kernel, loads it into
main memory and starts the execution. So OS is made available for use
by the hardware and users.