45
Introduction CS-502 Fall 2007 1 CS-502 Operating Systems Fall 2007 Hugh C. Lauer Adjunct Professor

CS-502 Operating Systems Fall 2007

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

Page 1: CS-502 Operating Systems Fall 2007

IntroductionCS-502 Fall 2007 1

CS-502 Operating SystemsFall 2007

Hugh C. LauerAdjunct Professor

Page 2: CS-502 Operating Systems Fall 2007

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

Page 3: CS-502 Operating Systems Fall 2007

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)

Page 4: CS-502 Operating Systems Fall 2007

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!

Page 5: CS-502 Operating Systems Fall 2007

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/

Page 6: CS-502 Operating Systems Fall 2007

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

Page 7: CS-502 Operating Systems Fall 2007

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

Page 8: CS-502 Operating Systems Fall 2007

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)

Page 9: CS-502 Operating Systems Fall 2007

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

Page 10: CS-502 Operating Systems Fall 2007

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

Page 11: CS-502 Operating Systems Fall 2007

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.

Page 12: CS-502 Operating Systems Fall 2007

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

Page 13: CS-502 Operating Systems Fall 2007

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

Page 14: CS-502 Operating Systems Fall 2007

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

Page 15: CS-502 Operating Systems Fall 2007

IntroductionCS-502 Fall 2007 15

Questions?

Page 16: CS-502 Operating Systems Fall 2007

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

Page 17: CS-502 Operating Systems Fall 2007

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?

Page 18: CS-502 Operating Systems Fall 2007

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– …

Page 19: CS-502 Operating Systems Fall 2007

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)

Page 20: CS-502 Operating Systems Fall 2007

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

Page 21: CS-502 Operating Systems Fall 2007

IntroductionCS-502 Fall 2007 21

Sample images from VolumePro

Page 22: CS-502 Operating Systems Fall 2007

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

• …

Page 23: CS-502 Operating Systems Fall 2007

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

Page 24: CS-502 Operating Systems Fall 2007

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

Page 25: CS-502 Operating Systems Fall 2007

IntroductionCS-502 Fall 2007 25

Class Discussion

What is an Operating System?

(Laptops closed, please!)

Page 26: CS-502 Operating Systems Fall 2007

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

– …

Page 27: CS-502 Operating Systems Fall 2007

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)

Page 28: CS-502 Operating Systems Fall 2007

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!”

Page 29: CS-502 Operating Systems Fall 2007

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

Page 30: CS-502 Operating Systems Fall 2007

IntroductionCS-502 Fall 2007 30

Computer System Organization

Page 31: CS-502 Operating Systems Fall 2007

IntroductionCS-502 Fall 2007 31

Operating System Organization

Kernel

System Libraries (user space)

Utilities, tools, other stuff

Page 32: CS-502 Operating Systems Fall 2007

IntroductionCS-502 Fall 2007 32

Operating System Organization (continued)

Kernel

System Libraries (user space)

Utilities, tools, other stuff

Drivers & modules File Systems

Page 33: CS-502 Operating Systems Fall 2007

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?

Page 34: CS-502 Operating Systems Fall 2007

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

Page 35: CS-502 Operating Systems Fall 2007

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

Page 36: CS-502 Operating Systems Fall 2007

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.

Page 37: CS-502 Operating Systems Fall 2007

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

Page 38: CS-502 Operating Systems Fall 2007

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

Page 39: CS-502 Operating Systems Fall 2007

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 (?)

Page 40: CS-502 Operating Systems Fall 2007

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

Page 41: CS-502 Operating Systems Fall 2007

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

– …

Page 42: CS-502 Operating Systems Fall 2007

IntroductionCS-502 Fall 2007 49

Break

Page 43: CS-502 Operating Systems Fall 2007

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

Page 44: CS-502 Operating Systems Fall 2007

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

Page 45: CS-502 Operating Systems Fall 2007

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