1 / 45

CS-502 Operating Systems Fall 2007

CS-502 Operating Systems Fall 2007. Hugh C. Lauer Adjunct Professor. 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.

Download Presentation

CS-502 Operating Systems Fall 2007

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CS-502 Operating SystemsFall 2007 Hugh C. LauerAdjunct Professor Introduction

  2. 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 Introduction

  3. 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) Introduction

  4. 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! Introduction

  5. 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/ Introduction

  6. 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 Introduction

  7. 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 Introduction

  8. Schedule 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 2-3 weeks each Mobile Phones, pagers and other similar devices OFF during class If you need to eat during class 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 <Professor’s last name> @ cs.wpi.edu Adjunct office phone:– (508) 831-6470 (shared) Schedule & Logistics Introduction

  9. 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 Introduction

  10. 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 Introduction

  11. 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. Introduction

  12. 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 Introduction

  13. 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 Introduction

  14. 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 Introduction

  15. Questions? Introduction

  16. 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 Introduction

  17. 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? Introduction

  18. Instructor — Hugh C. LauerAdjunct 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 • … Introduction

  19. 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) Introduction

  20. 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 Introduction

  21. Sample images from VolumePro Introduction

  22. 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 MACH Apollo DOMAIN Unix (System V & BSD) Apple Mac (v.1 – v.9) MS-DOS Windows NT, 2000, XP various embedded systems … Operating Systems I have known Introduction

  23. 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 • Computer architecture • Software reliability • Networks • Computer graphics & volume rendering Introduction

  24. 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 Introduction

  25. Class Discussion What is an Operating System?(Laptops closed, please!) Introduction

  26. Characteristics Large, complex set of programs Long-lived, evolutionary Worked on by many people over many years Functions Creates abstractions Multiplexes concurrent activities Manages resources Mediates access to hardware devices Provides a variety of services to users and applications … What is an Operating System? Introduction

  27. 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) Introduction

  28. Abstractions:– Processes, threads, and concurrent computation Virtual memory & manages memory File system. Persistent storage of information Sockets and connections for network communication Controls I/O & peripherals Implements security and accessibility Definition — Same as judicial definition of pornography “I cannot define it, but I sure can recognize one when I see it!” What is an operating system? (cont’d) Introduction

  29. What is an Operating System XYZ Office Media Player Business Appl. Prog. Tools Services UI/Shell Practical OS OS Kernel Traditional OS Hardware Interfaces – Registers, etc. CPU I/O Controllers Introduction

  30. Computer System Organization Introduction

  31. Operating System Organization Utilities, tools, other stuff System Libraries (user space) Kernel Introduction

  32. Drivers & modules File Systems Operating System Organization (continued) Utilities, tools, other stuff System Libraries (user space) Kernel Introduction

  33. 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? Introduction

  34. 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 Introduction

  35. 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 Introduction

  36. Stand-alone machines – no OS Manually scheduled “jobs,” reset between jobs Early business computers E.g., IBM 1401/1460 Early mini-computers E.g., PDP1, PDP5, PDP8, etc. Simple batch monitors 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. Kinds of operating systems (1) Introduction

  37. 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 Introduction

  38. 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 Introduction

  39. 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 (?) Introduction

  40. PC’s, workstations CP/M, DOS, MS-DOS Apollo Domain Unix, Solaris, HP-UX Mac OS Windows 95, 98, Me Windows 2000, XP Linux Multiple processor systems Beowulf clusters Unix, Solaris, HP-UX, Linux server systems Kinds of operating systems (5) Introduction

  41. Real-time systems SAGE (North American air defense) Process control (steel mills, refineries, etc.) Large and small; computers you never heard of VxWorks, etc. Embedded systems Auto ignition Cell phone, PDA Appliances … Kinds of operating systems (6) Introduction

  42. Break Introduction

  43. 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 Introduction

  44. 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 Introduction

  45. 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 Introduction

More Related