[#1] Memory Management

Iniziamo. È gratuito!
o registrati con il tuo indirizzo email
[#1] Memory Management da 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. Paging

4. Segmented paging

5. The Pentium MMU

6. Consumers

6.1. Programs

6.1.1. Storage only

6.1.1.1. Code

6.1.1.2. Data

6.1.1.2.1. Global vs local variables

6.1.1.2.2. Initialized data

6.1.1.3. Addresses (locations)

6.1.2. Executable representacion

6.2. Processes

6.2.1. Virtual addressing

6.2.1.1. The MMU

6.2.1.2. Translation to physical

6.2.2. Runtime-only data structures

6.2.2.1. The Stack

6.2.2.2. The Heap

6.2.3. Locality

6.2.3.1. Two types

6.2.3.1.1. Spatial

6.2.3.1.2. Temporal

6.2.3.2. Supports

6.2.3.2.1. Memory hierarcalization

6.2.3.2.2. Virtual memory (in the future)

7. Hierarchy

7.1. Motivation

7.2. Relation with the locality behavior of the running processes

8. Fragmentation

8.1. Internal

8.2. External

9. Realocation

9.1. Static

9.1.1. Done by the compilers at compile time

9.1.2. Defined by the programmer

9.1.3. Processes are always in the same position

9.2. Dynamic

9.2.1. Done by the MMU at run time

9.2.2. Defined by the operating system

9.2.3. Processes can be easily reallocated

10. Protection and sharing

10.1. Between processes

10.2. Mechanisms

10.2.1. Base

10.2.2. Base + Limit

10.2.3. Paging

10.2.4. Segmentation

10.2.5. Segmented paging