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
Berkeley Software Distribution wikipedia , lookup
Copland (operating system) wikipedia , lookup
Plan 9 from Bell Labs wikipedia , lookup
Mobile operating system wikipedia , lookup
Distributed operating system wikipedia , lookup
Spring (operating system) wikipedia , lookup
CS-502 Operating Systems Fall 2007 Hugh C. Lauer Adjunct Professor CS-502 Fall 2007 Introduction 1 Outline for Today • • • • • Logistics and Details of this Course Introductions Discussion – What is an Operating System? Introduction to Concurrency Project Assignment • Virtual Machines • Term Project Assignment CS-502 Fall 2007 Introduction 2 Why an Operating Systems course? • WPI CS requirements • “Core area” for both grads and undergrads • Understanding of inner workings of “systems” • Exposure to diversity of operating systems • OS-related assignments you may see in real life:– • “Design and develop an operating system to do THIS” (not probable) • “Select an operating system for a product that will do THAT” (probable) • “Design and develop this application on THAT system to exploit its special features” (likely) CS-502 Fall 2007 Introduction 3 This Course • One 3-hour class per week, 14 weeks • September 10 – December 10 • No break during Thanksgiving week • Concentrated reading and project work • No time to take another course while holding a full-time job! CS-502 Fall 2007 Introduction 4 Textbook and Web • Text Book: – (required) Operating Systems Concepts, 7th edition, by Silberschatz, Galvin, and Gagne, John Wiley and Sons, 2005 – (required) Linux Kernel Design, 2nd edition, by Robert Love, Novell Press, 2005 – (supplemental) Modern Operating Systems, 2nd edition, by Andrew S. Tanenbaum, Prentice Hall, 2001 • Course Information: – http://web.cs.wpi.edu/~cs502/f07/ CS-502 Fall 2007 Introduction 5 Prerequisites • Prerequisites: – – – – C/C++ programming Data structures Unix/Linux user experience and access Computer Organization • Reading assignment – Silbershatz Chapters 1 and 2 • Especially §2.8 about virtual machines CS-502 Fall 2007 Introduction 6 More on Prerequisites • No time to try to “pick up” C programming • Java-only programmers will find it challenging • C++-only programmers may also find it challenging • Time required • 15+ hours per week average, 14 weeks total • 3 graduate courses per term is normal load for full time student • Computing resources required • Modern PC or Mac with > 8 gigabytes of free disk space • Ability to install VMware Player software • 2nd best: install client software to access VMware Server on CS Department machines CS-502 Fall 2007 Introduction 7 Schedule & Logistics • Schedule • If you need to eat during class – Fuller Labs – Room 320 – 6:00 PM to 8:50 PM – Approx two 5 minute breaks around 7PM, 8PM – 14 classes – No break for Thanksgiving! – Term Project & Final Exam – Monday, December 10, 2006 • 4-5 Programming Projects – Please be QUIET – Avoid spicy or savory aromas (pot stickers, curries, etc.) • Office Hours – by appointment – will try to be in Adjunct Office, Fuller 239, by 4:30 PM on Monday afternoons • Contact – 2-3 weeks each • Mobile Phones, pagers and other similar devices OFF during class CS-502 Fall 2007 Introduction – <Professor’s last name> @ cs.wpi.edu – Adjunct office phone:– (508) 831-6470 (shared) 8 Exams and Quizzes • Final exam on December 10 – 1.5–2.0 hours – May include lecture material introduced earlier that same evening – Closed book, one 8½ x 11 sheet of prepared notes (2 sides) – Bring calculator • Two or more unannounced quizzes – Closed book, no notes – Calculator may be useful CS-502 Fall 2007 Introduction 9 Grading • Grading – – – – Exams & quizzes – ~30% Programming Projects – ~30% Term Project – ~20% Class participation and written homework – ~20% • Unless otherwise noted, assignments are to be completed individually, not groups • Late Policy – 10% per day – But contact Professor for extenuating circumstances • WPI Academic Honesty policy CS-502 Fall 2007 Introduction 10 Ground Rule • There are no “stupid” questions. • It is a waste of your time and the class’s time to proceed when you don’t understand the basic terms. • If you don’t understand it, someone else probably doesn’t it, either. CS-502 Fall 2007 Introduction 11 Programming Projects • Project work based on OpenSUSE Linux 10.2 • Each student will get a “virtual machine” • What is a virtual machine? (§2.8 in Silbershatz) • Build, modify, install Linux kernel on your virtual machine • Debug, analyze, crash • Restore, try again CS-502 Fall 2007 Introduction 12 Programming Projects (continued) • Similar to Fossil Lab • http://fossil.wpi.edu • However, • Does not require physical presence on campus • Does require you to install VMware software on your home or office PC CS-502 Fall 2007 Introduction 13 Ways to Use your Virtual Machine • Use VMware Player (or other VMware software) on your own PC – See DVD and handout for instructions. • Use CS Department server – Sign up for login ID at http://www.cs.wpi.edu/Account – Instructions to follow • Macintosh Parallels – See instructor CS-502 Fall 2007 Introduction 14 Questions? CS-502 Fall 2007 Introduction 15 Outline for Today • • • • • Logistics and Details of this Course Introductions Discussion – What is an Operating System? Introduction to Concurrency Project Assignment • Virtual Machines • Term Project Assignment CS-502 Fall 2007 Introduction 16 Introductions • Who are you? – Name, year, major and/or degree program – Full time student? Work experience in computing, etc.? Employer? • C & C++ experience – Other programming experience • Previous degree and where • Why CS502– Operating Systems? • Anything else relevant? CS-502 Fall 2007 Introduction 17 Instructor — Hugh C. Lauer Adjunct Professor • Ph. D. Carnegie-Mellon 1972-73 – Dissertation “Correctness in Operating Systems” • Lecturer: University of Newcastle upon Tyne, UK • Approximately 30 years in industry in USA • Research topics – – – – – – – – Operating Systems Proofs of Correctness Computer Architecture Networks and Distributed Computing Real-time networking 3D Volume Rendering Surgical Simulation and Navigation … CS-502 Fall 2007 Introduction 18 Systems Experience • • • • • • • • • IBM Corporation University of Newcastle Systems Development Corporation Xerox Corporation (Palo Alto) Software Arts, Inc. Apollo Computer Eastman Kodak Company Mitsubishi Electric Research Labs (MERL) Real-Time Visualization • Founded and spun out from MERL • Acquired by TeraRecon, Inc. • SensAble Technologies, Inc. • Dimensions Imaging, Inc. (new start-up) CS-502 Fall 2007 Introduction 19 VolumePro™ • Interactive volume rendering of 3D data such as • MRI scans • CT scans • Seismic scans • Two generations of ASICs, boards, software • VolumePro 500 – 1999 • VolumePro 1000 – 2001 • CTO, Chief Architect of VolumePro 1000 • 7.5-million gate, high-performance ASIC • 109 Phong-illuminated samples per second CS-502 Fall 2007 Introduction 20 Sample images from VolumePro CS-502 Fall 2007 Introduction 21 Operating Systems I have known • • • • • • • • • IBSYS (IBM 7090) OS/360 (IBM 360) TSS/360 (360 mod 67) Michigan Terminal System (MTS) CP/CMS & VM 370 MULTICS (GE 645) Alto (Xerox PARC) Pilot (Xerox STAR) CP/M CS-502 Fall 2007 • • • • • • • • Introduction MACH Apollo DOMAIN Unix (System V & BSD) Apple Mac (v.1 – v.9) MS-DOS Windows NT, 2000, XP various embedded systems … 22 Other • Two seminal contributions to computer science • Duality hypothesis for operating system structures (with Roger Needham) • First realization of opaque types in type-safe programming languages (with Ed Satterthwaite) • 21 US patents issued • • • • CS-502 Fall 2007 Computer architecture Software reliability Networks Computer graphics & volume rendering Introduction 23 Outline for Today • • • • • Logistics and Details of this Course Introductions Discussion – What is an Operating System? Introduction to Concurrency Project Assignment • Virtual Machines • Term Project Assignment CS-502 Fall 2007 Introduction 24 Class Discussion What is an Operating System? (Laptops closed, please!) CS-502 Fall 2007 Introduction 25 What is an Operating System? • Characteristics • Functions – Large, complex set of programs – Long-lived, evolutionary – Worked on by many people over many years CS-502 Fall 2007 Introduction – Creates abstractions – Multiplexes concurrent activities – Manages resources – Mediates access to hardware devices – Provides a variety of services to users and applications – … 26 Definition – Abstraction • The distillation of a complex mechanism into a simple, conceptual model • User of abstraction does not need to worry about details • Implementer of abstraction does not need to worry about how user will use it (within limits) CS-502 Fall 2007 Introduction 27 What is an operating system? (cont’d) • Abstractions:– – Processes, threads, and concurrent computation – Virtual memory & manages memory – File system. Persistent storage of information – Sockets and connections for network communication • Definition — Same as judicial definition of pornography • “I cannot define it, but I sure can recognize one when I see it!” • Controls I/O & peripherals • Implements security and accessibility CS-502 Fall 2007 Introduction 28 What is an Operating System XYZ Office Prog. Tools Media Player Business Appl. Services UI/Shell Practical OS Kernel Traditional OS OS Hardware Interfaces – Registers, etc. CPU CS-502 Fall 2007 I/O Controllers Introduction 29 Computer System Organization CS-502 Fall 2007 Introduction 30 Operating System Organization Utilities, tools, other stuff System Libraries (user space) Kernel CS-502 Fall 2007 Introduction 31 Operating System Organization (continued) Utilities, tools, other stuff System Libraries (user space) Kernel Drivers & modules CS-502 Fall 2007 File Systems Introduction 32 Major OS Issues • • • • • • • • • • • • • • structure: how is the OS organized? sharing: how are resources shared across users? naming: how are resources named (by users or programs)? security: how is the integrity of the OS and its resources ensured? protection: how is one user/program protected from another? performance: how do we make it all go fast? reliability: what happens if something goes wrong – hardware or software extensibility: can we add new features? communication: how do programs exchange information concurrency: how are parallel activities created and controlled? scale: what happens as demands or resources increase? persistence: how do you make data last longer than program executions? distribution: how do multiple computers interact with each other? accounting: how do we keep track of resource usage, and charge for it? CS-502 Fall 2007 Introduction 33 Operating Systems • Large, complex programs • Typically – – – – Long-lived Frequently extended and updated Worked on by many developers Used and, maybe abused by a variety of users with varying expertise and expectations • Essential to create an acceptable computing environment to create and execute other programs that achieve business or personal goals CS-502 Fall 2007 Introduction 34 Kinds of operating systems • • • • • • • • • Stand-alone machines – no OS Simple batch monitors Concurrent I/O and programs Time-sharing, multiple users, interactive Servers, non-stop systems, transaction processing PC’s, workstations Multiple processor systems Real-time systems Embedded systems CS-502 Fall 2007 Introduction 35 Kinds of operating systems (1) • Stand-alone machines – no OS • Simple batch monitors – Manually scheduled “jobs,” reset between jobs – Early business computers • E.g., IBM 1401/1460 – Early mini-computers • E.g., PDP1, PDP5, PDP8, etc. – Simple “monitor routine” switches between jobs – Input loaded onto tape or other media off-line – Output to tape is punched and/or printed off-line – Typical university computing centers • IBM 7090, Univac, etc. CS-502 Fall 2007 Introduction 36 Kinds of operating systems (2) • Concurrent I/O and programs – SPOOL-ing (Simultaneous Peripheral Operation On Line) • Allows direct input & output – Multiple programs resident in memory at once • Keeps processor busy – On-line file storage – Some support for terminals, telecommunications – Early business computers • E.g., IBM 7070, IBM 360 & 370 – Scientific computing • E.g., Control Data 6600, IBM 360/91 CS-502 Fall 2007 Introduction 37 Kinds of operating systems (3) • Time-sharing, multiple users, interactive – – – – – Many concurrent users “logged on” Interactive editing and computing Self submission of batch jobs Protection among users, protection among jobs Fair allocation of resources – All university computing centers since about 1970 • E.g., MULTICS, IBM 360/67, DEC PDP-10, PDP-20 – Advanced minicomputers • DEC, Data General, Prime, etc. • Unix CS-502 Fall 2007 Introduction 38 Kinds of operating systems (4) • Servers, non-stop systems, transaction processing – Banking, airline reservation – Online databases – Many very short “transactions” – Tandem, Stratus, Sequoia – Unix, Linux, Solaris, HP-UX – Windows Server 2000, 2003 – Oracle, SAP (?) CS-502 Fall 2007 Introduction 39 Kinds of operating systems (5) • PC’s, workstations – – – – – – – CP/M, DOS, MS-DOS Apollo Domain Unix, Solaris, HP-UX Mac OS Windows 95, 98, Me Windows 2000, XP Linux CS-502 Fall 2007 • Multiple processor systems Introduction – Beowulf clusters – Unix, Solaris, HP-UX, Linux server systems 40 Kinds of operating systems (6) • Real-time systems • Embedded systems – SAGE (North American air defense) – Process control (steel mills, refineries, etc.) – Large and small; computers you never heard of – VxWorks, etc. CS-502 Fall 2007 Introduction – – – – Auto ignition Cell phone, PDA Appliances … 41 Break CS-502 Fall 2007 Introduction 49 Outline for Today • • • • • Logistics and Details of this Course Introductions Discussion – What is an Operating System? Introduction to Concurrency Project Assignment • Virtual Machines • Term Project Assignment CS-502 Fall 2007 Introduction 50 Outline for Today • • • • • Logistics and Details of this Course Introductions Discussion – What is an Operating System? Introduction to Concurrency Project Assignment • Virtual Machines • Term Project Assignment CS-502 Fall 2007 Introduction 51 Outline for Today • • • • • Logistics and Details of this Course Introductions Discussion – What is an Operating System? Introduction to Concurrency Project Assignment • Virtual Machines • Term Project Assignment CS-502 Fall 2007 Introduction 52