Introduction - Computer Science

Download Report

Transcript Introduction - Computer Science

CS-502 Operating Systems
Fall 2007
Hugh C. Lauer
Adjunct Professor
CS-502 Fall 2007
Introduction
1
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
CS-502 Fall 2007
Introduction
2
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)
CS-502 Fall 2007
Introduction
3
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!
CS-502 Fall 2007
Introduction
4
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/
CS-502 Fall 2007
Introduction
5
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
CS-502 Fall 2007
Introduction
6
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
CS-502 Fall 2007
Introduction
7
Schedule & Logistics
• Schedule
• If you need to eat during class
– 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
– 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
– 2-3 weeks each
• Mobile Phones, pagers and other
similar devices OFF during
class
CS-502 Fall 2007
Introduction
– <Professor’s last name> @
cs.wpi.edu
– Adjunct office phone:–
(508) 831-6470 (shared)
8
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
CS-502 Fall 2007
Introduction
9
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
CS-502 Fall 2007
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-502 Fall 2007
Introduction
11
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
CS-502 Fall 2007
Introduction
12
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
CS-502 Fall 2007
Introduction
13
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
CS-502 Fall 2007
Introduction
14
Questions?
CS-502 Fall 2007
Introduction
15
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
CS-502 Fall 2007
Introduction
16
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?
CS-502 Fall 2007
Introduction
17
Instructor — Hugh C. Lauer
Adjunct 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
…
CS-502 Fall 2007
Introduction
18
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)
CS-502 Fall 2007
Introduction
19
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-502 Fall 2007
Introduction
20
Sample images from VolumePro
CS-502 Fall 2007
Introduction
21
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
CS-502 Fall 2007
•
•
•
•
•
•
•
•
Introduction
MACH
Apollo DOMAIN
Unix (System V & BSD)
Apple Mac (v.1 – v.9)
MS-DOS
Windows NT, 2000, XP
various embedded systems
…
22
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
•
•
•
•
CS-502 Fall 2007
Computer architecture
Software reliability
Networks
Computer graphics & volume rendering
Introduction
23
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
CS-502 Fall 2007
Introduction
24
Class Discussion
What is an Operating System?
(Laptops closed, please!)
CS-502 Fall 2007
Introduction
25
What is an Operating System?
• Characteristics
• Functions
– Large, complex set of
programs
– Long-lived,
evolutionary
– Worked on by many
people over many
years
CS-502 Fall 2007
Introduction
– Creates abstractions
– Multiplexes concurrent
activities
– Manages resources
– Mediates access to
hardware devices
– Provides a variety of
services to users and
applications
– …
26
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)
CS-502 Fall 2007
Introduction
27
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
• Definition — Same as
judicial definition of
pornography
• “I cannot define it, but I
sure can recognize one
when I see it!”
• Controls I/O & peripherals
• Implements security and
accessibility
CS-502 Fall 2007
Introduction
28
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-502 Fall 2007
I/O Controllers
Introduction
29
Computer System Organization
CS-502 Fall 2007
Introduction
30
Operating System Organization
Utilities, tools, other stuff
System Libraries (user space)
Kernel
CS-502 Fall 2007
Introduction
31
Operating System Organization (continued)
Utilities, tools, other stuff
System Libraries (user space)
Kernel
Drivers & modules
CS-502 Fall 2007
File Systems
Introduction
32
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-502 Fall 2007
Introduction
33
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
CS-502 Fall 2007
Introduction
34
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-502 Fall 2007
Introduction
35
Kinds of operating systems (1)
• Stand-alone machines
– no OS
• 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.
– 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.
CS-502 Fall 2007
Introduction
36
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-502 Fall 2007
Introduction
37
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
CS-502 Fall 2007
Introduction
38
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-502 Fall 2007
Introduction
39
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-502 Fall 2007
• Multiple processor
systems
Introduction
– Beowulf clusters
– Unix, Solaris, HP-UX,
Linux server systems
40
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
– VxWorks, etc.
CS-502 Fall 2007
Introduction
–
–
–
–
Auto ignition
Cell phone, PDA
Appliances
…
41
Break
CS-502 Fall 2007
Introduction
49
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
CS-502 Fall 2007
Introduction
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
CS-502 Fall 2007
Introduction
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
CS-502 Fall 2007
Introduction
52