* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download Course Introduction
Survey
Document related concepts
Transcript
CS3013 & CS502 – 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 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 • 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 (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 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 – 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. 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/ CS 3013 & CS 502 Summer 2006 Course Introduction 7 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 CS 3013 & CS 502 Summer 2006 Course Introduction 8 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 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 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 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 “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 … CS 3013 & CS 502 Summer 2006 Course Introduction 13 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. CS 3013 & CS 502 Summer 2006 Course Introduction 14 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 CS 3013 & CS 502 Summer 2006 Course Introduction 15 Sample images from VolumePro CS 3013 & CS 502 Summer 2006 Course Introduction 16 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 Course Introduction 18 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 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 – 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 UI/Shell Practical OS Kernel Traditional OS OS Hardware Interfaces – Registers, etc. CPU CS 3013 & CS 502 Summer 2006 I/O Controllers Course Introduction 22 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 • 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 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 • Simple batch monitors • 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 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 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 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 CS 3013 & CS 502 Summer 2006 Course Introduction 28 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 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 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 … – VxWorks, etc. CS 3013 & CS 502 Summer 2006 Course Introduction 31 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! CS 3013 & CS 502 Summer 2006 Course Introduction 32 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 CS 3013 & CS 502 Summer 2006 Course Introduction 33 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” CS 3013 & CS 502 Summer 2006 Course Introduction 34 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 CS 3013 & CS 502 Summer 2006 Course Introduction 35 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 CS 3013 & CS 502 Summer 2006 Course Introduction 36 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 CS 3013 & CS 502 Summer 2006 Course Introduction 37 Break (next topic) CS 3013 & CS 502 Summer 2006 Course Introduction 38