280 likes | 324 Views
Explore the course outline, prerequisites, assignments, and policies for CMPSCI 377 at the University of Massachusetts, Amherst. Learn about the importance and history of operating systems, including new developments and key OS design principles.
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