Title: CS 414415 Systems Programming and Operating Systems
1CS 414/415Systems Programming and Operating
Systems
- Spring 2005
- Instructor Ranveer Chandra
2Administrative
- Instructor Ranveer Chandra, 4118 Upson
- Lectures (Note time change)
- CS 414 M, W 125 215 PM
- T 335 425 PM
- CS 415 F 125 215 PM
- www.cs.cornell.edu/courses/cs414/2005sp
3Course Help
- Mailing list cs414-l_at_cs.cornell.edu
- http//lists.cs.cornell.edu/mailman/listinfo/cs414
-l - Course staff, office hours
- www.cs.cornell.edu/courses/cs414/2005sp/coursehelp
.html - Required Textbook
- Operating Systems Concepts 7th Edition
- Silberschatz, Galvin and Gagne
4CS 414 Overview
- Prerequisite
- Mastery of CS 314 material
- CS 414 Operating Systems
- Fundamentals of OS design
- How parts of the OS are structured
- What algorithms are commonly used
- What are the mechanisms and policies used
- Evaluations
- Weekly homework
- Midterm, Exams
- Readings research papers
5CS 415 Overview
- CS 415 Practicum in Operating Systems
- Projects that complement course material
- Expose you to cutting edge system design
- Best way to learn about OSs
- This semester
- Build various components of operating systems
- Threads, networking, file systems, ubiquitous
computing, - Will use TabletPCs
- Work in groups of two or more
- Weekly sections on the projects
- Enrollment in CS 415 is compulsory!
6Grading
- CS 414 Operating Systems
- Midterm 30
- Final 50
- Assignments 10
- Subjective 10
- CS 415 Systems Programming
- Six projects 100
- This is a rough guide
7Academic Integrity
- Submitted work should be your own
- Acceptable collaboration
- Clarify problem, C syntax doubts, debugging
strategy - Dishonesty has no place in any community
- May NOT be in possession of someone elses
homework/project - May NOT copy code from another group
- May NOT copy, collaborate or share
homework/assignments - University Academic Integrity rules are the
general guidelines - Penalty is an F in CS 414 and CS 415
8Course Material
- Introduction, history, architectural support
- Concurrency, processes, threads
- Synchronization, monitors, semaphores
- Networking, distributed systems
- Memory Management, virtual memory
- Storage Management, I/O, filesystems
- Security
- Case studies Windows XP, Linux
9Why take this course?
- Operating systems are the crunch of a computer
system - Makes reality pretty
- OS is magic to most people. We will rip it open
- Operating systems is a key example of complex
systems - Huge, parallel, very expensive, not understood
- Windows NT/XP 10 years, 1000s of people,
- Complex systems are the most interesting
- Internet, air traffic control, governments,
weather, relationships, etc - How to deal with this complexity?
10What is an Operating System?
- Magic!
- A number of definitions
- Just google for define Operating System
- A few of them
- Everything a vendor ships when you order an
operating system - The one program running at all times on the
computer - A program that manages all other programs in a
computer - Required memory varies less than 1 MB to a few
GB
11Operating System Definition
Definition An Operating System (OS) provides a
virtual machine on top of the real hardware,
whose interface is more convenient than the raw
hardware interface.
Applications
OS interface
Operating System
Physical machine interface
Hardware
Advantages Easy to use, simpler to code, more
reliable, more secure, You can say I want to
write XYZ into file ABC
12Operating Systems Services
- Manage physical resources
- It drives various devices
- Eg CPU, memory, disks, networks, displays,
cameras, etc - Provide abstractions for physical resources
- Provide virtual resources and interfaces
- Eg files, directories, users, threads,
processes, etc - Simplify programming through high-level
abstractions - Provide users with a stable environment, mask
failures - Isolate and mediate between entities
- Trusted intermediary for untrusted applications
13What is in an OS?
Quake
Sql Server
Applications
Windowing graphics
Shells
System Utils
OS Interface
Naming
Windowing Gfx
Operating System Services
Virtual Memory
Networking
Access Control
Generic I/O
File System
Process Management
Memory Management
Device Drivers
Physical m/c Intf
Interrupts, Cache, Physical Memory, TLB, Hardware
Devices
Logical OS Structure
14Issues in OS Design
- Structure how is an operating system organized ?
- Sharing how are resources shared among users ?
- Naming how are resources named by users or
programs ? - Protection how is one user/program protected
from another ? - Security how to authenticate, control access,
secure privacy ? - Performance why is it so slow ?
- Reliability and fault tolerance how do we deal
with failures ? - Extensibility how do we add new features ?
15Issues in OS Design
- Communication how can we exchange information ?
- Concurrency how are parallel activities created
and controlled ? - Scale, growth what happens as demands or
resources increase ? - Persistence how can data outlast processes that
created them - Compatibility can we ever do anything new ?
- Distribution accessing the world of information
- Accounting who pays bills, and how to control
resource usage
16Why is this material critical?
- Concurrency
- Therac-25, Shuttle livelock 1981
- Communication
- Air Traffic Control System
- Persistence
- Denver Airport
- Virtual Memory
- Blue Screens of Death
- Security
- IRS
17BSOD Melbourne
18BSOD Mesquite, TX
19History of Operating Systems
- Initially, the OS was just a run-time library
- You linked your application with the OS,
- loaded the whole program into memory, and ran it
- How do you get it into the computer? Through the
control panel! - Simple batch systems (mid1950s mid 1960s)
- Permanently resident OS in primary memory
- Loaded a single job from card reader, ran it,
loaded next job... - Control cards in the input file told the OS what
to do - Spooling allowed jobs to be read in advance onto
tape/disk
Compute
I/O
20Multiprogramming Systems
- Multiprogramming systems increased utilization
- Developed in the 1960s
- Keeps multiple runnable jobs loaded in memory
- Overlaps I/O processing of a job with computation
of another - Benefits from I/O devices that can operate
asynchronously - Requires the use of interrupts and DMA
- Optimizes for throughput at the cost of response
time
Compute
I/O
Compute
I/O
21Time Sharing Systems
- Timesharing (1970s) allows interactive computer
use - Users connect to a central machine through a
terminal - User feels as if she has the entire machine
- Based on time-slicing divides CPU equally among
the users - Allows active viewing, editing, debugging,
executing process - Security mechanisms needed to isolate users
- Requires memory protection hardware for isolation
- Optimizes for response time at the cost of
throughput
Compute
22Personal Operating Systems
- Earliest ones in the 1980s
- Computers are cheap ? everyone has a computer
- Initially, the OS was a library
- Advanced features were added back
- Multiprogramming, memory protection, etc
23Distributed Operating Systems
- Cluster of individual machines
- Over a LAN or WAN or fast interconnect
- No shared memory or clock
- Asymmetric vs. symmetric clustering
- Sharing of distributed resources, hardware and
software - Resource utilization, high availability
- Permits some parallelism, but speedup is not the
issue - SANs, Oracle Parallel Server
24Parallel Operating Systems
- Multiprocessor or tightly coupled systems
- Many advantages
- Increased throughput
- Cheaper
- More reliable
- Asymmetric vs. symmetric multiprocessing
- Master/slave vs. peer relationships
- Examples SunOS Version 4 and Version 5
25Real Time Operating Systems
- Goal To cope with rigid time constraints
- Hard real-time
- OS guarantees that applications will meet their
deadlines - Examples TCAS, health monitors, factory control
- Soft real-time
- OS provides prioritization, on a best-effort
basis - No deadline guarantees, but bounded delays
- Examples most electronic appliances
- Real-time means predictable
- NOT fast
26Ubiquitous Systems
- PDAs, personal computers, cellular phones,
sensors - Challenges
- Small memory size
- Slow processor
- Different display and I/O
- Battery concerns
- Scale
- Security
- Naming
- We will look into some of these problems
27Over the years
- Not that batch systems were ridiculous
- They were exactly right for the tradeoffs at the
time - The tradeoffs change
- Need to understand the fundamentals
- So you can design better systems for tomorrows
tradeoffs