1. Introduction

One of the most vital resources that a computer needs to manage is its memory. All software runs in memory and all data is stored in some form of memory. The quantity of memory can be vastly different depending on the type of computer.

For example the processing chip embedded in a chip-and-pin credit card will have a tiny amount of memory to hold its encrypted data

Whilst a super-computer cluster will have petabytes of memory to manage (1 million gigabytes)

Like any limited resource, memory has to be managed to get the most efficient use out of it. This is the job of the 'memory manager', a part of the operating system. The memory manager:

Allocates memory to each program as it runs

Maps the 'logical' addresses used by programs to the actual addresses in physical memory

Protects programs from each other, preventing them from overwriting one another

Allows the computer to run programs using virtual memory when short of RAM