ICS 143 - Introduction to Operating Systems

Download Report

Transcript ICS 143 - Introduction to Operating Systems

Principles of
Operating Systems
Introduction and Overview
Prof. Dan Connors
Principles of Operating Systems Lecture 1
1
OS Staff
Instructor:
Prof. Dan Connors
Office: MW 12-2
CS Building 320
Email: [email protected]
Teaching Assistants:
TA Bryan Corell Email: [email protected] Principles of Operating Systems Lecture 1
2
Course logistics and details
 Course Web page http://web.cs.du.edu/~dconnors/courses/comp3361
 Lectures - MW 2:00-3:50
 Textbook:
Operating System Concepts -- 8th Edition
Silberschatz and Galvin, Addison-Wesley Inc.
 Alternate Book
 Principles of Operating Systems, L.F. Bic and A.C. Shaw, Prentice-Hall/Pearson
Education, 2003. ISBN 0130266116.
Principles of Operating Systems Lecture 1
3
Course logistics and details
Homework and Assignments
~5 written homework assignments in the quarter,
and 5 programming assignments (some knowledge of
C). Late homework will not be accepted.

Tests
Midterm - date to be announced, tentatively Week 5
in class
 2:00 pm - 3:50 pm
Friday
John Greene Hall
316 Mar 12, 2010 - Mar 12, 2010
Principles of Operating Systems Lecture 1
4
Grading Policy
Homework - 35%
Midterm 30% of the final grade
Final exam - 35% of the final grade
Final assignment of grades will be based on a
curve.
Principles of Operating Systems Lecture 1
5
Lecture Schedule
Week 1:
• Introduction to Operating Systems, Computer System
Structures, Operating System Structures
Week 2 : Process Management
• Processes and Threads, CPU Scheduling
Week 3: Process Management
• Process Synchronization
Week 4: Process Management
• Process Synchronization
Week 5: Storage Management
• Deadlocks
Principles of Operating Systems Lecture 1
6
Course Schedule
Week 6 - Storage Management
• Midterm exam, Memory Management
Week 7 - Storage Management
• Memory Mangement, Virtual Memory
Week 8 - I/O Systems
• Virtual Memory, Filesystem Interface,
Week 9 - Other topics
• FileSystems Implementation, I/O subsystems
Week 10 - Other topics
• Case study – UNIX, WindowsNT, course revision and summary.
Principles of Operating Systems Lecture 1
7
Introduction
What is an operating system?
Early Operating Systems
Simple Batch Systems
Multiprogrammed Batch Systems
Time-sharing Systems
Personal Computer Systems
Parallel and Distributed Systems
Real-time Systems
Principles of Operating Systems Lecture 1
8
What is an Operating System?
An OS is a program that acts an intermediary
between the user of a computer and computer
hardware.
Major cost of general purpose computing is
software.
OS simplifies and manages the complexity of running
application programs efficiently.
Principles of Operating Systems Lecture 1
9
Goals of an Operating System
Simplify the execution of user programs and
make solving user problems easier.
Use computer hardware efficiently.
Allow sharing of hardware and software resources.
Make application software portable and versatile.
Provide isolation, security and protection among
user programs.
Improve overall system reliability
error confinement, fault tolerance, reconfiguration.
Principles of Operating Systems Lecture 1
10
Why should I study Operating
Systems?
Need to understand interaction between the
hardware and applications
New applications, new hardware..
Need to understand basic principles in the design of
computer systems
efficient resource management, security, flexibility
Increasing need for specialized operating systems
e.g. embedded operating systems for devices - cell phones,
sensors and controllers
real-time operating systems - aircraft control, multimedia
services
Principles of Operating Systems Lecture 1
11
Principles of Operating Systems Lecture 1
12
Abstract View of System
User
1
compiler
User
2
assembler
User
3
...
Text editor
User
n
Database
system
System and Application Programs
Operating System
Computer
Hardware
Principles of Operating Systems Lecture 1
13
Multiprogramming
Use interrupts to run multiple programs
simultaneously
When a program performs I/O, instead of polling, execute
another program till interrupt is received.
Requires secure memory, I/O for each program.
Requires intervention if program loops
indefinitely.
Requires CPU scheduling to choose the next job
to run.
Principles of Operating Systems Lecture 1
14
Timesharing
Programs queued for execution in FIFO order.
Like multiprogramming, but timer device
interrupts after a quantum (timeslice).
Interrupted program is returned to end of FIFO
Next program is taken from head of FIFO
Control card interpreter replaced by command
language interpreter.
Principles of Operating Systems Lecture 1
15
Timesharing (cont.)
Interactive (action/response)
when OS finishes execution of one command, it seeks
the next control statement from user.
File systems
online filesystem is required for users to access data and
code.
Virtual memory
Job is swapped in and out of memory to disk.
Principles of Operating Systems Lecture 1
16
Moore’s Law- Growth in Transistor Density
Defined by Dr. Gordon Moore (Intel) in the late 1960s.
Predicts an exponential increase in component (transistor) density over time- a doubling time of 18
months.
Does not translate directly into performance or clock frequency.
Applicable to microprocessors, DRAMs, DSPs, and other microelectronics.
Transistors and Clock Rate
Processors got faster every 18 months (roughly 50% to 100%!)
Why bother with parallel programming? Just wait a year or two.
Slide Source: http://audilab.bmed.mcgill.ca/~funnell/Bacon/HW/trends.html
Current Trends
New Constraints
Power limits clock rates
Cannot squeeze more
performance from ILP (complex
cores) either!
But Moore’s Law continues!
What to do with all of those
transistors if everything else is
flat-lining?
Power Consumption is chief
concern for system architects
Power-Efficiency is the primary
concern of consumers of computer
systems!
Figure courtesy of Kunle
Olukotun, Lance Hammond, Herb
Sutter, and Burton Smith
Emerging Multicore
Processors
Processor cores
L2$
Shared
L2$
L3$
Shared
L3$
Monolithic Processor
Multicore Processors
Chip-multiprocessors (CMPs)
• Future computer systems will
integrate 10’s of multithreaded
processors on a single chip die,
resulting in 100’s of concurrent
program threads sharing system
resources
• Multiple processor cores
– Chip multiprocessor (CMP)
– Multithreaded (SMT/MT) in
each core
• Lower communication
costs
• Purpose-built low-latency
communication hardware
Processor cores
Shared
L2$
Shared
L3$
Run-time Adaptation/Optimization
Shared
L2$
Resource allocations
PMU Data
HW Alerts
Shared
L3$
On/off-line profile
Monitoring Engine
MT cores
Adjusted code
Operating
System
Static
Compiler
Dynamic
Compiler
 Continuous optimization: constantly adapt system to meet
current usage requirements and system characteristics
 System software continually and automatically adapt system
resource decisions and thread execution
Parallel Systems
Multiprocessor systems with more than one CPU
in close communication.
Improved Throughput, economical, increased
reliability.
Kinds:
• Vector and pipelined
• Symmetric and asymmetric multiprocessing
• Distributed memory vs. shared memory
Programming models:
• Tightly coupled vs. loosely coupled ,message-based vs. shared
variable
Principles of Operating Systems Lecture 1
23
Distributed Systems
Distribute computation among many processors.
Loosely coupled • no shared memory, various communication lines
client/server architectures
Advantages:
•
•
•
•
resource sharing
computation speed-up
reliability
communication - e.g. email
Applications - digital libraries, digital multimedia
Principles of Operating Systems Lecture 1
24
Real-time systems
Correct system function depends on timeliness
Feedback/control loops
Sensors and actuators
Hard real-time systems  Failure if response time too long.
Secondary storage is limited
Soft real-time systems Less accurate if response time is too long.
Useful in applications such as multimedia, virtual reality.
Principles of Operating Systems Lecture 1
25
Virtual Machines
 Logically treats hardware
and OS kernel as
hardware
processes
processes
processes
 Provides interface
identical to underlying
bare hardware.
kernel kernel kernel
Virtual machine
hardware
 Creates illusion of
multiple processes - each
with its own processor
and virtual memory