Announcements - PowerPoint PPT Presentation

About This Presentation
Title:

Announcements

Description:

Software Developer Dreams. Lecture 36: Programming Languages & Memory Management ... the address of an object in variables which causes errors, e.g., buffer overflow ... – PowerPoint PPT presentation

Number of Views:13
Avg rating:3.0/5.0
Slides: 36
Provided by: CSCF
Category:

less

Transcript and Presenter's Notes

Title: Announcements


1
Announcements Review
  • Last few times
  • GUI
  • Today
  • Research in Programming Languages
  • introduction to memory management
  • Read
  • Ch GU1 GU2 Cohoon Davidson
  • Ch 14 Reges Stepp
  • Lab 10 set game
  • due 4/26
  • Exam 2
  • Wed 5/2 530-730
  • GEO 2.216

2
Software Developer Dreams
3
Software Developer Dreams
  • Easy to implement specifications
  • Easy to get correct
  • Robust to errors of all sorts
  • Easy to maintain
  • Runs fast

4
Impediments to the Dream
  • Applications growing bigger more complex
  • Application knowledge spread thin
  • Testing is not enough
  • Architectures growing more complex
  • Single core complexity
  • Multicore
  • The glue is more complicated
  • Dynamic optimization runtime systems
  • Coordination between multiple languages and
    runtime systems
  • Impossible to test all scenarios
  • Difficult to understand the program
  • or its runtime behavior

5
Multi-pronged Approach to Correct High
Performance Software
  • Better languages
  • Java and C are not the last programming
    languages
  • Validation when possible
  • We probably will not be able to validate
    substantial parallel applications any time soon
  • Is application growth outpacing validation
    advances?
  • Analysis and development tools
  • Static bug finding tools
  • Dynamic optimization
  • Dynamic bug finding tools
  • Self healing systems
  • Dont crash
  • Dynamically updatable systems
  • Evaluation
  • Performance still matters
  • unobtrusive, low overhead approaches

6
Java put garbage collection into widespread use
  • In Java
  • programs use new
  • objects abstract their location, i.e., a program
    never records an object address
  • Therefore, objects can move
  • programs contain no free/delete
  • easier to program, since you dont have to figure
    out when an object becomes unreachable
  • In C and C
  • programmers use new and free/delete
  • programs can record the address of an object in
    variables which causes errors, e.g., buffer
    overflow
  • Therefore, objects may not move

7
Example
  • Program with classes for plates, bowls,
    silverware
  • What happens in memory when the program says
    new?

8
Select Plates, Bowls, Silverware Objects
9
Select Plates, Bowls, Silverware
10
Explicit Memory ManagementHand Wash Dishes
11
Explicit Memory ManagementHand Wash Dishes
12
Explicit Memory ManagementHand Wash Dishes
13
Explicit Memory ManagementHand Wash Dishes
14
Explicit Memory ManagementHand Wash Dishes
15
Dish Washer Automatic Memory ManagementGarbage
Collection
  • Dad is the garbage collector
  • Do forever
  • Prepare meal
  • Select plates, bowls, silverware
  • Serve food Eat
  • Dad put dishes in dishwasher
  • Dad checks if dishwasher full or
  • Out of plates, bowls or silverware
  • Dad runs dishwasher

16
Select Plates, Bowls, Silverware
17
Select Plates, Bowls, Silverware
18
Dad Runs Dish Washer Puts Up Dishes
19
Memory System Organization
Registers
Instruction Cache
CPU Central Processing Unit
Level 2 Cache
Data Cache
Memory
20
Mapping Dishes to Computer Resources
chunks of memory
Class Declarations
21
Contiguous Allocation
Plate p new Plate()
22
Contiguous Allocation
Plate p1 new Plate() Plate p2 new Plate()
Bowl b1 new Bowl() Fork f1 new Fork()
Fork f2 new Fork() Spoon s1 new Spoon()
23
Contiguous Allocation
etc.
24
Explicit Memory ManagementFree with Continuous
Allocation
Free (b3)
25
Free with Contiguous Allocation
Free (b3) Free (s1)
26
Garbage Collectionwith Contiguous Allocation
Wait longer
27
Garbage Collection with Contiguous Allocation
L
L
Find live objects L
L
L
28
Garbage Collection with Contiguous Allocation
Find live objects L Copy live objects to new area
L
29
Garbage Collection with Contiguous Allocation
Find live objects L Copy live objects to new
area Reclaim old space
L
30
Garbage Collection with Contiguous Allocation
Find live objects L Copy them to new
area Reclaim old space Allocate into new space
31
Allocation withSize-Class Free-Lists
32
Allocation withSize-Class Free-Lists
Free (b3) Free (s1)
33
Allocation withSize-Class Free-Lists
free list size 24 bytes
free list size 20 bytes
...
We can use linked lists for each list of free
sizes to find the free ones
...
34
Memory Management
  • All memory management uses one of these two basic
    mechanisms
  • Contiguous allocation
  • Size-Class Free-Lists
  • Classic Computer Science Problem in Space-Time
    tradeoff

35
Other Key Ideas in Memory Management
  • Locality
  • Incrementality
  • Generational behavior
  • Older-first behavior
  • My research group introduced this one!
Write a Comment
User Comments (0)
About PowerShow.com