Introduction to OS - University of Toronto

advertisement
Operating Systems
ECE344
Introduction
Ashvin Goel
ECE
University of Toronto
About the Instructor

Instructor – Ashvin Goel

Contact information
o
Email: ashvin@eecg.toronto.edu
 Good way to contact me
o
o
o

Webpage: http://www.eecg.toronto.edu/~ashvin
Office: SF2001B
Office Hour: Fri, 2-3pm, starting next week
Research Interests
o
Operating systems
2
What is an Operating System?
3
What is an Operating System?

Layer of software between hardware and applications
o
o

Application is usually dedicated to a single task
OS serves all applications, also called systems software
OS manages h/w resources, providing
o
Abstraction
 OS simplifies interface to hardware (e.g., access disk as files)
 What problems occur otherwise?
o
Isolation and security
 OS isolates applications from each other, itself and hardware
 OS isolates users from each other
 What problems occur otherwise?

What resources are being managed?
4
Aren’t Operating Systems Dead?


The OS I use has already been written, I doubt it will
be my job to write another one
Why should I study operating systems as an
undergraduate?
o
o
Haven’t OS developers figured everything already?
What more is there to do?
Why Study Operating Systems?


Studying OS design IS studying design of large
software systems … its fun too?
OS hacking will make you a better programmer/thinker
o
o
OS is really large (Windows is 50 million lines+)
OS manages concurrency
 Concurrency leads to interesting programming challenges
 Interesting challenges can lead to deep thoughts, wisdom?
o
OS manages raw hardware
 Programming raw hardware is challenging: timing dependent
behavior, undocumented behavior, h/w bugs
o
OS must be efficient
 Applications can use resources maximally
o
OS fails  machine fails
 Basis of system security, helps focus on reliability, availability
Why Won’t Operating Systems Go Away?

Consider the design of MP3 player
o

Involves many OS issues: OS implements file system for
storing music files, reads music from disc and buffers it in
memory, controls volume, display, wireless network access,
communication with PC
Operating system ideas applicable to all large
application software … why?
o
o
o
o
Virtualization software (e.g., vmware, kvm), manages virtual
machine “hardware”
Batch processing software (e.g., Hadoop) manages cluster
Cloud software (e.g., Amazon S3, Google drive) manages
geographically distributed hardware
Browser manages?
8
OS in the News

nytimes.com/2014/08/26/technology/26iht-chinatech26.html
o

China Developing an Operating System to Take on Microsoft,
Google and Apple
http://fortune.com/tag/mobile-operating-system/
o
o
o
Rivals to Google’s Android and Apple’s iOS operating
systems have emerged in Asia, suggesting that a fierce global
war over dominance in mobile computing is imminent
The first contender for shaking up the world’s $341.4-billion
mobile handset market is the China Operating System (COS),
developed jointly by the Chinese Academy of Sciences and …
The second up-and-comer is Tizen, developed by South
Korean electronics giant Samsung with … Samsung not only
wants Tizen to become as big a brand name as Google’s
Android and Apple’s iOS, it also wants to see its software
used in cars, smart appliances, and televisions.
9
Goals of the Course

Learn about operating systems
o
Understand the principles behind the design of an OS
 Understand the requirements, and challenges
 Space of possible solutions

Build simple software that helps clarify OS concepts
o
o

Real systems are more difficult to build than to explain
The devil is often in the details
Other benefits
o
o
Gain significant implementation and debugging experience
Learn to use software management tools
10
Course Contents

Introduction to OS concepts

Threads and processes

Synchronization and concurrency

Memory management, virtual memory

Disk management and file systems

Time permitting
o
o
o
Atomicity and consistency
Virtualization
Intro to cloud computing
11
Lab Assignments

There will be 5-6 labs in the course

Labs will focus on learning OS concepts
o
o
o
o
o
o
Lab 1: Review of C, simple data structures
Lab 2: Cooperative Threads
Lab 3: Preemptive Threads (builds on Lab 2)
Lab 4: Concurrent Web Server
Lab 5: Caching Web Server (builds on Lab 4)
Lab 6: Undecided
12
What to Expect From Lab Assignments

Expect to spend a lot of time on the lab assignments
o
o
o
o
o

The labs give specifications, not implementations
Allows for imagination
Allows for errors and frustration
It will be good to think of your design, before you code
Assume that you will do the design/coding outside lab hours
You will work individually for the lab assignments
o
Can’t complain about partners inactivity!
13
Suggested Textbooks
Modern Operating Systems, 3nd Edition
A. Tannenbaum
Operating System Concepts, 8th Edition
A. Silberschatz, P. Galvin, G. Gagne
Principles of Computer System Design
J. Saltzer, M. Frans Kaashoek
14
Class Web Site

Class web site available from instructor’s home page
o
o

Piazza web site
o
o

http://www.eecg.toronto.edu/~ashvin/courses/ece344/current
Provides course outline, instructor’s lecture notes, lab info
Announcements
Forum
UoT Portal
o
o
Past exams
Grades
15
Grading

Labs - 25%

Mid-term - 25%
o
o
o
Location: SF2202, SF3202
Date: Wed, Oct 29
Time: 18:30-19:45

Final - 50%

Policies
o
o
o
No extensions to deadlines
Questions should be addressed on Piazza web site
Read course webpage
16
About the Instructor

Instructor – Ashvin Goel

Contact information
o
Email: ashvin@eecg.toronto.edu
 Good way to contact me
o
o
o
Webpage: http://www.eecg.toronto.edu/~ashvin
Office: SF2001B
Office Hour: Fri, 2-3pm
17
Download