Process abstraction

What’s the point?

OS should provide efficient use of the hardware resource:

  • By managing the programs executing on the hardware

If there is only one program executing at any point in time, we can’t utilize hardware resources effectively.

We want to allow multiple programs to share the hardware.

How can we accomplish this?

Allow users to switch between running programs, A and B.

To do this, info regarding A execution has to be stored.

We need to swap in information to run B.

To describe a running program, we provide a abstraction aka a process.

Puzzle pieces

  • Process abstraction

    Info describing an executing program

  • Process scheduling

    Deciding which process get to execute

  • Inter-process communication + syncing

    passing info between processes

  • Thread (alternative to process)

    Light weight process aka Thread

Things you should know

memory (Program execution)

Generic computer organization

Parts of process

Memory context

Hardware context

OS Context

What is Process Control Block and Process Table