[#1] Memory Management

Get Started. It's Free
or sign up with your email address
[#1] Memory Management by Mind Map: [#1] Memory Management

1. Segmentation

1.1. Two addressing spaces

1.1.1. Virtual

1.1.2. Physical

1.2. Memory partitions

1.2.1. Created on runtime

1.2.2. Variable size upon process request

1.2.3. Each partition is called a segment

1.2.4. Description of the memory partition is called the Segment Table How big is it? Where is it stored?

1.2.5. Translation from virtual -> physical Every memory operation requires two effective accesses to physical memory Special hardware

1.3. Trade-offs

1.3.1. No internal fragmentation

1.3.2. Potential external fragmentation Compacting memory Allocation strategies Best Fit Worst Fit

1.3.3. Easy sharing mechanism implied

2. Historical evolution

2.1. Bare machine

2.2. Monolithic monitor

2.3. Partitioned (physical) memory

2.3.1. Contiguous Variable Fixed

2.3.2. Non-contiguous Fixed size Pages Variable size Segments

2.3.3. Consecuences Memory management Memory partition description tables On system boot Runtime

3. Consumers

3.1. Programs

3.1.1. Storage only Code Data Global vs local variables Initialized data Addresses (locations)

3.1.2. Executable representacion

3.2. Processes

3.2.1. Virtual addressing The MMU Translation to physical

3.2.2. Runtime-only data structures The Stack The Heap

3.2.3. Locality Two types Spatial Temporal Supports Memory hierarcalization Virtual memory (in the future)

4. Hierarchy

4.1. Motivation

4.2. Relation with the locality behavior of the running processes

5. Fragmentation

5.1. Internal

5.2. External

6. Realocation

6.1. Static

6.1.1. Done by the compilers at compile time

6.1.2. Defined by the programmer

6.1.3. Processes are always in the same position

6.2. Dynamic

6.2.1. Done by the MMU at run time

6.2.2. Defined by the operating system

6.2.3. Processes can be easily reallocated

7. Protection and sharing

7.1. Between processes

7.2. Mechanisms

7.2.1. Base

7.2.2. Base + Limit

7.2.3. Paging

7.2.4. Segmentation

7.2.5. Segmented paging

8. Paging

9. Segmented paging

10. The Pentium MMU