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 CMPSCI 377 Lecture 1 Emery Berger University of Massachusetts, Amherst UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science Information Course web page: My contact info: [email protected] Phone: 413-577-4211 Office hours by appointment TA’s: http://www.cs.umass.edu/~emery/cmpsci377 to be announced Discussion section: W 12:20 – 1:10, LGRC A301 UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science 2 Today’s Class Organizational meeting Course organization & outline Policies Prerequisites & course sign-up UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science 3 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 UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science 4 Prerequisites CMPSCI 187 (Data Structures) CMPSCI 201 (Architecture) Textbook: none required UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science 5 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! UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science 6 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 UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science 7 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 UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science 8 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. UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science 9 Names & Pictures For the web page Also, for accountability! UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science 10 Introduction to Operating Systems UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science 11 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) UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science 12 OS:Traditional View Interface between user and architecture Implements virtual machine: Hides architectural details 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 UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science 13 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 UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science 14 History of Operating Systems UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science 15 The Dark Ages (1940’s-1960’s) Hardware: expensive; humans: cheap Evolution of functionality: One user Batch processing Overlap of I/O & computation Multiprogramming UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science 16 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 UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science 17 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 UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science 18 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 UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science 19 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 UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science 20 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… UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science 21 The Renaissance (1970’s) Hardware: cheap; humans: expensive Users share system via terminals The UNIX era Multics: UNIX: army of programmers, six years three guys, two years “Shell”: composable commands No distinction between programs & data But: response time & thrashing UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science 22 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”) UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science 23 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 UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science 24 Moral of the Story The only constant: Change In 50 years, almost every computer component now 9 orders of magnitude faster, larger, cheaper Example: 1983 1999 0.5 500 cost/MIP $100,000 $500 memory 1 MB 1 GB network 10 Mbit/s 1 GB/s 1 GB 1 Tbyte MIPS disk UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science 25 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 UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science 26 Coming Soon Moore’s Law – running out of steam New features coming to computer near you: Multiple cores Unreliable memory Serious power/heat constraints UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science 27 Next Time Operating Systems & Architecture UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science 28