Software and Software Development

Back To Overview

Some examples of the functions of an operating system are:


The OS must: track the status of memory allocation (marking address spaces as either allocated or free), determine storage requirements (working out how much memory to allocate to each running process), and control memory usage (managing swapping between main and virtual memory).

With paging, memory is divided into fixed-sized chunks called pages. Pages can be stored in a non-contiguous manner, i.e. pages of the same process do not have to be stored physically next to each other. A page table maps between the physical and logical memory locations.

With segmentation, memory is


An interrupt is a signal sent to the processor, indicating that a device / process requires attention. Interrupts have different priorities, and a higher priority interrupt can interrupt a lower priority one.

Interrupts are needed so that processor time can be allocated to processes that are considered urgent. Reasons a processor may be interrupted include:

An interrupt service routine (ISR) is a small program that has been designed to respond to an interrupt's request.

If an interrupt is raised, the following happens:

  1. The processor finishes the current fetch-decode-execute cycle.
  2. If the interrupt is of a lower or equal priority to the currently running process, then the current process continues.
  3. Otherwise, the contents of the CPU's registers are pushed onto a stack in memory.
  4. The location of the start of the appropriate ISR is loaded into the program counter.
  5. Once the ISR has completed, the previous contents of the registers are popped from the stack and loaded back into the registers.

CPU time is allocated to different processes using scheduling. By carrying out small parts of multiple larger tasks in turn, the processor can give the appearance of carrying out several tasks simultaneously. Schedulers use different algorithms, such as:


There are many different types of OS, including:


The BIOS (Basic Input Output System) is stored in ROM. It is used to initialise & test system hardware, and to load the OS into RAM.


A device driver is a piece of software that controls a hardware device, providing an interface between the device and the OS.

It would not be possible for an OS to be programmed to handle all existing and future devices, and so drivers are needed to allow the OS to interact with hardware devices, without knowing the specifics of them.


A virtual machine is a piece of software that behaves in the same way as an actual computer.