2About the Instructor Instructor – Ashvin Goel Contact informationGood way to contact meWebpage:Office: SF2001BOffice Hour: Fri, 2-3pm, starting next weekResearch InterestsOperating systems
3What is an Operating System? Discuss what is an OS
4What is an Operating System? Layer of software between hardware and applicationsApplication is usually dedicated to a single taskOS serves all applications, also called systems softwareOS manages h/w resources, providingAbstractionOS simplifies interface to hardware (e.g., access disk as files)What problems occur otherwise?Isolation and securityOS isolates applications from each other, itself and hardwareOS isolates users from each otherWhat resources are being managed?What resources are being managed?Physical hardware on various types of devices, including desktops, servers, smartphones, embedded systems (QNX), routers, (Cisco network OS)We will see more examples later
5Aren’t Operating Systems Dead? The OS I use has already been written, I doubt it will be my job to write another oneWhy should I study operating systems as an undergraduate?Haven’t OS developers figured everything already?What more is there to do?
6Why Study Operating Systems? Studying OS design IS studying design of large software systems … its fun too?OS hacking will make you a better programmer/thinkerOS is really large (Windows is 50 million lines+)OS manages concurrencyConcurrency leads to interesting programming challengesInteresting challenges can lead to deep thoughts, wisdom?OS manages raw hardwareProgramming raw hardware is challenging: timing dependent behavior, undocumented behavior, h/w bugsOS must be efficientApplications can use resources maximallyOS fails machine failsBasis of system security, helps focus on reliability, availability
7Why Won’t Operating Systems Go Away? Consider the design of MP3 playerInvolves 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 PCOperating system ideas applicable to all large application software … why?Virtualization software (e.g., vmware, kvm), manages virtual machine “hardware”Batch processing software (e.g., Hadoop) manages clusterCloud software (e.g., Amazon S3, Google drive) manages geographically distributed hardwareBrowser manages?Why OS ideas applicable: because all large application software manage resources
9OS in the Newsnytimes.com/2014/08/26/technology/26iht-chinatech26.htmlChina Developing an Operating System to Take on Microsoft, Google and AppleRivals 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 imminentThe 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.
10Goals of the Course Learn about operating systems Understand the principles behind the design of an OSUnderstand the requirements, and challengesSpace of possible solutionsBuild simple software that helps clarify OS conceptsReal systems are more difficult to build than to explainThe devil is often in the detailsOther benefitsGain significant implementation and debugging experienceLearn to use software management tools
11Course Contents Introduction to OS concepts Threads and processes Synchronization and concurrencyMemory management, virtual memoryDisk management and file systemsTime permittingAtomicity and consistencyVirtualizationIntro to cloud computing
12Lab Assignments There will be 5-6 labs in the course Labs will focus on learning OS conceptsLab 1: Review of C, simple data structuresLab 2: Cooperative ThreadsLab 3: Preemptive Threads (builds on Lab 2)Lab 4: Concurrent Web ServerLab 5: Caching Web Server (builds on Lab 4)Lab 6: Undecided
13What to Expect From Lab Assignments Expect to spend a lot of time on the lab assignmentsThe labs give specifications, not implementationsAllows for imaginationAllows for errors and frustrationIt will be good to think of your design, before you codeAssume that you will do the design/coding outside lab hoursYou will work individually for the lab assignmentsCan’t complain about partners inactivity!13
14Suggested TextbooksModern 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
15Class Web Site Class web site available from instructor’s home page Provides course outline, instructor’s lecture notes, lab infoPiazza web siteAnnouncementsForumUoT PortalPast examsGrades
16Grading Labs - 25% Mid-term - 25% Final - 50% Policies Location: SF2202, SF3202Date: Wed, Oct 29Time: 18:30-19:45Final - 50%PoliciesNo extensions to deadlinesQuestions should be addressed on Piazza web siteRead course webpage
17About the Instructor Instructor – Ashvin Goel Contact informationGood way to contact meWebpage:Office: SF2001BOffice Hour: Fri, 2-3pm