Parallel Programming - Processes
Parallel Programming
Section titled “Parallel Programming”Processes
Section titled “Processes”Process
Section titled “Process”A process is a program being executed.
Processes are managed by the operating system.
Consumption
Section titled “Consumption”- A process can take up several resources, mainly CPU and Memory (RAM)
- A process can be executed on one ore more CPU cores and thus takes up a percentage of it’s computing power
- A process can allocate memory in RAM
Process management
Section titled “Process management”- The operating system can execute more processes than the number of available cores.
- This happens by scheduling the CPU computing time and deviding/sharing it between the processes.
Process management (2)
Section titled “Process management (2)”- The OS manages processes using process tables.
- They contain the necessary information to control their execution.
- Entries in a process table are called process control block (PCB).
Process Control Block (PCB)
Section titled “Process Control Block (PCB)”- Contains:
- Process Identification (PID)
- Resources requested by the process (e.g. files)
- Area of the memory allocated by the process.
- Process State
- Contents of the process register
Process execution
Section titled “Process execution”A process is executed by the operating system by loading it’s registers from the PCB into the CPU
Process execution (2)
Section titled “Process execution (2)”- A process is being executed if it is assigned to a CPU.
- It’s state will then change to Running.
Process execution (3)
Section titled “Process execution (3)”- Processes are being controlled by changing their states
- We can abstract 3 states:
- Running
- Ready
- Blocked
Process states
Section titled “Process states”- Running
- The process is being executed
- Ready
- The process waits until the OS assigns a CPU to it
- Blocked
- The process needs an external resource
- Until the resource can be loaded by the OS, the process will remain in the state Blocked.
Parallel vs. Concurrent
Section titled “Parallel vs. Concurrent”- A system is said to be concurrent if it can support two or more action in progress at the same time.
- A system is said to be parallel if it can support two or more actions executing simultaneously.
Concurrent
Section titled “Concurrent”- Concurrent execution means two or more processes share the same CPU core.
- The CPU will rotate through the processes giving each processes a certain amount of execution time, before switching to the next process.
- When switching a process, the data of the process will be written into memory and the content of the next process will be loaded into the register of the CPU.
Concurrent
Section titled “Concurrent”- Loading a new process into the CPU is called context switch.
- A context switch is a time consuming operations. Many context switches will slow down the system.
Context Switch
Section titled “Context Switch”Context Switch (2)
Section titled “Context Switch (2)”- A context switch consists of these steps:
- Updating and saving the current PCB
- Selecting the next process for execution
- Restoring and updating the PCB of the new process.