cs 3013 & cs 502 summer 2006 course introduction1 cs3013 & cs502 – operating systems hugh...

38
CS 3013 & CS 502 S ummer 2006 Course Introduction 1 CS3013 & CS502 – Operating Systems Hugh C. Lauer, Ph.D. Adjunct Professor

Upload: bernard-goodman

Post on 30-Dec-2015

223 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CS 3013 & CS 502 Summer 2006 Course Introduction1 CS3013 & CS502 – Operating Systems Hugh C. Lauer, Ph.D. Adjunct Professor

CS 3013 & CS 502 Summer 2006

Course Introduction 1

CS3013 & CS502 – Operating Systems

Hugh C. Lauer, Ph.D.Adjunct Professor

Page 2: CS 3013 & CS 502 Summer 2006 Course Introduction1 CS3013 & CS502 – Operating Systems Hugh C. Lauer, Ph.D. Adjunct Professor

CS 3013 & CS 502 Summer 2006

Course Introduction 2

Why an Operating Systems course?

• WPI CS requirements – “core area” for undergrads and grads

• Understanding of inner workings of “systems”

• Exposure to diversity of operating systems

Page 3: CS 3013 & CS 502 Summer 2006 Course Introduction1 CS3013 & CS502 – Operating Systems Hugh C. Lauer, Ph.D. Adjunct Professor

CS 3013 & CS 502 Summer 2006

Course Introduction 3

Combined Course

• CS-3013• Seven weeks, four 1-hour classes per week

• CS-502• Fourteen weeks, one 3-hour class per week• Organized for students with full-time jobs

• Overlapping material• Traditionally, most CS-3013 content is

covered during first 2/3 of CS-502

Page 4: CS 3013 & CS 502 Summer 2006 Course Introduction1 CS3013 & CS502 – Operating Systems Hugh C. Lauer, Ph.D. Adjunct Professor

CS 3013 & CS 502 Summer 2006

Course Introduction 4

This course

• One 4-hour class per week– CS-3013 students: seven weeks (28

hours)• Similar level of intensity to traditional course

– CS-502 students: ten weeks (40 hours)• More concentrated than fall or spring term

course

Page 5: CS 3013 & CS 502 Summer 2006 Course Introduction1 CS3013 & CS502 – Operating Systems Hugh C. Lauer, Ph.D. Adjunct Professor

CS 3013 & CS 502 Summer 2006

Course Introduction 5

Prerequisites

• Prerequisites:– C/C++ programming– Data structures– Unix/Linux user experience and access– Computer Organization

• Reading assignment– Tanenbaum §§1.0 – 1.4– Especially §1.4: “Computer Hardware

Review”

Page 6: CS 3013 & CS 502 Summer 2006 Course Introduction1 CS3013 & CS502 – Operating Systems Hugh C. Lauer, Ph.D. Adjunct Professor

CS 3013 & CS 502 Summer 2006

Course Introduction 6

Schedule & Logistics• Schedule

– Fuller Labs – Room 311– 6:00 PM to 9:50 PM – Approx two 5 minute

breaks around 7:20 PM, 8:40 PM

– “Final exam” – Thursday, June 29, 2006

– Final three weeks of CS-502 to be determined

• 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, on Thursday late afternoons

• Contact– <instructor’s last

name>@cs.wpi.edu– Adjunct office phone:

(508) 831-6470 (shared)

Page 7: CS 3013 & CS 502 Summer 2006 Course Introduction1 CS3013 & CS502 – Operating Systems Hugh C. Lauer, Ph.D. Adjunct Professor

CS 3013 & CS 502 Summer 2006

Course Introduction 7

Textbook and Web

• Text Book:– Modern Operating Systems. 2nd edition, by

Andrew S. Tanenbaum. Prentice Hall, 2001– (supplementary) Operating Systems

Concepts. Seventh Edition, by Silberschatz, Galvin, and Gagne. John Wiley & Sons, 2005

• Course Information:– http://www.cs.wpi.edu/~cs502/e06/– http://www.cs.wpi.edu/~cs3013/e06/

Page 8: CS 3013 & CS 502 Summer 2006 Course Introduction1 CS3013 & CS502 – Operating Systems Hugh C. Lauer, Ph.D. Adjunct Professor

CS 3013 & CS 502 Summer 2006

Course Introduction 8

Exams and Quizzes

• One “final” exam on June 29 (7th week)– 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

• One or more unannounced quizzes– Closed book, no notes– Calculator may be useful

Page 9: CS 3013 & CS 502 Summer 2006 Course Introduction1 CS3013 & CS502 – Operating Systems Hugh C. Lauer, Ph.D. Adjunct Professor

CS 3013 & CS 502 Summer 2006

Course Introduction 9

Programming Projects

• All students– Three programming projects, 2 weeks each– Submit via turnin prior to beginning of class

• CS-502 students– Additional project during final three weeks– Term project to study some operating system

Page 10: CS 3013 & CS 502 Summer 2006 Course Introduction1 CS3013 & CS502 – Operating Systems Hugh C. Lauer, Ph.D. Adjunct Professor

CS 3013 & CS 502 Summer 2006

Course Introduction 10

Grading

• Grading (all students)– Exams & Quizzes – 30 points– Programming Projects (3) – 50 points– Class participation – 20 points

• Additional grading (CS-502 students only)– Term Project and final three weeks – 30 points

• Assignments are to be completed individually, not groups– Unless otherwise specified

• Late Policy – 10%/day• WPI Academic Honesty policy

Page 11: CS 3013 & CS 502 Summer 2006 Course Introduction1 CS3013 & CS502 – Operating Systems Hugh C. Lauer, Ph.D. Adjunct Professor

CS 3013 & CS 502 Summer 2006

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

Page 12: CS 3013 & CS 502 Summer 2006 Course Introduction1 CS3013 & CS502 – Operating Systems Hugh C. Lauer, Ph.D. Adjunct Professor

CS 3013 & CS 502 Summer 2006

Course Introduction 12

Introductions

• Who are you?– Name, year, course or major– Full-time job this summer or not?– Employer, work experience in computing,

etc.• C & C++ experience

– Other programming experience• Previous degree and where• Why an Operating Systems course• Anything else relevant?

Page 13: CS 3013 & CS 502 Summer 2006 Course Introduction1 CS3013 & CS502 – Operating Systems Hugh C. Lauer, Ph.D. Adjunct Professor

CS 3013 & CS 502 Summer 2006

Course Introduction 13

Instructor —Hugh C. Lauer, Adjunct

Professor• Ph. D. Carnegie-Mellon 1973

– Dissertation “Correctness in Operating Systems”

• Lecturer: University of Newcastle upon Tyne, UK• Approximately 30 years in industry in USA• Research topics and technology specialties

– Operating Systems– Proofs of Correctness– Computer Architecture– Networks and Distributed Computing– Real-time networking– 3D Volume Rendering– Surgical Simulation– …

Page 14: CS 3013 & CS 502 Summer 2006 Course Introduction1 CS3013 & CS502 – Operating Systems Hugh C. Lauer, Ph.D. Adjunct Professor

CS 3013 & CS 502 Summer 2006

Course Introduction 14

Systems Experience

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

Page 15: CS 3013 & CS 502 Summer 2006 Course Introduction1 CS3013 & CS502 – Operating Systems Hugh C. Lauer, Ph.D. Adjunct Professor

CS 3013 & CS 502 Summer 2006

Course Introduction 15

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 16: CS 3013 & CS 502 Summer 2006 Course Introduction1 CS3013 & CS502 – Operating Systems Hugh C. Lauer, Ph.D. Adjunct Professor

CS 3013 & CS 502 Summer 2006

Course Introduction 16

Sample images from VolumePro

Page 17: CS 3013 & CS 502 Summer 2006 Course Introduction1 CS3013 & CS502 – Operating Systems Hugh C. Lauer, Ph.D. Adjunct Professor

CS 3013 & CS 502 Summer 2006

Course Introduction 17

Operating Systems I have known

• IBSYS (IBM 7090)• OS/360 (IBM 360)• TSS/360 (360 mod 67)• Michigan Terminal

System• CP/CMS & VM 370• MULTICS (GE 645)• Alto (Xerox PARC)• Pilot (Xerox STAR)

• MACH• Apollo DOMAIN• Unix (System V & BSD)• Apple Mac (v. 1– v. 9)• CP/M• MS-DOS• Windows NT & 2000• various embedded

systems• …

Page 18: CS 3013 & CS 502 Summer 2006 Course Introduction1 CS3013 & CS502 – Operating Systems Hugh C. Lauer, Ph.D. Adjunct Professor

CS 3013 & CS 502 Summer 2006

Course Introduction 18

Discussion:–What is an Operating

System?

Page 19: CS 3013 & CS 502 Summer 2006 Course Introduction1 CS3013 & CS502 – Operating Systems Hugh C. Lauer, Ph.D. Adjunct Professor

CS 3013 & CS 502 Summer 2006

Course Introduction 19

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 20: CS 3013 & CS 502 Summer 2006 Course Introduction1 CS3013 & CS502 – Operating Systems Hugh C. Lauer, Ph.D. Adjunct Professor

CS 3013 & CS 502 Summer 2006

Course Introduction 20

Three important terms

• Abstraction• A useful, practical idealization of a very

complex process or system, details of which can be ignored

• Concurrency• Computational activities occurring at the same

time and potentially in conflict with each other

• Resource• Device, object, system, information, etc.,

needed by a computation for its successful outcome

Page 21: CS 3013 & CS 502 Summer 2006 Course Introduction1 CS3013 & CS502 – Operating Systems Hugh C. Lauer, Ph.D. Adjunct Professor

CS 3013 & CS 502 Summer 2006

Course Introduction 21

What is an operating system? (cont’d)

• Abstractions:–– Implements processes &

threads– Implements virtual

memory & manages memory

– Provides interprocess communication (IPC)

– Implements file system. Manages persistent storage of information

• Controls I/O• Implements networking

& communications

• Definition — Same as judicial definition of pornography

• “I cannot define it, but I sure can recognize one when I see it!”

Page 22: CS 3013 & CS 502 Summer 2006 Course Introduction1 CS3013 & CS502 – Operating Systems Hugh C. Lauer, Ph.D. Adjunct Professor

CS 3013 & CS 502 Summer 2006

Course Introduction 22

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 23: CS 3013 & CS 502 Summer 2006 Course Introduction1 CS3013 & CS502 – Operating Systems Hugh C. Lauer, Ph.D. Adjunct Professor

CS 3013 & CS 502 Summer 2006

Course Introduction 23

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 24: CS 3013 & CS 502 Summer 2006 Course Introduction1 CS3013 & CS502 – Operating Systems Hugh C. Lauer, Ph.D. Adjunct Professor

CS 3013 & CS 502 Summer 2006

Course Introduction 24

Operating System

• Large, complex program– In most cases, a set of programs

• Typically– Long-lived– Frequently extended and updated– Worked on by a number of developers– Used and (perhaps) abused by a variety of

users with varying expertise and expectations

• Creates acceptable computing environment to develop and execute other programs that achieve business or personal goals

Page 25: CS 3013 & CS 502 Summer 2006 Course Introduction1 CS3013 & CS502 – Operating Systems Hugh C. Lauer, Ph.D. Adjunct Professor

CS 3013 & CS 502 Summer 2006

Course Introduction 25

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 26: CS 3013 & CS 502 Summer 2006 Course Introduction1 CS3013 & CS502 – Operating Systems Hugh C. Lauer, Ph.D. Adjunct Professor

CS 3013 & CS 502 Summer 2006

Course Introduction 26

Kinds of operating systems (1)

• Stand-alone machines – no OS per se

• Manually scheduled “jobs,” reset between jobs

• Early business computers

– E.g., IBM 1401/1460• Early mini-computers

– E.g., PDP1, PDP5, PDP8, etc.

– But defines important abstractions

• Simple batch monitors

• Simple “monitor routine” switches between jobs

• Input loaded onto tape off-line

• Output to tape is punched and/or printed off-line

• Typical university computing centers

– IBM 7090, Univac, etc.

Page 27: CS 3013 & CS 502 Summer 2006 Course Introduction1 CS3013 & CS502 – Operating Systems Hugh C. Lauer, Ph.D. Adjunct Professor

CS 3013 & CS 502 Summer 2006

Course Introduction 27

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 28: CS 3013 & CS 502 Summer 2006 Course Introduction1 CS3013 & CS502 – Operating Systems Hugh C. Lauer, Ph.D. Adjunct Professor

CS 3013 & CS 502 Summer 2006

Course Introduction 28

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 mid 1970s– E.g., MULTICS, IBM 360/67, DEC PDP-10, PDP-20

• Advanced minicomputers– DEC, Data General, Prime, etc.– Unix

Page 29: CS 3013 & CS 502 Summer 2006 Course Introduction1 CS3013 & CS502 – Operating Systems Hugh C. Lauer, Ph.D. Adjunct Professor

CS 3013 & CS 502 Summer 2006

Course Introduction 29

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 30: CS 3013 & CS 502 Summer 2006 Course Introduction1 CS3013 & CS502 – Operating Systems Hugh C. Lauer, Ph.D. Adjunct Professor

CS 3013 & CS 502 Summer 2006

Course Introduction 30

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

Page 31: CS 3013 & CS 502 Summer 2006 Course Introduction1 CS3013 & CS502 – Operating Systems Hugh C. Lauer, Ph.D. Adjunct Professor

CS 3013 & CS 502 Summer 2006

Course Introduction 31

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• Systems you never

heard of– VxWorks, etc.

• Embedded systems• Auto ignition• Cell phone, PDA• Appliances• …

Page 32: CS 3013 & CS 502 Summer 2006 Course Introduction1 CS3013 & CS502 – Operating Systems Hugh C. Lauer, Ph.D. Adjunct Professor

CS 3013 & CS 502 Summer 2006

Course Introduction 32

OS History – Unix & Linux

• Unix– Descendant of MULTICS– First “C” version in 1973 (DEC PDP-11)

• Timesharing for < 10 users on 32K Memory• Many Unix versions at BTL – different goals• Source code made available to Universities –

BSD

– POSIX (started 1981) defines standard Unix system calls

– AT&T licensing!

Page 33: CS 3013 & CS 502 Summer 2006 Course Introduction1 CS3013 & CS502 – Operating Systems Hugh C. Lauer, Ph.D. Adjunct Professor

CS 3013 & CS 502 Summer 2006

Course Introduction 33

OS History - Linux

• Open Source – Linux.org• First Version 1991, Linus Torvalds,

80386 processor– v.01, limited devices, no networking,– with proper Unix process support!

• 1994, v1.0– networking (Internet)– enhanced file system – many devices, dynamic kernel modules

Page 34: CS 3013 & CS 502 Summer 2006 Course Introduction1 CS3013 & CS502 – Operating Systems Hugh C. Lauer, Ph.D. Adjunct Professor

CS 3013 & CS 502 Summer 2006

Course Introduction 34

OS History - Linux• 1996, v2.0

– multiple architectures, multiple processors– threads, memory management ….

• Gnome UI – introduced in 1999• Recent

– V2.4 – 3 million lines of code– 7-10 million users– Growth by 25%/year through 2003– Growing use in business server market

• Note - Development convention– Odd numbered minor versions “development”– Even numbered minor versions “stable”

Page 35: CS 3013 & CS 502 Summer 2006 Course Introduction1 CS3013 & CS502 – Operating Systems Hugh C. Lauer, Ph.D. Adjunct Professor

CS 3013 & CS 502 Summer 2006

Course Introduction 35

OS History –Windows NT/2000/XP

• Key designer – David Cutler also designed VAX/VMS

• 1988, v1 – Win32 API “microkernel”• 1990, v3.1– Server and Workstation

versions• 1996, v4

– Win95 interface– Graphics to kernel– More NT licenses sold than all Unix combined– Microkernel de-emphasized

Page 36: CS 3013 & CS 502 Summer 2006 Course Introduction1 CS3013 & CS502 – Operating Systems Hugh C. Lauer, Ph.D. Adjunct Professor

CS 3013 & CS 502 Summer 2006

Course Introduction 36

OS History – Windows NT/2000/XP

• Windows 2000 – NT5.0– Multi-user (with terminal services)– Professional - desktop– Server and Advanced Server - Client-server

application servers– Datacenter Server - Up to 32 processors, 64 GB

RAM

• Windows XP– Windows 2000 code base– Revised UI– EOL for DOS/Windows line

Page 37: CS 3013 & CS 502 Summer 2006 Course Introduction1 CS3013 & CS502 – Operating Systems Hugh C. Lauer, Ph.D. Adjunct Professor

CS 3013 & CS 502 Summer 2006

Course Introduction 37

OS History – Windows NT/2000/XP

• Microsoft has 80% to 90% of OS market• Wintel – Windows + Intel X86• WinNT 4.x is 12 million lines of code• Win2000 is 18 million lines of code• Windows XP

• Much bigger than Windows 2000• Impossible to tell where boundary of OS is• Comprehensive case study in Silbershatz, ch.

22

Page 38: CS 3013 & CS 502 Summer 2006 Course Introduction1 CS3013 & CS502 – Operating Systems Hugh C. Lauer, Ph.D. Adjunct Professor

CS 3013 & CS 502 Summer 2006

Course Introduction 38

Break

(next topic)