Contiguous Memory Allocation

How does the operating system divide memory among programs? One approach is to load each process into a contiguous space, which is called contiguous memory allocation.

The operating system is placed inside memory first, usually at either far low or far high memory addresses, and then the remaining available memory is allocated to processes as needed.

One method of allocating contiguous memory is to divide all available memory into equal sized partitions, and to assign each process to their own partition. This restricts both the number of simultaneous processes and the maximum size of each process, and is no longer used in practice.

An alternate approach is to keep a list of unused (free) memory blocks (holes), and to find a hole of a suitable size whenever a process needs to be loaded into memory. Several strategies exist for allocating memory this way (see the next slide.)