Codecademy Logo

Memory Management

Print Cheatsheet

The OS as a Memory Manager

The operating system dictates which processes get to live in main memory at a given time to control the use of shared hardware resources.

Addresses in Memory

A location in memory is referenced using an address and is either free or allocated; that is, it is either occupied or available to be used.

Process Registers

Process registers are the type of memory closest to the processor; they contain the data and instructions the processor actually uses in its operations.

Segmentation

Segmentation is a memory management technique used to create segments - adjacent blocks of memory that vary in length depending on what is being stored within a given segment.

Fragmentation

Fragmentation occurs when blocks of allocated memory are distributed inefficiently such that there are many small blocks of free contiguous memory but very few large blocks.

Virtual Memory

Virtualizing memory provides the ability to sandbox user-space processes such that they may not access memory beyond what is required for them to operate.

Paging

Paging is a technique that allows the memory of a process to be stored at non-contiguous addresses.

Static Loading

If a program is loaded statically, the entirety of that program is loaded into memory prior to execution.

Dynamic Loading

If a program is loaded dynamically, only the parts which are necessary for execution are loaded at any given time.