cs 3013 & cs 502 summer 2006 course introduction1 cs3013 & cs502 – operating systems hugh...
TRANSCRIPT
CS 3013 & CS 502 Summer 2006
Course Introduction 1
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
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
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
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”
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)
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/
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
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
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
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.
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?
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– …
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.
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
CS 3013 & CS 502 Summer 2006
Course Introduction 16
Sample images from VolumePro
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• …
CS 3013 & CS 502 Summer 2006
Course Introduction 18
Discussion:–What is an Operating
System?
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
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
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!”
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
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?
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
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
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.
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
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
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 (?)
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
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• …
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!
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
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”
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
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
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
CS 3013 & CS 502 Summer 2006
Course Introduction 38
Break
(next topic)