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