Operating Systems Principles Lecture 1: Introduction

Download Report

Transcript Operating Systems Principles Lecture 1: Introduction

Operating Systems Principles
Lecture 1: Introduction
主講人:虞台文
Content

The Role of Operating Systems
–
–

Organization of Operating Systems
–
–
–
–
–

Bridge the Hardware/Application Gap
Three Views of Operating Systems
Structural Organization
The Hardware Interface
The Programming Interface
The User Interface
Runtime Organization
Operating System Evolution & Concepts
Operating Systems Principles
Lecture 1: Introduction
The Role of
Operating Systems
PC Hardware Organization
Users ←→ Hardware
The Gap
Users ←→ Hardware
User needs to think in terms of problem to be solved
• High-level data structures and corresponding operations
• Simple, uniform interfaces to subsystems,
• Treat programs and data files as single entities
Hardware capabilities are very low level
• Arithmetic and logical operators
• Comparison of two bit-strings
• Branching, reading, and writing bytes
The Gap
Fills the Gap
Software
Fills the Gap
Use software to bridge this gap
• Language processors e.g.,
- assemblers, compilers, interpreters
• Editors and text processors, linkers and loaders.
• Application programs, utility and service programs.
• Operating Systems
Software
Single CPU System
Single CPU System
I/O Devices
I/O Devices
Multiprocessor Systems
Share-Memory Model
Distributed-Memory Model
Synchronization & Communication of CPU’s
Share-Memory Model
through the
shared memory
Distributed-Memory Model
interconnection
network required.
Cash Coherence Problem
Share-Memory Model
Cashes do not contain different
values for the same memory element.
Distributed-Memory Model
Local Cash
Multicomputer System
Multicomputer System
Network Controller
Network Controller
Local Area Networks


Local area networks (LANs) connect computers
within a building or a enterprise network.
LAN network topologies:
Ring Network
Broadcast Bus
Wide Area Networks


A Wide Area Network (WAN) is a collection of
Local Area Networks (LANs) that have been
connected together.
The internet is an example of a WAN.
What are done by OS?

Process Management
–
–

Memory Management
–

–

Virtual memory
Input/Output Systems
–

Scheduling of process
Synchronization
Device drivers
Spooling
File Systems
Protection and Security
Applications/Services
Operating
System
Bare
Machine
Three Views of OS’s
Application
Programmer’s
View
Applications/Services
Operating
System
User’s
View
System
Programmer’s
View
Bare
Machine
OS is an extended machine
• Abstraction — hides complexity
• Provides high level operations
User’s View
Application
Programmer’s
View
Applications/Services
Operating
System
User’s
View
System
Programmer’s
View
Bare
Machine
OS is a virtual machine
• Virtualization — supports sharing
• Provides virtual CPU, memory, devices
Application Programmer’s View
Application
Programmer’s
View
Applications/Services
Operating
System
User’s
View
System
Programmer’s
View
Bare
Machine
OS is a resource manager
• Balance overall performance with individual needs
e.g., response time, deadlines
System Programmer’s View
Application
Programmer’s
View
Applications/Services
Operating
System
User’s
View
System
Programmer’s
View
Bare
Machine
Operating Systems Principles
Lecture 1: Introduction
Organization of
Operating Systems
Structure Organization of OS
User
Library
Calls
Kernel
Calls
Machine
Instructions
Applications
(system & user)
System
Library
Operating
System
Kernel
Hardware
Modes of CPU Execution
User
Library
Calls
Kernel
Calls
Machine
Instructions
Applications
(system & user)
System
Library
Operating
System
Kernel
Hardware
nonprivileged mode
privileged mode
SVCs are used to implement all kernel calls and form
the basic interface btw the OS kernel and the rest
of the software.
Supervisor Call (SVC)
User
Library
Calls
Kernel
Calls
Machine
Instructions
Applications
(system & user)
System
Library
SVC
Operating
System
Kernel
Hardware
nonprivileged mode
privileged mode
The Hardware Interface
User
Applications
(system & user)
System
Library
SVC
Operating
Operating
System
System
Kernel
Kernel
Hardware
Hardware


Applications and OS compiled into
machine instructions
Interrupts and Traps allow OS to
seize control
–
process management (time-sharing)
–
device management (I/O completion)
The Programming Interface
Invoking system services
• Library call (nonprivileged)
• Kernel call (privileged)
Library
Calls
Kernel
Calls
Machine
Instructions
User
Applications
(system & user)
System
Library
Operating
Operating
System
System
Kernel
Kernel
Hardware
Hardware
The User Interface

Text-based shell
e.g., Unix, MS Dos
–
–

command interpreter
shell scripts
Library
Calls
Graphics-based GUI
e.g., Mac, MS Windows
Kernel
–
–
–
–
windows
icons
menus
pointer
Calls
Machine
Instructions
User
Applications
(system & user)
System
Library
Operating
Operating
System
System
Kernel
Kernel
Hardware
Hardware
Runtime Organization
Service is
a Subroutine
Service is
an Autonomous Process
(client-server)
Operating Systems Principles
Lecture 1: Introduction
Operating System
Evolution & Concepts
History of Operating Systems

The First Generation (1945–55)
–

The Second Generation (1955–65)
–

Transistors and Batch Systems
The Third Generation (1965–1980)
–

Vacuum Tubes and Plugboards
ICs and Multiprogramming
The Fourth Generation (1980–Present)
–
Personal Computers
The First Generation (1945–55) 
Vacuum Tubes and Plugboards
The First Generation (1945–55) 
Vacuum Tubes and Plugboards
The First Generation (1945–55) 
Vacuum Tubes and Plugboards



Machines of the time were so primitive
that programs were often entered one bit
at time on rows of mechanical switches
(plugboards).
Programming languages were unknown (not
even assembly languages).
Operating systems were unheard of.
The Second Generation (1955–65) 
Transistors and Batch Systems


A batch system is one in which jobs are
bundled together with the instructions
necessary to allow them to be processed
without intervention.
Often jobs of a similar nature can be
bundled together to further increase
economy.
The Second Generation (1955–65) 
Transistors and Batch Systems
The Second Generation (1955–65) 
Transistors and Batch Systems
$JOB user_spec
$FORTRAN
source program cards
$LOAD
$RUN
data cards
$EOJ
;identify the user for accounting purposes
;load the FORTRAN compiler
$JOB user_spec
$LOAD application
$RUN
Data
$EOJ
;identify a new user
;load the compiled program
;run the program
;end of job
The Second Generation (1955–65) 
Transistors and Batch Systems
Monitor: another name of OS.
The Second Generation (1955–65) 
Transistors and Batch Systems
Memory Layout of
a Batch System
Monitor

(permanently resident)
User Space
(compilers,
programs,
data, etc.)

The monitor is system software
that is responsible for interpreting
and carrying out the instructions in
the batch jobs.
When the monitor started a job, it
handed over control of the entire
computer to the job, which then
controlled the computer until it
finished.
The Second Generation (1955–65) 
Transistors and Batch Systems

Advantages of batch systems
–
–

move much of the work of the operator to the computer
increased performance since it was possible for job to start
as soon as the previous job finished
Disadvantages
–
–
–
–
–
turn-around time can be large from user standpoint
more difficult to debug program
due to lack of protection scheme, one batch job can affect
pending jobs (read too many cards, etc)
a job could corrupt the monitor, thus affecting pending jobs
a job could enter an infinite loop
The Third Generation (1965–1980) 
ICs and Multiprogramming
Have more than one active
(running) program in memory at
any one time.
The Third Generation (1965–1980) 
ICs and Multiprogramming
Main features of this generation

CPU and I/O Overlap

Spooling
–

simultaneous peripheral operations on line
Time-sharing technique
The Third Generation (1965–1980) 
ICs and Multiprogramming
The typical CPU and I/O overlap pattern
in a single program
The Third Generation (1965–1980) 
ICs and Multiprogramming
Goal of multiprogramming 
Keep CPUs and and I/O devices busy.
The Third Generation (1965–1980) 
ICs and Multiprogramming

CPU Bound Programs
–
–

Perform calculation most of time
Scientific computation
I/O Bound Programs
–
–
Perform I/O most of time
Commercial data processing
The Third Generation (1965–1980) 
ICs and Multiprogramming
Time
Saved
The Third Generation (1965–1980) 
ICs and Multiprogramming



Spooling (simultaneous peripheral operations on line).
In spooling, a high-speed device like a disk
interposed between a running program and a lowspeed device involved with the program in
input/output.
Example: Instead of writing directly to a printer,
outputs are written to the disk.
–
–
Programs can run to completion faster; and
other programs can be initiated sooner when the printer
becomes available, the outputs may be printed.
The Third Generation (1965–1980) 
ICs and Multiprogramming
Time Sharing Technique
 A variant of multiprogramming technique.
 Each user has an on-line terminal.
 Because the user is present and interacting with
the computer, the computer system must respond
quickly to user requests, otherwise user
productivity could suffer.
 Timesharing systems were developed to
multiprogram large number of simultaneous
interactive users.
The Fourth Generation (1980–Present)
 Personal Computers


With the development of LSI circuits, chips,
operating system entered entered in the
personal computer and the workstation age.
Microprocessor technology evolved to the
point that it become possible to build
desktop computers as powerful as the
mainframes of the 1970s.
The Fourth Generation (1980–Present)
 Personal Computers

CP/M (Control Program of Microcomputers)
MS-Dos
Windows
Unix

GUI



The Evolution

Early systems  No Operating System

Batch Operating Systems

Multiprogramming Systems

Interactive operating Systems

Personal Computer and Workstation Operating
Systems

Real-time Operating Systems

Distributed Operating Systems