U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science Emery Berger University of Massachusetts, Amherst Operating Systems CMPSCI 377 Lecture 1
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science 2 Information Course web page: My contact info: Phone: Office hours by appointment TA’s: to be announced Discussion section: W 12:20 – 1:10, LGRC A301
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science 3 Today’s Class Organizational meeting Course organization & outline Policies Prerequisites & course sign-up
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science 4 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
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science 5 Prerequisites CMPSCI 187 (Data Structures) CMPSCI 201 (Architecture) Textbook: none required
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science 6 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!
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science 7 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
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science 8 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
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science 9 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.
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science 10 Names & Pictures For the web page Also, for accountability!
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science 11 Introduction to Operating Systems
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science 12 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)
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science 13 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 Operating System Hardware virtual machine interface physical machine interface
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science 14 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
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science 15 History of Operating Systems
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science 16 The Dark Ages (1940’s-1960’s) Hardware: expensive; humans: cheap Evolution of functionality: One user Batch processing Overlap of I/O & computation Multiprogramming
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science 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
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science 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
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science 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
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science 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
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science 21 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…
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science 22 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
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science 23 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”)
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science 24 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
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science 25 Moral of the Story The only constant: Change In 50 years, almost every computer component now 9 orders of magnitude faster, larger, cheaper Example: MIPS cost/MIP$100,000$500 memory1 MB1 GB network10 Mbit/s1 GB/s disk1 GB1 Tbyte
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science 26 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
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science 27 Coming Soon Moore’s Law – running out of steam New features coming to computer near you: Multiple cores Unreliable memory Serious power/heat constraints
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science 28 Next Time Operating Systems & Architecture