Principles of Operating Systems
Lecture 1 - Introduction and Overview
MWF 11:00- 11:50 a.m.
Mr Oguna
(
[email protected] )
[lecture slides contains some content adapted from :
Silberschatz textbook authors,John Kubiatowicz (Berkeley)
Anderson textbook,John Ousterhout(Stanford),Prof. Ardalan
Sani,)
]
Principles of Operating Systems -
Lecture 1 1
Course logistics and details
● ICS 143 Textbook
● Operating System Concepts – 9th Edition, Silberschatz, Galvin and Gagne, Addison-Wesley
Inc (Eighth, Seventh,Sixth and Fifth editions, and Java Versions are fine ).
● Other Suggested Books
● Modern Operating Systems, by Tanenbaum
● Lubomir Bic, online book -- zybooks
● https://www.zybooks.com/catalog/operating-systems/
● Operating Systems: Principles and Practice, by T. Anderson and M. Dahlin
(second edition)
2
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
• CPU Scheduling, Process Synchronization
● Week 4: Process Management
• Process Synchronization
● Week 5: Process Management
• Process Synchronization, Deadlocks
Principles of Operating Systems -
Lecture 1 3
Course Schedule
● Week 6 – Deadlocks, Storage Management
• Deadlocks, Midterm revision, exam
● Week 7 - Storage Management
• Memory Management, Paging, Segmentation
● Week 8 – Storage Management
• Virtual Memory
● Week 9 - FileSystems
• Virtual Memory, FileSystems Interface and Implementation
● Week 10 – I/O Subsystems
• Filesystems, I/O, course revision and summary.
Principles of Operating Systems -
Lecture 1 4
Introduction
● What is an operating system?
● Operating Systems History
● 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 5
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 6
Computer System
Components
● Hardware
● Provides basic computing resources (CPU, memory, I/O devices).
● Operating System
● Controls and coordinates the use of hardware among application programs.
● Application Programs
● Solve computing problems of users (compilers, database systems, video games,
business programs such as banking software).
● Users
● People, machines, other computers
Principles of Operating Systems -
Lecture 1 7
Abstract View of System
User
User User User
1
2 3 ... n
compiler assembler Text editor Database
system
System and Application Programs
Operating System
Computer
Hardware
Principles of Operating Systems -
Lecture 1 8
Operating System Views
● Resource allocator
● to allocate resources (software and hardware) of the
computer system and manage them efficiently.
● Control program
● Controls execution of user programs and operation of I/O
devices.
● Kernel
● The program that executes forever (everything else is an
application with respect to the kernel).
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..
● Inherent aspect of society today
● 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
Computer System Architecture
(traditional)
Systems Today
Principles of Operating Systems -
Lecture 1 13
Types of Operating System
● Monitors and Small Kernels
● special purpose and embedded systems, real-time systems
● Batch and multiprogramming
● Timesharing
● workstations, servers, minicomputers, timeframes
● Transaction systems
● Personal Computing Systems
● Mobile Platforms, devices (of all sizes)
Principles of Operating Systems -
Lecture 1 14
Early Systems - Bare Machine
(1950s)
Hardware – expensive ; Human – cheap
● Structure
● Large machines run from console
● Single user system
• Programmer/User as operator
● Paper tape or punched cards
● Early software From John Ousterhout slides
● Assemblers, compilers, linkers, loaders, device drivers, libraries of
common subroutines.
● Secure execution
● Inefficient use of expensive resources
● Low CPU utilization, high setup time.
Principles of Operating Systems -
Lecture 1 15
Simple Batch Systems
(1960’s)
● Reduce setup time by batching jobs with similar requirements.
● Add a card reader, Hire an operator
● User is NOT the operator
● Automatic job sequencing
● Forms a rudimentary OS.
● Resident Monitor From John Ousterhout slides
● Holds initial control, control transfers to job and then back to monitor.
● Problem
● Need to distinguish job from job and data from program.
Principles of Operating Systems -
Lecture 1 16
Batch Systems - Issues
● Solutions to speed up I/O:
● Offline Processing
● load jobs into memory from tapes, card reading and line printing are done
offline.
● Spooling
● Use disk (random access device) as large storage for reading as many input
files as possible and storing output files until output devices are ready to
accept them.
● Allows overlap - I/O of one job with computation of another.
● Introduces notion of a job pool that allows OS choose next job to run so as
to increase CPU utilization.
Principles of Operating Systems -
Lecture 1 17
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 18
Timesharing
Hardware – getting cheaper; Human – getting expensive
● 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 19
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 20
Personal Computing Systems
Hardware – cheap ; Human – expensive
● Single user systems, portable.
● I/O devices - keyboards, mice, display screens, small
printers.
● Laptops and palmtops, Smart cards, Wireless devices.
● Single user systems may not need advanced CPU
utilization or protection features.
● Advantages:
● user convenience, responsiveness, ubiquitous
Principles of Operating Systems -
Lecture 1 21
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 22
Parallel Computing Systems
ILLIAC 2 (UIllinois)
Climate modeling,
earthquake
simulations, genome
analysis, protein
folding, nuclear fusion
research, ….. K-computer(Japan)
Tianhe-1(China)
IBM Blue Gene
Connection Machine (MIT)
Principles of Operating Systems -
Lecture 1 23
Distributed Systems
Hardware – very cheap ; Human – very expensive
● 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
Distributed Computing Systems
Globus Grid Computing Toolkit Cloud Computing Offerings
PlanetLab Gnutella
Principles of Operating Systems - P2P Network
Lecture 1 25
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 26
Operating systems are
everywhere
27
Operating systems are
everywhere
28
Summary of lecture
● 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 29