Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Operating Systems CSE 411 Introduction and Overview Sept. 5 2006 - Lecture 1 Instructor: Bhuvan Urgaonkar About Me • Bhuvan Urgaonkar – Ph.D., Sept. 2005, Univ. of Mass. Amherst – Research areas • Operating systems, Distributed systems, Computer networks – Office hours: Thu 5-7 PM, or by appointment – Office: 338D, IST Building – Email: bhuvan @ cse Welcome! Administrative Stuff Teaching Assistants • Yuan Fang – Office hours: M 10-11 AM, W 11.30-12.30 PM, 346D – Email: yufang @ cse • Arjun R. Nath – Office hours: Tue 5-7 PM – Email: anath @ cse Online Resources and Text-book • Course Web page: – http://www.cse.psu.edu/~bhuvan/teaching/fall06/411/411.html • All material will be available via ANGEL – Please seek help from the TAs if needed • Textbook – Operating Systems Concepts, 7th ed. Silberschatz, Galvin, and Gagne Course Mailing List • Via ANGEL – Use with care • I will send a test email, please respond to my email address if you don’t receive it by Friday • Welcome to write to me or the TAs – Make sure to include “411” in the subject Grading • • • • • Quizzes (approx. one per week): 15% Written home-works (5): 15% Projects (3): 35% Exams (3): 35% 90+: A, 75-89: (A, B], 65-74: (B, C], … – Subject to change; will not make it stricter – No relative grading - relax :) Grading • Projects will be done in groups of 2 – One group of size 3 will be allowed if needed – If your partner drops the course … • 2 Exams, each on a different subset of the material; final exam comprehensive • Late policy: – Strict deadlines for quizzes and home-works – Loss @ 20% per extra day for projects – Inform TAs well in advance if there is a real reason for a delay in project submission – Same for conflict exams Grading • Projects – 50% grade on how functional your project is – The other 50% on your write-up and presentation • We will give instructions on what we expect when we make the projects available • Quizzes: – Online on ANGEL – Multiple-choice, mostly Computing Resources • Solaris or Linux accounts for projects • Email me or the TAs if you don’t have an account or have any doubts/problems Academic Honesty • Do all assignments on your own – Quizzes, home-works, projects • We will use software to compare project source codes – Both partners on each team are expected to know everything about each project Assumed Background • First course on algorithms and data structures • Comfortable programming in C/C++ – Comfortable with a debugger like gdb • Preliminary understanding of computer architecture – We will cover some basics in this course • Talk to me if you have doubts • Background quiz to be turned in by next Monday Before We Begin … • Some advice – Speak up in class, ask questions – Attend all classes • Hint: Ideas concerning homeworks, exam questions, … – – – – Do all assignments on your own! Make good use of office hours Bring printouts to class and take notes on them Read text-book soon after class • Sections to read will be made available on the Web site alongside lecture notes • Even better: read before class and ask questions Operating Systems: Introduction & Background What is an Operating System (OS)? • Literal meaning – Software that helps operate a computer • Lack of consensus on the term operate • Overloaded term – Software that runs on a computer when nothing else is running (e.g., right after it boots up => kernel) • Very restrictive, what about dynamically loaded device drivers? – Windows = Any other OS + Windows Media Player + … • Very inclusive, why not everything else in the world? What is an OS • There is no single truth here – Our OS somewhere between these extremes • Definition using negation – Applications • Moving the burden to defining an application :) – OS = all software minus applications • Helps the applications use the computer • Helps manage the resources of the computer Why do we need an OS? • Why not provide this functionality in hardware? – Why this separate piece of software? A Little Bit of History The Dark Ages (1940s - 60s) Hardware: expensive; humans: cheap • Evolution of functionality – Single user – Batch processing – Overlap of I/O and computation – Multi-programming 1. Single User • One user at a time on console • Computer executes one function at a time – No overlap: computation & I/O • User must be at console to debug Multiple users => inefficient use of machine 2. Batch Processing • Execute multiple “jobs” in batch: – – – – Load program Run Print results, dump machine state Repeat • Users submit jobs (on cards or tape) • Human schedules jobs • A program loads & runs jobs – The Operating System More efficient use of machine, complicates debugging 3. Overlap I/O and Computation • Before: machine waits for I/O to complete • New approach: more work by the OS – Allow CPU to execute while waiting – Add buffering • Data fills “buffer” and then output – and interrupt handling • I/O events trigger a signal (“interrupt”) More efficient use of machine, but still one job at a time 4. Multiprogramming • Allow several programs to run at same time – Run one job until I/O – Run another job, etc. • OS manages interaction between programs: – Which jobs to start – Protects program’s memory from others – Decides which to resume when CPU available So what does an OS do? • Two kinds of functionality – Management of computer resources • Sharing CPU between tasks • Memory management – Certain services to users • Load programs, run them OS Complexity • Increased functionality & complexity • First OS failures – Multics (GE & MIT): announced 1963, released 1969 – OS/360 released with 1000 known bugs • Need to treat OS design scientifically • Managing complexity becomes key to… The Renaissance (1970s) Hardware: cheap; humans: expensive • Users share system via terminals • The UNIX era – Multics: • army of programmers, six years – UNIX: • three guys, two years • “Shell”: composable commands • No distinction between programs & data • But: response time & thrashing The Industrial Revolution (1980s) Hardware very cheap; humans expensive • Widespread use of PCs – IBM PC: 1981, Macintosh: 1984 • Simple OS (DOS, MacOS) – No multiprogramming, concurrency, memory protection, virtual memory, … – Later: networking, file-sharing, remote printing… – GUI added to OS (“WIMP”) The Modern Era (1990s-now) Hardware cheap; processing demands increasing • “Real” operating systems on PCs – NT (1991); Mac OS X; Linux • Different modalities: – – – – Parallel: Multiple processors, one machine Distributed: Multiple networked processors Real-time: Strict or loose deadlines Sensor networks: Many small computers OSes Today • Active research area (so I like to believe!) – Top CS conferences, several distinguished researchers/groups – Intersects with theory/algos., software engg., architecture, distrib. comp. • Major market presence – Microsoft, Apple, HP, … • New environments, new devices – Web, P2P systems, Internet apps, sensor networks, mobile devices, multimedia, … • New challenges – Distributed systems, heterogeneous devices, ubiquitous computing, utility computing, mobile computing, autonomic computing Outline of this Course Course Outline • Resource Management (and some services an OS provides to programmers) – CPU management – Memory management – I/O management (emphasis: Disk) • Cross-cutting design considerations and techniques – Quality-of-service/fairness, monitoring, accounting, caching, software design methodology, security and isolation • Advanced topics – Distributed systems – Data centers, multi-media systems, real-time systems, virtual machines Next Time • Background on Computer Architecture