Operatin
g
Systems:
Internals
and
Design
Principles
Operating System
Operating
System Overview
Dr. Muhammed J. Al-Muhammed
Operating System
A
program that controls the execution of
application programs
An
interface between applications and
hardware
Main objectives of an OS:
Convenience
Efficiency
Ability to evolve
2
Operating System
Computer Hardware
and Software
Infrastructure
3
Operating System
Operating System
Services
Program
development:
Program
execution:
different services
such editors and debuggers to help programmers in
creating their programs
loading data and
instructions to memory, initialization of IO devices,
scheduling
Access
I/O devices:
Uniform interface, hides
details so the programmer can access these devices
using simple read/write.
Controlled
access to files:
sharing, caching.
Operating System
Authorization,
Operating System
Services
System
access (for shared or public
systems): Protection, authorization, resolve
conflicts
Error
detection and response:
Hardware errors: memory error or device failure
Software errors: arithmetic errors, access
forbidden memory locations, allocation errors
Accounting
collect statistics (billing)
monitor performance
used to anticipate future enhancements
Operating systems are among the most complex
Operating System
Key Interfaces
Instruction
set architecture (ISA):
is
the interface between hardware and the software.
Two interfaces; user ISA (small) and OS ISA
(larger)
Application
binary interface (ABI):
makes program portability possible.
Application
(API):
programming interface
The API gives a program access to the
hardware resources and services available in a
6
system through the user ISA supplemented with
Operating System
high-level language (HLL) library calls. Using an
The Role of an OS
A
computer is a set of resources
for the movement, storage, and
processing of data
The
OS is responsible for
managing these resources
7
Operating System
Operating System
as Software
The
operating system control
mechanism is unusual in two way
Functions in the same way as ordinary computer
software ( provides instructions for the processor).
However, the OS directs the processor to use
resources and timing the execution of other
programs.
Frequently relinquishes control and must depend
on the processor to allow it to regain control
8
Operating System
Operating
System
as
Resource
Manager
9
Operating System
Evolution of
Operating Systems
A major OS will evolve over time
for a number of reasons:
Hardware
upgrades
New types of
hardware
New
services
Fixes
10
Operating System
Evolution of
Operating Systems
Stages include:
11
Operating System
Serial
Processin
g
Simple
Batch
Systems
Time
Sharing
Multiprogramme Systems
d Batch
Systems
Serial Processing
Earliest
Computers:
No operating system
Problems:
programmers interacted
directly with the
computer hardware
Computers ran from a
console with display lights,
toggle switches, some form
of input device, and a
printer
Users have access to the
computer in series
12
Operating System
Scheduling:
most installations used a
hardcopy sign-up sheet to
reserve computer time
time allocations could
run short or long,
resulting in wasted
computer time
Setup time
a considerable amount of
time was spent just on
setting up the program to
run
Simple Batch
Systems
Early
computers were very expensive
important to maximize processor utilization
Monitor
13
user no longer has direct access to processor
job is submitted to computer operator who
batches them together and places them on an
input device
program branches back to the monitor when
finished
Operating System
Monitor Point of
View
Monitor controls the
sequence of events
Resident Monitor is
software always in memory
Monitor reads in job and
gives control
Job returns control to
monitor
14
Operating System
Processor Point of
View
Processor executes instruction from the
memory containing the monitor
Executes the instructions in the user program
until it encounters an ending or error condition
control is passed to a job means processor is
fetching and executing instructions in a user
program
control is returned to the monitor means that
the processor is fetching and executing
15
instructions from the monitor program
Operating System
Job Control Language
(JCL)
Special type of
programming language
used to provide
instructions to the monitor
what compiler to
use
what data to use
16
Operating System
Desirable Hardware
Features
Memory protection for monitor
while the user program is executing, it must not alter the
memory area containing the monitor
Timer
prevents a job from monopolizing the system
Privileged instructions
can only be executed by the monitor
Interrupts
17
gives OS more flexibility in controlling user programs
Operating System
Operating System
18
user program executes in
user mode
certain areas of memory
are protected from user
access
certain instructions may
not be executed
monitor executes in kernel
mode
privileged instructions may
be executed
protected areas of memory
may be accessed
User Mode
Kernel Mode
Modes of Operation
Simple Batch System
Overhead
Processor time alternates between execution of
user programs and execution of the monitor
Sacrifices:
some main memory is now given over to the
monitor
some processor time is consumed by the monitor
Despite overhead, the simple batch system
improves utilization of the computer
19
Operating System
Multiprogrammed
Batch Systems
Processor
is
often idle
20
Operating System
even with
automatic
job
sequencing
I/O devices
are slow
compared
to processor
Uniprogramming
21
Operating System
The processor spends a certain
amount of time executing, until it
reaches an I/O instruction; it must
then wait until that I/O instruction
concludes before proceeding
Multiprogramming
22
There must be enough memory to hold the OS
(resident monitor) and one user program
When one job needs to wait for I/O, the processor can
switch to the other job, which is likely not waiting for
I/O
Operating System
Multiprogramming
Multiprogramming
also known as multitasking
memory is expanded to hold three, four, or more
programs and switch among all of them
23
Operating System
Multiprogramming
Example
24
Operating System
Effects on Resource
Utilization
25
Operating System
Table 2.2 Effects of Multiprogramming on Resource Utilization
Utilization Histograms
26
Operating System
Time-Sharing
Systems
Can
be used to handle multiple interactive
jobs
Processor
time is shared among multiple
users
Multiple
27
users simultaneously access the
system through terminals, with the OS
interleaving the execution of each user
program in a short burst or quantum of
computation
Operating System
Batch
Multiprogramming
vs. Time Sharing
Table 2.3 Batch Multiprogramming versus Time Sharing
28
Operating System
Compatible TimeSharing Systems
Time Slicing
CTSS
One of the first time-sharing
operating systems
Developed at MIT by a group
known as Project MAC
Ran on a computer with 32,000
36-bit words of main memory,
with the resident monitor
consuming 5000 of that
29
To simplify both the monitor and
memory management a program
was always loaded to start at the
location of the 5000th word
Operating System
System clock generates interrupts at
a rate of approximately one every
0.2 seconds
At each interrupt OS regained
control and could assign processor
to another user
At regular time intervals the current
user would be preempted and
another user loaded in
Old user programs and data were
written out to disk
Old user program code and data
were restored in main memory when
that program was next given a turn
CTSS
Operation
30
Operating System
Major Advances
Operating
Systems are among the
most complex pieces of software ever
developed
31
Operating System
Process
Fundamental
systems
32
Operating System
to the structure of operating
Development of the
Process
Three major lines of computer system development
created problems in timing and synchronization that
contributed to the development:
33
Operating System
Causes of Errors
Improper
synchronization
a program must wait until the
data are available in a buffer
improper design of the
signaling mechanism can
result in loss or duplication
Failed mutual exclusion
34
more than one user or program
attempts to make use of a
shared resource at the same
time
only one routine at at time
allowed to perform an update
against the file
Operating System
Nondeterminate
program operation
program execution is
interleaved by the processor
when memory is shared
the order in which programs
are scheduled may affect their
outcome
Deadlocks
it is possible for two or
more programs to be hung
up waiting for each other
may depend on the chance
timing of resource
allocation and release
Components of
a Process
A
process
contains three
components:
an executable
program
the associated data
needed by the
program (variables,
work space, buffers,
etc.)
35 the execution
Operating System
context (or process
The execution context is
essential:
it is the internal data by
which the OS is able to
supervise and control the
process
includes the contents of the
various process registers
includes information such as
the priority of the process
and whether the process is
waiting for the completion of
a particular I/O event
Process
Management
The entire state of
the process at any
instant is contained
in its context
New features can
be designed and
incorporated into
the OS by
expanding the
context to include
any new
36information needed
to support the
Operating System
Memory
Management
The
OS has five principal storage
management responsibilities:
37
Operating System
Virtual Memory
A
facility that allows programs to
address memory from a logical point of
view, without regard to the amount of
main memory physically available
Conceived
to meet the requirement of
having multiple user jobs reside in
main memory concurrently
38
Operating System
Paging
Allows processes to be comprised of a number
of fixed-size blocks, called pages
Program references a word by means of a
virtual address
consists of a page number and an offset within
the page
each page may be located anywhere in main
memory
Provides for a dynamic mapping between the
39 virtual address used in the program and a real
Operating
System
(or
physical) address in main memory
Virtual
Memory
40
Operating System
Virtual Memory
Addressing
41
Operating System
Information
Protection
and Security
The nature of the
threat that concerns
an organization will
vary greatly
depending on the
circumstances
The problem
involves controlling
access to computer
systems and the
information stored
in them
42
Operating System
Scheduling and
Resource
Management
Key
responsibility of an OS is
managing resources
Resource
consider:
43
Operating System
allocation policies must
Key Elements of an
Operating System
44
Operating System
Different
Architectural
Approaches
Demands
on operating systems
require new ways of organizing the
OS
45
Operating System
Microkernel
Architecture
Assigns
only a few essential functions
to the kernel:
The
46
Operating System
approach:
Multithreading
Technique in which a process, executing an
application, is divided into threads that can run
concurrently
47
Operating System
Symmetric
Multiprocessing (SMP)
Term that refers to a computer hardware
architecture and also to the OS behavior that
exploits that architecture
Several processes can run in parallel
Multiple processors are transparent to the user
these processors share same main memory and
I/O facilities
all processors can perform the same functions
The OS takes care of scheduling of threads or
processes on individual processors and of
48
synchronization among processors
Operating System
SMP Advantages
49
Operating System
Mul
tipr
ogr
am
min
g
50
Operating System
OS Design
Distributed
Operating System
extensions to a small
kernel
Provides the illusion of
Object-Oriented
Design
Used for adding modular
a single main memory space
single secondary memory
space
unified access facilities
State of the art for
distributed operating
systems lags that of
uniprocessor and SMP
operating systems
51
Operating System
Enables programmers to
customize an operating
system without disrupting
system integrity
Eases the development of
distributed tools and fullblown distributed operating
systems
Virtual Machines
and Virtualization
Virtualization
enables a single PC or server to simultaneously run
multiple operating systems or multiple sessions of a single
OS
a machine can host numerous applications, including
those that run on different operating systems, on a single
platform
host operating system can support a number
of virtual machines (VM)
each has the characteristics of a particular
OS and, in some versions of virtualization,
characteristics of a particular hardware
52
Operating System
the
platform
Virtual
Machin
e
Concep
t
53
Operating System
Virtual Machine
Architecture
54
Operating System
Process and System Virtual
Machines
55
Operating System
Process and System Virtual Machines
56
Operating System
Symmetric
Multiprocessor OS
Considerations
A multiprocessor OS must provide all the functionality of a
multiprogramming system plus additional features to
accommodate multiple processors
Key design issues:
57
Operating System
Multicore OS
Considerations
The design challenge for
a many-core multicore
system is to efficiently
harness the multicore
processing power and
intelligently manage the
substantial on-chip
resources efficiently
Potential for parallelism
exists at three levels:
58
Operating System
Grand Central
Dispatch
Developer
must decide what pieces can
or should be executed simultaneously or
in parallel
59
Operating System
Virtual Machine
Approach
Allows
one or more cores to be
dedicated to a particular process and
then leave the processor alone to devote
its efforts to that process
Multicore
60
OS could then act as a
hypervisor that makes a high-level
decision to allocate cores to applications
but does little in the way of resource
allocation beyond that
Operating System
Microsoft Windows
Overview
MS-DOS 1.0 released in 1981
4000 lines of assembly language
source code
ran in 8 Kbytes of memory
used Intel 8086 microprocessor
Windows 2000
included services and functions
to support distributed processing
Active Directory
plug-and-play and powermanagement facilities
Windows XP released in 2001
Windows 3.0 shipped in 1990
16-bit
GUI interface
implemented as a layer on top of
MS-DOS
Windows 95
32-bit version
led to the development of Windows
98 and Windows Me
Windows NT (3.1) released in 1993
61
32-bit OS with the ability to support
older DOS and Windows
applications as well as provide
OS/2 support
Operating System
goal was to replace the versions
of Windows based on MS-DOS
with an OS based on NT
Windows Vista shipped in 2007
Windows Server released in
2008
Windows 7 shipped in 2009, as
well as Windows Server 2008
R2
Windows Azure
targets cloud computing
Windows
Architecture
62
Operating System
Kernel-Mode
Components of
Windows
Executive
Kernel
63
maps between generic hardware commands and responses and
those unique to a specific platform
Device Drivers
controls execution of the processors
Hardware Abstraction Layer (HAL)
contains the core OS services
dynamic libraries that extend the functionality of the Executive
Windowing and Graphics System
implements the GUI functions
Operating System
User-Mode Processes
Four
basic types are supported by
Windows:
64
Operating System
Client/Server Model
Windows
OS services,
environmental
subsystems, and
applications are all
structured using the
client/server model
Common
in distributed
systems, but can be
used internal to a single
system
Processes
65 via RPC
Operating System
communicate
Advantages:
it
simplifies the Executive
it
improves reliability
it
provides a uniform
means for applications to
communicate with
services via RPCs without
restricting flexibility
it
provides a suitable
base for distributed
computing
Threads and SMP
Two important characteristics of Windows are its
support for threads and for symmetric
multiprocessing
OS routines can(SMP)
run on any available processor, and different
routines can execute simultaneously on different processors
66
Windows supports the use of multiple threads of execution
within a single process. Multiple threads within the same
process may execute on different processors simultaneously
Server processes may use multiple threads to process requests
from more than one client simultaneously
Windows provides mechanisms for sharing data and resources
between processes and flexible interprocess communication
capabilities
Operating System
Windows Objects
Windows
draws heavily on the concepts
of object-oriented design
Key
object-oriented concepts used by
Windows are:
67
Operating System
n
C
o lenrK
ew
o
sd
nW
i
68
Operating System
Windows 7
Changes and improvements:
Engineering improvements
Performance improvements
69
many improvements have been made
Security
user-mode heap is more tolerant of memory allocation errors by
C/C++ programmers
Energy efficiency
amount of memory required has been reduced
Reliability improvements
the system is now built in layers which can be separately tested
BitLocker is now easier to set up and use
Thread improvements
can support hundreds of CPUs
Dynamic Fair Share Scheduling (DFSS)
Operating System
Traditional UNIX
Systems
Were developed at Bell Labs and became operational on a PDP-7 in 1970
Incorporated many ideas from Multics
PDP-11was a milestone because it first showed that UNIX would be an OS for
all computers
Next milestone was rewriting UNIX in the programming language C
demonstrated the advantages of using a high-level language for system
code
Was described in a technical journal for the first time in 1974
First widely available version outside Bell Labs was Version 6 in 1976
Version 7, released in 1978 is the ancestor of most modern UNIX systems
Most important of the non-AT&T systems was UNIX BSD (Berkeley Software
70 Distribution)
Operating System
Descripti
on
of
UNIX
71
Operating System
Tradition
al UNIX
Kernel
72
Operating System
Moder
n UNIX
Kernel
73
Operating System
LINUX Overview
Started out as a UNIX variant for the IBM PC
Linus Torvalds, a Finnish student of computer science, wrote the
initial version
Linux was first posted on the Internet in 1991
Today it is a full-featured UNIX system that runs on several
platforms
Is free and the source code is available
Key to success has been the availability of free software packages
Highly modular and easily configured
74
Operating System
Modular
Monolithic Kernel
Includes virtually all of the
OS functionality in one
large block of code that
runs as a single process
with a single address space
All the functional
components of the kernel
have access to all of its
internal data structures
and routines
Linux is structured as a
collection of modules
75
Operating System
Loadable Modules
Relatively independent blocks
A module is an object file whose
code can be linked to and
unlinked from the kernel at
runtime
A module is executed in kernel
mode on behalf of the current
process
Have two important
characteristics:
Dynamic linking
Stackable modules
Linux
Kernel
Modul
es
76
Operating System
Linux Kernel Components
77
Operating System
Linux Signals
78
Operating System
Table 2.5 Some Linux Signals
Linux Vserver Virtual
Machine Architecture
Open-source, fast,
lightweight approach to
implementing virtual
machines on a Linux
server
Only a single copy of the
Linux kernel is involved
Supports a number of
separate virtual servers
Each virtual server is
isolated from the others
79
Involves four elements:
Operating System
Linux Vserver
Architecture
80
Operating System
Summary
Operating system objectives and
functions:
user/computer interface
resource manager
Evolution:
convenience, efficiency, ability
to evolve
serial processing, simple batch
systems, multiprogrammed
batch systems, time sharing
systems
Process
Memory management
Scheduling and resource management
Multithreading
Symmetric multiprocessing (SMP)
distributed OS
object oriented design
Virtual machines
Microsoft Windows/Windows 7
UNIX/Linux systems
81
Operating System
real address, virtual address
virtualization