Download Lecture 1: Overview

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Acorn MOS wikipedia , lookup

Library (computing) wikipedia , lookup

MTS system architecture wikipedia , lookup

Copland (operating system) wikipedia , lookup

Spring (operating system) wikipedia , lookup

RSTS/E wikipedia , lookup

Burroughs MCP wikipedia , lookup

OS 2200 wikipedia , lookup

Distributed operating system wikipedia , lookup

Unix security wikipedia , lookup

CP/M wikipedia , lookup

Process management (computing) wikipedia , lookup

Paging wikipedia , lookup

VS/9 wikipedia , lookup

Transcript
Lecture 2: Overview of
Operating System
Operating System
Fall 2010
1
Outline






What is Operating System
OS as User/Computer Interface
Services provided by OS
OS as Resource Manager
Evolution of OS
Major Achievements of OS
2
What is Operating System?


An operating system is a program that controls the
execution of application programs and acts as an
interface between applications and the computer
hardware.
Three objectives of operating systems:

Convenience


Efficiency


Makes a computer more convenient to use
Allows the computer system resources to be used in an
efficient manner
Ability to evolve

Permit the effective development, testing, and introduction of
new system functions without interfering with service
3
OS as User/Computer Interface
End
User
Programmer
Application
Programs
Utilities
OperatingSystem
Designer
Operating-System
Computer Hardware
4
Services provided by the
operating systems

Program Development


OS provides a variety of facilities and services, such as
editors and debuggers, to assist the programmer in creating
programs. Typically, these services are in the form of utility
programs that, while not strictly part of the core of the OS,
are supplied with the OS and are referred to as application
program development tools.
Program Execution

A number of tasks need to be performed before we can
execute a program. Instructions and data must be loaded
into main memory. I/O devices and files must be initialized,
and other resources must be prepared. The OS handles
these duties for the user.
5
Services provided by the
operating systems (cont.)

Access to I/O Devices


Controlled Access to File


Each I/O devices requires its own peculiar set of instructions
or control signals for operating. The OS provides a uniform
interface that hides these details so that the programmer
can access such devices using simple reads and writes.
The OS must provide protection mechanisms to control
access to the files for different users. Certain files can read
only, or write only, or execute only. The OS must enforce
the access mechanism.
System Access

In the case of a shared or public system, the OS control
access to the system as a whole and to specific system
resources.
6
Services provided by the
operating systems (cont.)

Error Detection and Response

A variety of errors can occur while a computer
system is running




Internal and External hardware errors such as memory
error, device failure, or malfunctions.
Software error such as arithmetic overflow or underflow,
attempt to access forbidden memory locations
Operating system cannot grant request of application
Accounting




Collect usage statistic
Monitor performance
Used to anticipate future enhancement
prepare billing information
7
OS as Resource Manager
Computer System
I/O devices
Memory
OS
Software
Programs
and
data
I/O controller
printers
I/O controller
Keyboards
etc.
.
.
.
I/O controller
processor
…
processor
Auxiliary
storage
devices,
disks, tapes
8
OS as Resource Manager (cont.)

The OS is responsible for controlling and
managing the various resources of a
computer system.



The OS functions in the same way as an ordinary
computer software, i.e., it is a program or suite of
programs executed by the processor
The OS frequently relinquishes control of the
processor and must depend on the processor to
allow it to regain control
The OS itself doesn’t do any “useful” work.
9
Ease of Evolution of an OS

A major OS will evolve over time for a
number of reasons:



Hardware upgrades plus new types of
hardware
New services demanded by users
Fixer – fix holes in OS
10
Evolution of OS (1)

1940-1950



No operating system
Run as an open shop
User signs up for certain time to use it
11
Evolution of OS (2)
- Simple Batch Systems
Interrupt Processing
Monitor
Device Drivers
Job Sequencing

mid 1950s - mid 1960s


Control Language Interpreter
User
Program
Area

User no longer has direct
access to the machine
Submit the job to an
operator who batches the
jobs together sequentially
and places the entire batch
on the input device
Often jobs of a similar
nature can be bundled
together to further increase
economy
12
Evolution of OS (2)
- Simple Batch Systems (cont.)

Job Control Language (JCL)


Special type of programming language
Provide instruction to the monitor
$JOB user_spec
; identify the user for accounting purposes
$FORTRAN
; load the FORTRAN compiler
source program cards
$LOAD
; load the compiled program
$RUN
; run the program
data cards
$EOJ
; end of job
$JOB user_spec
$LOAD application
$RUN data
$EOJ
; identify a new user
13
Evolution of OS (2)
- Simple Batch Systems (cont.)

Need additional hardware features to support the
batch OS:



Memory Protection – protect the OS from being wiped out
Timer – prevent the job run infinitely
Privileged Instruction




certain instruction can only be executed by OS, and not by user.
I/O could only be performed in monitor (supervisor) mode,
CPU runs in supervisor mode or user mode
Interrupts



early models did not have this capability.
Later models have.
Make more efficient use of resources
Note: Some memory is given to OS and some processor time is given to OS. But
we are still better off because machine is a lot faster than human operation.
14
Evolution of OS (3)
- Multiprogrammed Batch Systems

Monitor
1960s - present

(more like a operating system)

User program 1
User program 2
User program 3
User program 4

Several users are in
memory at the same
time
Match I/O intensive job
with CPU intensive job
Important to have
Interrupt-Driven I/O or
DMA to support
multiprogrammed batch
system.
15
Uniprogramming

Processor must wait for I/O instruction
to complete before preceding
16
Multiprogramming

When one job needs to wait for I/O, the
processor can switch to the other job
17
Multiprogramming
18
Evolution of OS (4)
- Time-Sharing Systems

1970s - present



To support interactive computing
In a time-sharing system, multiple 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.
Context Switching


A job (now often called process) can get “switched in” or
“switched out”.
OS should give the illusion for the process as if it exists in the
CPU continuously
19
Batch Multiprogramming
versus Time Sharing
Batch Multiprogramming
Principal objective
Maximize processor use
Job control language
Source of directives
commands provided with
to operating system
the job
Time Sharing
Minimize response
time
Commands entered at
the terminal
20
Evolution of OS (5)

Real-time computer



Execute programs that are guaranteed to have an upper bound on
tasks that they carry out.
e.g. guided missile systems, medical monitoring equipment
Multiprocessor – have more than one CPU

Shared memory multiprocessors


Distributed memory multiprocessors


Access the same memory - memory access must be synchronized
Each CPU has its own associated memory – communication between
processors is often slow and complicated
Networked/Distributed Systems – consist of multiple computers


Networked systems: users are aware of the different computers
that make up the system
Distributed systems: multiple computers are transparent to the
user.
21
Major Achievements of OS


OS are the most complex software ever
developed
In the last several decades, we have made
several theoretical advances in the
development of OS:





Processes
Memory management
Information protection and security
Scheduling and resources management
Systems structures
22
Processes - Definition

The concept of process is fundamental to the
structure of OS. Many definitions have been
given:




A program in execution
An instance of a program running on a computer
The entity that can be assigned to and executed
by a processor
A unit of activity characterized by a single
sequential thread of execution, a current state,
and an associated set of system resources.
23
Processes

In a multiprogrammed systems, many jobs are in progress at
the same time. It became impossible to analyze their
interactions. Therefore, there are many source of errors:

Improper Synchronization


Failed Mutual Exclusion


The results of a particular program should depend only on the input
and not on the activities of other programs in a shared system
Deadlocks


Certain shared resources can only be used by one user at a time
Nondeterminate Program Execution


It is often the case that a routine must be suspended awaiting an event
that occurs elsewhere
It is possible for two or more programs to be hung up waiting for each
other
We need to tackle these problems in a systematic way. The
concept of the process provides the foundation.
24
Processes - Components

We can think of a process as consisting of
three components:



An executable program
The associated data needed by the program
The execution context of the program

All information the operating system needs to manage
the process
25
Processes
CPU registers
OS
process
list
process
A
process
B
PSW
PC
Context
Data
Instructions
Context
Data
Instructions
Base
Limit
b
h
PC
other
registers
PC
…
PC
26
Memory management

Process isolation


Automatic allocation and management



Programs should be dynamically allocated across the
memory hierarchy as required.
Support for modular programming
Protection and access control


The OS must prevent independent processes from
interfering with the data and memory of each other
Sometimes it is desirable to share data. Sometimes it is not.
The OS must enforce them
Long-term storage
27
Virtual Memory


Allows programmers to address
memory from a logical point of view
While one process is written out to
secondary store and the successor
process read in there in no hiatus
28
File System


Implements long-term store
Information stored in named objects
called files
29
Paging




Allows process to be comprised of a
number of fixed-size blocks, called
pages
Virtual address is a page number and
an offset within the page
Each page may be located any where in
main memory
Real address or physical address in
main memory
30
31
Virtual Memory Addressing
Processor
Virtual
Address
Memory
Management
Unit
Real
Address
Main
Memory
Disk
Address
Secondary
Memory
32
Information Protection and
Security

Access control


Information flow control


Regulate user access to the system
Regulate flow of data within the system
and its delivery to users
Certification

Providing that access and flow control
perform according to specifications
33
Scheduling and Resources
Management


A key task of an OS is to manage the various
resources available to it and to schedule their
use by the various active processes.
Any scheduling policy must consider three
factors:

Fairness


Differential Responsiveness – priorities


Give equal and fair access to all processes
Discriminate between different classes of jobs
Efficiency

maximize throughput, minimize response time, and
accommodate as many uses as possible etc.
34
System Structure


Early OS are monolithic
Later OS are modular




View the system as a series of levels
Each level performs a related subset of
functions
Each level relies on the next lower level to
perform more primitive functions
This decomposes a problem into a number
of more manageable subproblems
35
System Structure (cont.)

Microkernel architecture

assigns only a few essential functions to
the kernel



address space
interprocess communication (IPC)
basic scheduling
36
System Structure (cont.)

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
flexible
37
Solaris Modular Approach
38
Operating System Design
Hierarchy
Level
Name
Objects
Example operations
13
Shell
User programming
environment
Statements in shell
language
12
User processes
User processes
Quit, kill, suspend,
resume
11
Directories
Directories
Create, destroy, attach,
detach, search, list
10
Devices
External devices, such Open, close, read,
as printer, displays
write
and keyboards
9
File system
Files
Create, destroy, open,
close, read, write
8
Communications
Pipes
Create, destroy, open,
close, read, write
39
Operating System Design
Hierarvichy (cont.)
Level
Name
Objects
Example operations
7
Virtual Memory
Segments, pages
Read, write, fetch
6
Local secondary
store
Blocks of data,
device channels
Read, write, allocate,
free
5
Primitive
processes
Primitive process,
semaphores, ready
list
Suspend, resume, wait,
signal
40
Operating System Design
Hierarvichy (cont.)
Level
Name
Objects
Example operations
4
Interrupts
Interrupt-handler
Invoke, enable, disable
interrupt
3
Procedures
Procedures, call stack,
display
Mark stack, call, return
2
Instruction Set
Evaluation stack,
microprogram interpreter,
scalar and array data
Load, store, add,
subtract branch
1
Electronic
circuits
Registers, gates, buses,
etc.
Clear, transfer, activate,
complement
41
End
Thank you!
42