Context switching

Current processors have two functioning modes:

  • supervisor mode – all instruction set can be executed.

    • is a privileged mode.

  • user mode – only part of the instruction set can be executed.

    • input/output instructions are excluded as well as those that modify control registers.

    • it is the normal mode of operation.

Switching from user mode to supervisor mode is only possible through an exception (for security reasons).

An exception can be caused by:

  • I/O interrupt.

    • external to the execution of the current instruction.

  • Illegal instruction (division by zero, bus error).

    • associated with the execution of the current instruction, but not intended.

  • Trap instruction (software interruption)

    • associated with the execution of the current instruction, and intended.

The operating system should function in supervisor mode.

  • in order to have access to all the functionalities of the processor.

Thus kernel functions (including system calls) must be fired by:

  • hardware (interrupt).

  • trap (software interruption).

This establishes a uniform operating environment: exception handling.

Context switching is the process of storing the state of a process and restoring the state of another process.

Context switching occurs necessarily in the context of an exception, with a small difference on how it is handled.

Processing a (normal) exception

Last updated