[#1] Memory Management

Get Started. It's Free
or sign up with your email address
Rocket clouds
[#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

1.2.4.1. How big is it?

1.2.4.2. Where is it stored?

1.2.5. Translation from virtual -> physical

1.2.5.1. Every memory operation requires two effective accesses to physical memory

1.2.5.2. Special hardware

1.3. Trade-offs

1.3.1. No internal fragmentation

1.3.2. Potential external fragmentation

1.3.2.1. Compacting memory

1.3.2.2. Allocation strategies

1.3.2.2.1. Best Fit

1.3.2.2.2. 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

2.3.1.1. Variable

2.3.1.2. Fixed

2.3.2. Non-contiguous

2.3.2.1. Fixed size

2.3.2.1.1. Pages

2.3.2.2. Variable size

2.3.2.2.1. Segments

2.3.3. Consecuences

2.3.3.1. Memory management

2.3.3.2. Memory partition description tables

2.3.3.2.1. On system boot

2.3.3.2.2. Runtime

3. Consumers

3.1. Programs

3.1.1. Storage only

3.1.1.1. Code

3.1.1.2. Data

3.1.1.2.1. Global vs local variables

3.1.1.2.2. Initialized data

3.1.1.3. Addresses (locations)

3.1.2. Executable representacion

3.2. Processes

3.2.1. Virtual addressing

3.2.1.1. The MMU

3.2.1.2. Translation to physical

3.2.2. Runtime-only data structures

3.2.2.1. The Stack

3.2.2.2. The Heap

3.2.3. Locality

3.2.3.1. Two types

3.2.3.1.1. Spatial

3.2.3.1.2. Temporal

3.2.3.2. Supports

3.2.3.2.1. Memory hierarcalization

3.2.3.2.2. 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