Multiprocessor Memory Allocation
Download
Report
Transcript Multiprocessor Memory Allocation
Operating Systems
CMPSCI 377
Lecture 1
Emery Berger
University of Massachusetts, Amherst
UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science
Information
Course web page:
My contact info:
[email protected]
Phone: 413-577-4211
Office hours by appointment
TA’s:
http://www.cs.umass.edu/~emery/cmpsci377
to be announced
Discussion section:
W 12:20 – 1:10, LGRC A301
UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science
2
Today’s Class
Organizational meeting
Course organization & outline
Policies
Prerequisites & course sign-up
UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science
3
Course Organization
Capacity is 50
Class: junior or senior-level
Not for freshman or sophomores
Enrollment policy
If space becomes an issue,
graduating seniors get preference
UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science
4
Prerequisites
CMPSCI 187 (Data Structures)
CMPSCI 201 (Architecture)
Textbook: none required
UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science
5
Course Organization
Accounts in EdLab: 30+ Linux PC’s
Discussion section to help you with projects,
Office hours and location of TA’s:
To be announced!
UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science
6
Course Requirements
Note: These percentages are subject to revision.
Class participation: 10%
Includes in-class quizzes
Programming projects: 40%
Exams (midterm, final): 50%
Strict late policy – not accepted late without
medical note from UMass
UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science
7
Plagiarism
Cheaters will be found and punished
Will use sophisticated software to detect plagiarized
programs
Cheating includes:
“Borrowing” code from someone
This includes reading previous solutions
Giving code to someone
Copying code from anyone (including the net)
Hiring someone to write your code
Submitting someone else’s code as your own
UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science
8
Projects
Build trace-based operating system simulator in Java
Read in reference traces of actual programs
Simulate operating system algorithms
Virtual memory, CPU scheduler, disk scheduler, file
system
Some twists:
Test suite
Random module shuffling
Modern software engineering
Source code control, real IDEs with debuggers, etc.
UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science
9
Names & Pictures
For the web page
Also, for accountability!
UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science
10
Introduction to Operating Systems
UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science
11
What’s An Operating System?
Definition has changed over years
Originally, very bare bones
Now, includes more and more
Bill Gates: Windows =
Everything in other operating systems
+Internet Explorer
+Media player
+ “even a ham sandwich” (DOJ vs. Microsoft)
UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science
12
OS:Traditional View
Interface between user
and architecture
Implements virtual machine:
Hides architectural details
Easier to program than
raw hardware (hopefully)
Provides services and
coordinates machine
activities
User-level Applications
virtual machine interface
Operating System
physical machine interface
Hardware
UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science
13
New Developments in OS Design
Operating systems: active field of research
Demands on OS’s growing
New application spaces (Web, Grid)
Rapidly evolving hardware
Advent of open-source operating systems – Linux
You can contribute to and develop OS’s!
Excellent research platform
UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science
14
History of Operating Systems
UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science
15
The Dark Ages (1940’s-1960’s)
Hardware: expensive;
humans: cheap
Evolution of functionality:
One user
Batch processing
Overlap of I/O &
computation
Multiprogramming
UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science
16
1. Single-User Computers
One user at a time on console
Computer executes one function at a time
No overlap: computation & I/O
User must be at console to debug
Multiple users = inefficient use of machine
UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science
17
2. Batch Processing
Execute multiple “jobs” in batch:
Load program
Run
Print results, dump machine state
Repeat
Users submit jobs (on cards or tape)
Human schedules jobs
Operating system loads & runs jobs
More efficient use of machine, complicates debugging
UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science
18
3. Overlap I/O and Computation
Before: machine waits for I/O to complete
New approach:
Allow CPU to execute while waiting
Add buffering
Data fills “buffer” and then output
and interrupt handling
I/O events trigger a signal (“interrupt”)
More efficient use of machine, but still one job at a time
UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science
19
4. Multiprogramming
Allow several programs to run at same time
Run one job until I/O
Run another job, etc.
OS manages interaction between programs:
Which jobs to start
Protects program’s memory from others
Decides which to resume when CPU available
UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science
20
OS Complexity
Increased functionality & complexity
First OS failures
Multics (GE & MIT):
announced 1963, released 1969
OS/360 released with 1000 known bugs
Need to treat OS design scientifically
Managing complexity becomes key to…
UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science
21
The Renaissance (1970’s)
Hardware: cheap; humans: expensive
Users share system via terminals
The UNIX era
Multics:
UNIX:
army of programmers, six years
three guys, two years
“Shell”: composable commands
No distinction between programs & data
But: response time & thrashing
UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science
22
The Industrial Revolution (1980’s)
Hardware very cheap;
humans expensive
Widespread use of PCs
IBM PC: 1981, Macintosh: 1984
Simple OS (DOS, MacOS)
No multiprogramming,
concurrency, memory
protection, virtual memory, …
Later: networking, file-sharing,
remote printing…
GUI added to OS (“WIMP”)
UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science
23
The Modern Era (1990’s-now)
Hardware cheap; Processing demands increasing
“Real” operating systems on PC’s
NT (1991); Mac OS X; Linux
Different modalities:
Parallel: Multiple processors, one machine
Distributed: Multiple networked processors
Real-time: Strict or loose deadlines
Sensor networks: Many small computers
UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science
24
Moral of the Story
The only constant: Change
In 50 years, almost every computer component now
9 orders of magnitude faster, larger, cheaper
Example:
1983
1999
0.5
500
cost/MIP
$100,000
$500
memory
1 MB
1 GB
network
10 Mbit/s
1 GB/s
1 GB
1 Tbyte
MIPS
disk
UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science
25
Moral of the Story, II
No counterpart in any other sphere of
human existence!
Transportation:
200 years: horseback (10 mph) to Concorde (1000
mph) = 2 orders of magnitude
Communication is closest:
100 years: Pony Express (10 mph) to nearly speed of
light (600 million mph) = 7 orders of magnitude
UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science
26
Coming Soon
Moore’s Law – running out of steam
New features coming to computer near you:
Multiple cores
Unreliable memory
Serious power/heat constraints
UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science
27
Next Time
Operating Systems & Architecture
UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science
28