In order to understand threads, it helps to understand what a process is first.
Within Linux, if you run the command ps
you will see a list of processes running on the machine:
PID TTY TIME CMD 20215 pts/0 00:00:00 bash 20231 pts/0 00:00:00 ps
A process is a running instance of a program at a particular point in time. We can see in the example that both the ps
command we typed and the bash
shell is shown in the list.
Each process has a unique ID identifying it and has a number of other properties. These are:
System resources
Security attributes
Memory
Processor state
At any point in time multiple processes could be running that need access to the register in the CPU, for example. It is the job of the short-term scheduler to decide which process is to be executed.
A thread can be thought of as a sub-division of a process and is the smallest unit a scheduler will work with to allocate resources.
Just as the operating system can have multiple programs running and a...