Download Course Introduction

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

VS/9 wikipedia , lookup

RSTS/E wikipedia , lookup

OS-tan wikipedia , lookup

Mobile operating system wikipedia , lookup

Plan 9 from Bell Labs wikipedia , lookup

Distributed operating system wikipedia , lookup

DNIX wikipedia , lookup

Unix wikipedia , lookup

OS/2 wikipedia , lookup

Berkeley Software Distribution wikipedia , lookup

CP/M wikipedia , lookup

Security-focused operating system wikipedia , lookup

Spring (operating system) wikipedia , lookup

Unix security wikipedia , lookup

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