Survey
* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project
CIS-410: Operating Systems
Spring 2008
Organizational Details
Class Meeting:
7:00-9:45pm, Monday, Room 252N
Instructor: Dr. Igor Aizenberg
Office: Aikin Building, 192
Phone (903 223 3183)
e-mail: igor.aizenberg@tamut.edu
Office hours:
Tuesday, Thursday, Friday 12-30 – 2-00 pm
Text Book
A. Silberschatz, P. B. Galvin and
G. Gagne "Operating System
Concepts" 7th Edn., John Wiley &
Sons,2005, ISBN 0-471-69466-5
Control
Exams (open book, open notes):
Midterm 1:
Midterm 2:
Final Exam:
Homework
March 3, 2007
April 14, 2007
May 12, 2007
Grading
Grading Method
Homework and preparation:
Midterm Exam 1:
Midterm Exam 2:
Final Exam:
Grading Scale:
90%+ A
80%+ B
70%+ C
60%+ D
less than 60% F
10%
25%
30%
35%
Chapter 1: Introduction
What we will study?
What Operating Systems Do
Computer-System Organization
Computer-System Architecture
Operating-System Structure
Operating-System Operations
Process Management
Memory Management
Storage Management
Protection and Security
Modern Operating Systems: Windows XP and Linux
Operating System Concepts – 7th Edition, Jan 12, 2005
1.7
Silberschatz, Galvin and Gagne ©2005
Objectives
To provide a grand tour of the major operating systems
components
To provide coverage of basic computer system organization
To learn basic ideas behind the modern operating systems.
To learn basic issues in operating system design and
implementation.
To allow you to use an operating system to control your computer.
To give you the ability to quickly learn new operating systems.
Operating System Concepts – 7th Edition, Jan 12, 2005
1.8
Silberschatz, Galvin and Gagne ©2005
What is an Operating System?
An Operating System is a program that acts as an
intermediary between a user of a computer and the
computer hardware.
Operating system goals:
Execute user programs and make solving user problems
easier.
Make the computer system convenient to use.
Use the computer hardware in an efficient manner.
Operating System Concepts – 7th Edition, Jan 12, 2005
1.9
Silberschatz, Galvin and Gagne ©2005
Computer System Structure
Computer system can be divided into four components
Hardware – provides basic computing resources
Operating system
Controls and coordinates use of hardware among various
applications and users
Application programs – define the ways in which the system
resources are used to solve the computing problems of the
users
CPU, memory, I/O devices
Word processors, compilers, web browsers, database
systems, video games
Users
People, machines, other computers
Operating System Concepts – 7th Edition, Jan 12, 2005
1.10
Silberschatz, Galvin and Gagne ©2005
Four Components of a Computer System
Operating System Concepts – 7th Edition, Jan 12, 2005
1.11
Silberschatz, Galvin and Gagne ©2005
Operating System Definition
OS is a resource allocator
Manages all resources
Decides between conflicting requests for efficient and fair
resource use
OS is a control program
Controls execution of programs to prevent errors and improper
use of the computer
Operating System Concepts – 7th Edition, Jan 12, 2005
1.12
Silberschatz, Galvin and Gagne ©2005
Operating System Definition (Cont.)
No universally accepted definition
“Everything a vendor ships when you order an operating system”
is good approximation
But varies wildly
“The one program running at all times on the computer” is the
kernel. Everything else is either a
•
system program (ships with the operating system) or
•
an application program
Operating System Concepts – 7th Edition, Jan 12, 2005
1.13
Silberschatz, Galvin and Gagne ©2005
Computer Startup
bootstrap program is loaded at power-up or reboot
Typically stored in ROM or EPROM, generally known as
firmware
Initializates all aspects of system
Loads operating system kernel and starts execution
Operating System Concepts – 7th Edition, Jan 12, 2005
1.14
Silberschatz, Galvin and Gagne ©2005
Historical Overview
Electronic Computers
•“The 1st Generation”: vacuum tube technology (1945-1955)
A few milliseconds per arithmetic operation
•“The 2nd Generation”: transistor technology (1955-1965)
High-level languages, compilers, separate I/O processors
•“The 3rd Generation”: integrated-circuit technology (1965-1975)
Operating systems, Microprogramming, multiprogramming, pipelining, cache memories
•“The 4th Generation”: VLSI (Very Large Scale Integration) (1975- present)
Microprocessors, virtual memories, concurrency, networks, high resolution graphics
•Beyond the 4th Generation: artificial intelligence, massively
parallel machines, extensively distributed systems
Operating System Concepts – 7th Edition, Jan 12, 2005
1.15
Silberschatz, Galvin and Gagne ©2005
1st and 3rd Generations of Computers
1st Generation Computer,
1954
Operating System Concepts – 7th Edition, Jan 12, 2005
3rd Generation Computer
IBM-360, 1966
1.16
Silberschatz, Galvin and Gagne ©2005
History of Operating Systems: Phases
Phase 1: Hardware is expensive, humans are cheap (1945-1965)
User at console: single-user systems
Batching systems
Multi-programming systems
Phase 2: Hardware is cheap, humans are expensive (1965-1981)
Time sharing: Users use cheap terminals and share servers
Phase 3: Hardware is very cheap, humans are very expensive (1981-1990th)
Personal computing: One system per user
Distributed computing: lots of systems per user
Phase 4: Ubiquitous computing (1990th and beyond)
Computers everywhere:
Cell phone, mp3 player, DVD player, etc.
Operating System Concepts – 7th Edition, Jan 12, 2005
1.17
Silberschatz, Galvin and Gagne ©2005
History of Operating Systems: Phases
Phase 1: Hardware is expensive, humans are cheap
User at console: single-user systems
Batching systems
Multi-programming systems
Phase 2: Hardware is cheap, humans are expensive
Time sharing: Users use cheap terminals and share servers
Phase 3: Hardware is very cheap, humans are very expensive
Personal computing: One system per user
Distributed computing: lots of systems per user
Phase 4: Richer services
Real-time operating systems
Operating System Concepts – 7th Edition, Jan 12, 2005
1.18
Silberschatz, Galvin and Gagne ©2005
A Brief History of Operating Systems
Hand programmed machines (‘45-‘55)
Single user systems
OS = loader + libraries of common subroutines
Problem: low utilization of expensive components
Execution time
= % utilization
Execution time +
Card reader time
Operating System Concepts – 7th Edition, Jan 12, 2005
1.19
Silberschatz, Galvin and Gagne ©2005
Batch/Off-line processing (‘55-‘65)
Batching v. sequential execution of jobs
Card Reader:
CPU:
Read Job 1
Job 2
CPU:
Job 2
Execute Job 1
Print Job 1
Printer:
Card Reader:
Job 3
Read Batch 1
Batch 2
Operating System Concepts – 7th Edition, Jan 12, 2005
Job 2
Job 3
Batch 3
Execute Batch 1
Printer:
Job 3
Batch 2
Print Batch 1
1.20
Batch 3
Batch 2
Batch 3
Silberschatz, Galvin and Gagne ©2005
Batch processing (‘55-‘65)
Operating system = loader + sequencer + output processor
User Data
User Program
Tape
“System Software”
Tape
Operating System
Card
Reader
Compute
Tape
Tape
Output
Input
Operating System Concepts – 7th Edition, Jan 12, 2005
Printer
1.21
Silberschatz, Galvin and Gagne ©2005
Multiprogramming (‘65-‘80)
Keep several jobs in memory and multiplex CPU between jobs
...
User Program n
program P
begin
:
Read(var)
:
end P
Simple, “synchronous” input:
What to do while we wait
for the I/O device?
User Program 2
User Program 1
“System Software”
Operating System
Operating System Concepts – 7th Edition, Jan 12, 2005
system call Read()
begin
StartIO(input device)
WaitIO(interrupt)
EndIO(input device)
:
end Read
1.22
Silberschatz, Galvin and Gagne ©2005
Multiprogramming (‘65-‘80)
Keep several jobs in memory and multiplex CPU between jobs
Program 1
I/O
Device
main{
User Program n
...
OS
k: read()
read{
startIO()
waitIO()
User Program 2
User Program 1
“System Software”
endio()
k+1:
interrupt
}
Operating System
}
Operating System Concepts – 7th Edition, Jan 12, 2005
1.23
Silberschatz, Galvin and Gagne ©2005
Multiprogramming (‘65-‘80)
Keep several jobs in memory and multiplex CPU between jobs
Program 1
...
Program 2
I/O
Device
main{
User Program n
k: read()
read{
startIO()
schedule()
}
User Program 2
User Program 1
“System Software”
OS
endio{
main{
interrupt
schedule()
}
k+1:
Operating System
}
Operating System Concepts – 7th Edition, Jan 12, 2005
1.24
Silberschatz, Galvin and Gagne ©2005
History of Operating Systems: Phases
Phase 1: Hardware is expensive, humans are cheap
User at console: single-user systems
Batching systems
Multi-programming systems
Phase 2: Hardware is cheap, humans are expensive
Time sharing: Users use cheap terminals and share servers
Phase 3: Hardware is very cheap, humans are very expensive
Personal computing: One system per user
Distributed computing: lots of systems per user
Phase 4: Richer services
Real-time operating systems
Operating System Concepts – 7th Edition, Jan 12, 2005
1.25
Silberschatz, Galvin and Gagne ©2005
Timesharing (‘70- )
A timer interrupt is used to multiplex CPU among jobs
Program 1
OS
Program 2
main{
...
User Program n
k:
timer
interrupt
schedule{
main{
}
User Program 2
User Program 1
schedule{
“System Software”
k+1:
Operating System
Operating System Concepts – 7th Edition, Jan 12, 2005
timer
interrupt
}
timer
interrupt
1.26
schedule{
Silberschatz, Galvin and Gagne ©2005
History of Operating Systems: Phases
Phase 1: Hardware is expensive, humans are cheap
User at console: single-user systems
Batching systems
Multi-programming systems
Phase 2: Hardware is cheap, humans are expensive
Time sharing: Users use cheap terminals and share servers
Phase 3: Hardware is very cheap, humans are very expensive
Personal computing: One system per user
Distributed computing: lots of systems per user
Phase 4: Richer services
Real-time operating systems
Operating System Concepts – 7th Edition, Jan 12, 2005
1.27
Silberschatz, Galvin and Gagne ©2005
Operating Systems for PCs
Personal computing systems
Single user
Utilization is no longer a concern
Emphasis is on user interface and API
Many services & features not present
Evolution
Initially: OS as a simple service provider (simple
libraries)
Now: Multi-application systems with support for
coordination and communication
Growing security issues (e.g., online commerce,
medical records)
Operating System Concepts – 7th Edition, Jan 12, 2005
1.28
Silberschatz, Galvin and Gagne ©2005
Distributed Operating Systems
Typically support distributed services
Possibly employ multiple processors
Sharing of data and coordination across multiple systems
Loosely coupled v. tightly coupled systems
High availability & reliability requirements
User
Program
User
Program
OS
process
management
OS
process management
memory management
file system
name services
mail services
CPU
CPU
CPU
OS
NetworkLAN/WAN
Operating System Concepts – 7th Edition, Jan 12, 2005
1.29
Silberschatz, Galvin and Gagne ©2005
History of Operating Systems: Phases
Phase 1: Hardware is expensive, humans are cheap
User at console: single-user systems
Batching systems
Multi-programming systems
Phase 2: Hardware is cheap, humans are expensive
Time sharing: Users use cheap terminals and share servers
Phase 3: Hardware is very cheap, humans are very expensive
Personal computing: One system per user
Distributed computing: lots of systems per user
Phase 4: Connecting people and their machines
Intellectual property issues
Information organization
Operating System Concepts – 7th Edition, Jan 12, 2005
1.30
Silberschatz, Galvin and Gagne ©2005