The memory manager will allocate processes blocks of memory to work with. This allows different processes to work side by side in the same memory space. Without memory management processes may try and access each others memory which cause corruption of data or even security risks. These blocks of memory are known as pages and the system of allocating memory in this way is known as paging.

A good size for a page is about 32K. If a page is too big then we could get wasted memory. If it is too small then it becomes difficult to manage all of the pages. The memory manager stores a table of which process has which page. As such if a process requests a page which it does not own, the memory manager can say no to the request.

Each process will use many pages of memory. A special table, known as the paging table, will keep track of which process is using which page. It also keeps track of what blocks of memory are free.

Process ID

Page ID Address
5212 1 0
5212 2 32769
5212 3 65537
5212 4 98305
4321 5 131073
4321 6 163841
9832 7 196609
9832 8 229377
9832 9 262145

We only need to store the address of a page, which process it is associated with and a primary key to identify it. As all pages are the same size we do not need to store the length of a page.