1.01

advertisement
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
Download