<aside> <img src="/icons/map-pin_gray.svg" alt="/icons/map-pin_gray.svg" width="40px" /> The next few upcoming lectures will be reminiscent of the topics we have previously covered in COE628 - Notes — going over topics such as process, threads, synchronization, and virtualization.

</aside>

Process

A process represents the execution instance of a program. It includes the program's code, data, and system resources necessary for its execution. The OS kernel allocates various resources to a process to facilitate its execution. These resources include:

Processes require memory to store their code, data, and runtime variables. Memory is typically divided into various segments, such as text, data, heap, and stack.

Figure 3.1 Process memory layout.

Figure 3.1 Process memory layout.

The OS kernel manages the states and contexts of each process:

When a process is loaded onto the CPU for execution, the OS kernel performs operations like:

The OS kernel plays a central role in managing these resources and ensuring the smooth execution of multiple processes.