Upload
portia-benson
View
21
Download
0
Tags:
Embed Size (px)
DESCRIPTION
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. - PowerPoint PPT Presentation
Citation preview
IntroductionCS-502 Fall 2007 1
CS-502 Operating SystemsFall 2007
Hugh C. LauerAdjunct Professor
IntroductionCS-502 Fall 2007 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
IntroductionCS-502 Fall 2007 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)
IntroductionCS-502 Fall 2007 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!
IntroductionCS-502 Fall 2007 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/
IntroductionCS-502 Fall 2007 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
IntroductionCS-502 Fall 2007 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
IntroductionCS-502 Fall 2007 8
Schedule & Logistics
• 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)
IntroductionCS-502 Fall 2007 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
IntroductionCS-502 Fall 2007 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
IntroductionCS-502 Fall 2007 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.
IntroductionCS-502 Fall 2007 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
IntroductionCS-502 Fall 2007 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
IntroductionCS-502 Fall 2007 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
IntroductionCS-502 Fall 2007 15
Questions?
IntroductionCS-502 Fall 2007 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
IntroductionCS-502 Fall 2007 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?
IntroductionCS-502 Fall 2007 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– …
IntroductionCS-502 Fall 2007 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)
IntroductionCS-502 Fall 2007 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
IntroductionCS-502 Fall 2007 21
Sample images from VolumePro
IntroductionCS-502 Fall 2007 22
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
• MACH
• Apollo DOMAIN
• Unix (System V & BSD)
• Apple Mac (v.1 – v.9)
• MS-DOS
• Windows NT, 2000, XP
• various embedded systems
• …
IntroductionCS-502 Fall 2007 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
IntroductionCS-502 Fall 2007 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
IntroductionCS-502 Fall 2007 25
Class Discussion
What is an Operating System?
(Laptops closed, please!)
IntroductionCS-502 Fall 2007 26
What is an Operating System?
• 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
– …
IntroductionCS-502 Fall 2007 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)
IntroductionCS-502 Fall 2007 28
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
• 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!”
IntroductionCS-502 Fall 2007 29
What is an Operating System
Hardware Interfaces – Registers, etc.
OS Kernel
Prog. Tools Services UI/Shell
XYZ Office Media Player Business Appl.
CPU I/O Controllers
Traditional
OS
Practical
OS
IntroductionCS-502 Fall 2007 30
Computer System Organization
IntroductionCS-502 Fall 2007 31
Operating System Organization
Kernel
System Libraries (user space)
Utilities, tools, other stuff
IntroductionCS-502 Fall 2007 32
Operating System Organization (continued)
Kernel
System Libraries (user space)
Utilities, tools, other stuff
Drivers & modules File Systems
IntroductionCS-502 Fall 2007 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?
IntroductionCS-502 Fall 2007 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
IntroductionCS-502 Fall 2007 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
IntroductionCS-502 Fall 2007 36
Kinds of operating systems (1)
• 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.
IntroductionCS-502 Fall 2007 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
IntroductionCS-502 Fall 2007 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
IntroductionCS-502 Fall 2007 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 (?)
IntroductionCS-502 Fall 2007 40
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
• Multiple processor systems– Beowulf clusters
– Unix, Solaris, HP-UX, Linux server systems
IntroductionCS-502 Fall 2007 41
Kinds of operating systems (6)
• 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
– …
IntroductionCS-502 Fall 2007 49
Break
IntroductionCS-502 Fall 2007 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
IntroductionCS-502 Fall 2007 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
IntroductionCS-502 Fall 2007 52
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