Memory Management
All tasks executed by a computer need some memory space. One of the jobs of the operating system is to allocate areas of memory to different tasks. These areas of memory are called partitions.

Some areas of memory are permanently allocated or reserved for special purposes eg BIOS, Booting up, Video display, etc... but there will be an area of memory which can be allocated to other tasks as required. A memory map will show what areas of memory are allocated to what tasks...

PC 330/350 - Pentium - System Memory Map
Address Range (Hex) Description
F0000-FFFFF System BIOS
EC000-EFFFF FLASH Boot Block
EA000-EBFFF ECSD (plug and play configuration area)
E8000-E9FFF OEM LOGO and vital product data area
E0000-E7FFF BIOS Reserved
C8000-DFFFF Available HI DOS memory (open to ISA and PCI bus)
A0000-C7FFF Off-board video memory and BIOS
9FC00-9FFFF Off-board video memory and BIOS
80000-9FBFF Extended conventional
00000-7FFFF Conventional

The partitioning of memory may allow a number of different processes to be undertaken at the same time.

The operating system must make sure that..

  • each task has enough memory to be executed.
  • one task does not need an area of memory allocated to another task...if one task interferes with another it could crash the computer.
  • the area of memory is released when the task is completed so that it can be allocated to another task.

Virtual memory techniques may be used where the memory required by a task is divided into pages. These pages can be swapped into memory when needed or on to hard disc when not required. (This makes the task think it is using more memory than it actually is!). The OS will need to keep very careful track of the pages and where they are stored!!

A buffer is an area of memory set aside for storing temporary data. Buffers are widely used for input and output data.