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