290 likes | 472 Views
Operating Systems CMPSCI 377 Lecture 1. Emery Berger University of Massachusetts, Amherst. Information. Course web page: http://www.cs.umass.edu/~emery/cmpsci377 My contact info: emery@cs.umass.edu Phone: 413-577-4211 Office hours by appointment TA’s: to be announced
E N D
Operating SystemsCMPSCI 377Lecture 1 Emery Berger University of Massachusetts, Amherst
Information • Course web page: • http://www.cs.umass.edu/~emery/cmpsci377 • My contact info: • emery@cs.umass.edu • Phone: 413-577-4211 • Office hours by appointment • TA’s: • to be announced • Discussion section: • W 12:20 – 1:10, LGRC A301
Today’s Class • Organizational meeting • Course organization & outline • Policies • Prerequisites & course sign-up
Course Organization • Capacity is 50 • Class: junior or senior-level • Not for freshman or sophomores • Enrollment policy • If space becomes an issue,graduating seniors get preference
Prerequisites • CMPSCI 187 (Data Structures) • CMPSCI 201 (Architecture) • Textbook: none required
Course Organization • Accounts in EdLab: 30+ Linux PC’s • Discussion section to help you with projects, • Office hours and location of TA’s: • To be announced!
Course Requirements Note: These percentages are subject to revision. • Class participation: 10% • Includes in-class quizzes • Programming projects: 40% • Exams (midterm, final): 50% • Strict late policy – not accepted late without medical note from UMass
Plagiarism • Cheaters will be found and punished • Will use sophisticated software to detect plagiarized programs • Cheating includes: • “Borrowing” code from someone • This includes reading previous solutions • Giving code to someone • Copying code from anyone (including the net) • Hiring someone to write your code • Submitting someone else’s code as your own
Projects • Build trace-based operating system simulator in Java • Read in reference traces of actual programs • Simulate operating system algorithms • Virtual memory, CPU scheduler, disk scheduler, file system • Some twists: • Test suite • Random module shuffling • Modern software engineering • Source code control, real IDEs with debuggers, etc.
Names & Pictures • For the web page • Also, for accountability!
What’s An Operating System? • Definition has changed over years • Originally, very bare bones • Now, includes more and more • Bill Gates: Windows = • Everything in other operating systems • Internet Explorer • Media player • “even a ham sandwich” (DOJ vs. Microsoft)
OS: Traditional View • Interface between user and architecture • Hides architectural details • Implements virtual machine: • Easier to program than raw hardware (hopefully) • Provides services and coordinates machine activities User-level Applications virtual machine interface Operating System physical machine interface Hardware
New Developments in OS Design • Operating systems: active field of research • Demands on OS’s growing • New application spaces (Web, Grid) • Rapidly evolving hardware • Advent of open-source operating systems – Linux • You can contribute to and develop OS’s! • Excellent research platform
The Dark Ages (1940’s-1960’s) Hardware: expensive; humans: cheap • Evolution of functionality: • One user • Batch processing • Overlap of I/O & computation • Multiprogramming
1. Single-User Computers • 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 • Operating system loads & runs jobs More efficient use of machine, complicates debugging
3. Overlap I/O and Computation • Before: machine waits for I/O to complete • New approach: • 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
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 (1970’s) 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 (1980’s) 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 (1990’s-now) Hardware cheap; Processing demands increasing • “Real” operating systems on PC’s • 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
Moral of the Story • The only constant: Change • In 50 years, almost every computer component now9 orders of magnitude faster, larger, cheaper • Example:
Moral of the Story, II • No counterpart in any other sphere of human existence! • Transportation: • 200 years: horseback (10 mph) to Concorde (1000 mph) = 2 orders of magnitude • Communication is closest: • 100 years: Pony Express (10 mph) to nearly speed of light (600 million mph) = 7 orders of magnitude
Coming Soon • Moore’s Law – running out of steam • New features coming to computer near you: • Multiple cores • Unreliable memory • Serious power/heat constraints
Next Time • Operating Systems & Architecture