Strategies Explicit vs. Implicit Memory Allocator General purpose vs. custom allocator Software vs. hardware Allocation Examples p1 = malloc(4)
p2 = malloc(5) p3 = malloc(6) free(p2) p4 = malloc(2) Goals of Good malloc/free Good execution-time performance
Good space utilization Good locality properties Fragmentation Poor memory utilization --fragmentation Internal overhead associated with a block of memory External have enough blocks of memory for a request, but not contiguous Internal fragmentation
Space in use External Fragmentation p1 = malloc(4) p2 = malloc(5) p3 = malloc(6) free(p2) p4 = malloc(6) External fragmentation depends on future requests; thus difficult to anticipate
Bidirectional Coalescing Boundary tags [Knuth73] Replicate size/allocated word at bottom of free blocks Allows us to traverse the list backwards, but requires extra space Important and general technique! Boundary Tags
1 word Header Format of allocated and free blocks a Application Memory (and padding?) Boundary tag (footer) 4
size 4 4 size 4 6 a a = 1: allocated block a = 0: free block size: total block size Application memory (allocated blocks only)
6 4 4 Your turn Using boundary tag data structure, define algorithms for: Allocation Free
Key Allocator Policies Placement policy: Splitting policy: First fit, worst fit, best fit, etc.
Trades off lower throughput for less fragmentation When do we go ahead and split free blocks? How much internal fragmentation are we willing to tolerate? Coalescing policy: Immediate coalescing: coalesce adjacent blocks each time free is called Deferred coalescing: try to improve performance of free by deferring coalescing
Refinements Separate lists Binary buddy Lea allocator Custom allocators Lea Allocator An approximate best-fit allocator with different behavior based on object size
Small Objects (<64 bytes) allocated by exactsize quicklists Medium Objects (<128K) coalesce quicklists Large Objects allocate and free by mmap Generally considered the best allocator known (as of 2000, anyway) http://g.oswego.edu/dl/html/malloc.html
Why programmers use Custom Allocators? Improving runtime performance Reducing memory consumption Improving software engineering (?) Alternative Memory Management Region (arenas)
Reserve memory blocks for program parts Deallocate entire regions, not per allocation Garbage collection
Programmer allocates but doesnt free System keeps track of memory pointed to locations, removes the rest Java Why Garbage Collect at All? Safety
Memory leaks Continued use of freed pointers Simplicity Correctness Programming ease The Two-Phase Abstraction 1. Detection 2. Reclamation
Liveness and Garbage There is a root set which is defined as live. Anything reachable from a live pointer is also live Everything else is garbage The Root Set
The Root Set Static global and module variables Local Variables Variables on any activation stack(s) Everyone else
Anything Reachable From a live value Reference Counting Each allocated chunk has reference count that shows how many locations point (refer) to this one. Advantages ??? Disadvantages ??? Mark-Sweep Collection
Starting from the root set traverse all pointers via depth/breadth first search. Free everything that is not marked. More Information/Detail If you wish to know more: https://www.mpi-inf.mpg.de/ departments/rg1/teaching/ advancedc-ws08/script/lecture09.pdf
The Treynor-Black model assumes that the security markets are almost efficient Active portfolio management is to select the mispriced securities which are then added to the passive market portfolio whose means and variances are estimated by the investment management firm...
Figure 2: Polyplexes are non-viral gene delivery vehicles that consist of a DNA core wrapped in a positively charged polymer coat. The N/P ratio, or amine to phosphate ratio, is a measure of the amount of polymer to DNA used...
Session overview. This session will cover assessment strategies and tools teachers can use when assessing Victorian Curriculum Languages, followed by an exploration of how the new language assessments could be used to support teachers' assessment practices
All - describe how factors affect distance travelled of a projectile - Draw free body diagrams on a projectile in flight (W & AR) Most - describe the effects of the parallelogram of forces acting on a projectile in flight...
Former USSR. The creation of the Soviet Union brought under one flag hundreds of regional ethnic groups, many of which participated in the revolution. Even under the Czar, the empire was fractured religiously with E. Orthodox in the west and...
Being hit by falling objects. Slipping on greasy, wet or dirty surfaces striking against projecting, poorly stacked items or misplaced materials. Cutting, puncturing, or tearing the skin of hands or other parts of the body on projecting nails, wire or...
Ready to download the document? Go ahead and hit continue!