CS 3013 CS 502 Operating Systems Hugh C

  • Slides: 38
Download presentation
CS 3013 & CS 502 – Operating Systems Hugh C. Lauer, Ph. D. Adjunct

CS 3013 & CS 502 – Operating Systems Hugh C. Lauer, Ph. D. Adjunct Professor CS 3013 & CS 502 Summer 2006 Course Introduction 1

Why an Operating Systems course? • WPI CS requirements – “core area” for undergrads

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 CS 3013 & CS 502 Summer 2006 Course Introduction 2

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

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 CS 3013 & CS 502 Summer 2006 Course Introduction 3

This course • One 4 -hour class per week – CS-3013 students: seven weeks

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 CS 3013 & CS 502 Summer 2006 Course Introduction 4

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

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” CS 3013 & CS 502 Summer 2006 Course Introduction 5

Schedule & Logistics • Schedule • If you need to eat during class –

Schedule & Logistics • Schedule • If you need to eat during class – 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 CS 3013 & CS 502 Summer 2006 – 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) Course Introduction 6

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

Textbook and Web • Text Book: – Modern Operating Systems. 2 nd 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/~cs 502/e 06/ – http: //www. cs. wpi. edu/~cs 3013/e 06/ CS 3013 & CS 502 Summer 2006 Course Introduction 7

Exams and Quizzes • One “final” exam on June 29 (7 th week) –

Exams and Quizzes • One “final” exam on June 29 (7 th 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 CS 3013 & CS 502 Summer 2006 Course Introduction 8

Programming Projects • All students – Three programming projects, 2 weeks each – Submit

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 CS 3013 & CS 502 Summer 2006 Course Introduction 9

Grading • Grading (all students) – Exams & Quizzes – 30 points – Programming

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 CS 3013 & CS 502 Summer 2006 Course Introduction 10

Ground Rule • There are no “stupid” questions. • It is a waste of

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 3013 & CS 502 Summer 2006 Course Introduction 11

Introductions • Who are you? – Name, year, course or major – Full-time job

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? CS 3013 & CS 502 Summer 2006 Course Introduction 12

Instructor — Hugh C. Lauer, Adjunct Professor • Ph. D. Carnegie-Mellon 1973 – Dissertation

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 3 D Volume Rendering Surgical Simulation … CS 3013 & CS 502 Summer 2006 Course Introduction 13

Systems Experience • • Systems Development Corporation Xerox Corporation (Palo Alto) Software Arts, Inc.

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 Tera. Recon, Inc. • Sens. Able Technologies, Inc. CS 3013 & CS 502 Summer 2006 Course Introduction 14

Volume. Pro™ • Interactive volume rendering of 3 D data such as • MRI

Volume. Pro™ • Interactive volume rendering of 3 D data such as • MRI scans • CT scans • Seismic scans • Two generations of ASICs, boards, software • Volume. Pro 500 – 1999 • Volume. Pro 1000 – 2001 • CTO, Chief Architect of Volume. Pro 1000 • 7. 5 -million gate, high-performance ASIC • 109 Phong-illuminated samples per second CS 3013 & CS 502 Summer 2006 Course Introduction 15

Sample images from Volume. Pro CS 3013 & CS 502 Summer 2006 Course Introduction

Sample images from Volume. Pro CS 3013 & CS 502 Summer 2006 Course Introduction 16

Operating Systems I have known • • IBSYS (IBM 7090) OS/360 (IBM 360) TSS/360

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) CS 3013 & CS 502 Summer 2006 • • MACH Apollo DOMAIN Unix (System V & BSD) Apple Mac (v. 1– v. 9) CP/M MS-DOS Windows NT & 2000 various embedded systems • … Course Introduction 17

Discussion: – What is an Operating System? CS 3013 & CS 502 Summer 2006

Discussion: – What is an Operating System? CS 3013 & CS 502 Summer 2006 Course Introduction 18

What is an Operating System? • Functions • Characteristics – Large, complex set of

What is an Operating System? • Functions • Characteristics – Large, complex set of programs – Long-lived, evolutionary – Worked on by many people over many years CS 3013 & CS 502 Summer 2006 – Creates abstractions – Multiplexes concurrent activities – Manages resources – Mediates access to hardware devices – Provides a variety of services to users and applications Course Introduction 19

Three important terms • Abstraction • A useful, practical idealization of a very complex

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 CS 3013 & CS 502 Summer 2006 Course Introduction 20

What is an operating system? (cont’d) • Abstractions: – – Implements processes & threads

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 • Definition — Same as judicial definition of pornography • “I cannot define it, but I sure can recognize one when I see it!” • Controls I/O • Implements networking & communications CS 3013 & CS 502 Summer 2006 Course Introduction 21

What is an Operating System XYZ Office Prog. Tools Media Player Business Appl. Services

What is an Operating System XYZ Office Prog. Tools Media Player Business Appl. Services UI/Shell OS Kernel Traditional OS OS Hardware Interfaces – Registers, etc. CPU CS 3013 & CS 502 Summer 2006 I/O Controllers Course Introduction Practical 22

Major OS Issues • • • • structure: how is the OS organized? sharing:

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 3013 & CS 502 Summer 2006 Course Introduction 23

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

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 CS 3013 & CS 502 Summer 2006 Course Introduction 24

Kinds of operating systems • • • Stand-alone machines – no OS Simple batch

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 3013 & CS 502 Summer 2006 Course Introduction 25

Kinds of operating systems (1) • Stand-alone machines – no OS per se •

Kinds of operating systems (1) • Stand-alone machines – no OS per se • Simple batch monitors • Manually scheduled “jobs, ” reset between jobs • Early business computers – E. g. , IBM 1401/1460 • Early mini-computers – E. g. , PDP 1, PDP 5, PDP 8, etc. – But defines important abstractions CS 3013 & CS 502 Summer 2006 Course Introduction • 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. 26

Kinds of operating systems (2) • Concurrent I/O and programs • SPOOL-ing (Simultaneous Peripheral

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 3013 & CS 502 Summer 2006 Course Introduction 27

Kinds of operating systems (3) • Time-sharing, multiple users, interactive • • • Many

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 1970 s – E. g. , MULTICS, IBM 360/67, DEC PDP-10, PDP-20 • Advanced minicomputers – DEC, Data General, Prime, etc. – Unix CS 3013 & CS 502 Summer 2006 Course Introduction 28

Kinds of operating systems (4) • Servers, non-stop systems, transaction processing • Banking, airline

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 3013 & CS 502 Summer 2006 Course Introduction 29

Kinds of operating systems (5) • PC’s, workstations • • CP/M, DOS, MS-DOS Apollo

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 3013 & CS 502 Summer 2006 • Multiple processor systems Course Introduction • Beowulf clusters • Unix, Solaris, HP-UX, Linux 30

Kinds of operating systems (6) • Real-time systems • Embedded systems • SAGE (North

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 • Systems you never heard of • • Auto ignition Cell phone, PDA Appliances … – Vx. Works, etc. CS 3013 & CS 502 Summer 2006 Course Introduction 31

OS History – Unix & Linux • Unix – Descendant of MULTICS – First

OS History – Unix & Linux • Unix – Descendant of MULTICS – First “C” version in 1973 (DEC PDP-11) • Timesharing for < 10 users on 32 K 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! CS 3013 & CS 502 Summer 2006 Course Introduction 32

OS History - Linux • Open Source – Linux. org • First Version 1991,

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, v 1. 0 – networking (Internet) – enhanced file system – many devices, dynamic kernel modules CS 3013 & CS 502 Summer 2006 Course Introduction 33

OS History - Linux • 1996, v 2. 0 – multiple architectures, multiple processors

OS History - Linux • 1996, v 2. 0 – multiple architectures, multiple processors – threads, memory management …. • Gnome UI – introduced in 1999 • Recent – – V 2. 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” CS 3013 & CS 502 Summer 2006 Course Introduction 34

OS History – Windows NT/2000/XP • Key designer – David Cutler also designed VAX/VMS

OS History – Windows NT/2000/XP • Key designer – David Cutler also designed VAX/VMS • 1988, v 1 – Win 32 API “microkernel” • 1990, v 3. 1– Server and Workstation versions • 1996, v 4 – – Win 95 interface Graphics to kernel More NT licenses sold than all Unix combined Microkernel de-emphasized CS 3013 & CS 502 Summer 2006 Course Introduction 35

OS History – Windows NT/2000/XP • Windows 2000 – NT 5. 0 – Multi-user

OS History – Windows NT/2000/XP • Windows 2000 – NT 5. 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 CS 3013 & CS 502 Summer 2006 Course Introduction 36

OS History – Windows NT/2000/XP • • • Microsoft has 80% to 90% of

OS History – Windows NT/2000/XP • • • Microsoft has 80% to 90% of OS market Wintel – Windows + Intel X 86 Win. NT 4. x is 12 million lines of code Win 2000 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 CS 3013 & CS 502 Summer 2006 Course Introduction 37

Break (next topic) CS 3013 & CS 502 Summer 2006 Course Introduction 38

Break (next topic) CS 3013 & CS 502 Summer 2006 Course Introduction 38