Only 1 process is executed at a time from the Ready Queue
None of the Goals is satisfied
Example => MS DOS 1981
Batch Processing
User prepares jobs using punch cards > A Operator sorts the Jobs into Batches of similar needs > Each Jobs of 1 batch is executed like Single process
None of the Goals is satisfied
Example => ATLAS, Manchester Univ 1960s
Multi-Programming
Several processes sharing the Main Memory in a Ready Queue
OS can execute any other if current process gets busy with I/O
Single CPU, Better CPU Utilization
Example => THE, Dijkstra 1960s
Multi-Tasking
Time Sharing => Each Process is executed of a fixed amount of time
Single CPU, Context Switching
All Goals are followed
Increases responsiveness
Example => CTSS, MIT 1960s
Multi-Threading
.txt > .cpp > compile > executable (.exe) > Program > Process (Under Execution in RAM)
Thread (Light weight Process) => Sub-Process in a Process, Independent task
Thread Scheduling => Threads are scheduled for execution based on their priority
Thread Context Switching => Fast switching, CPU’s cache state is preserved, OS saves current state of thread & switches to another thread of same process, Doesn’t includes switching of memory address space
Executes code Asynchronously, Needs to be Multi-Processing environment (Better to have no. of Threads equal to CPU)
No need for Isolation and Protection as they are part of same Process
Example => Multiple Tabs in Browser, Text-editor
Multi-Processing
More than 1 CPU
Increases reliability => If 1 CPU fails than other can work
Better Throughput => Number of task executed per unit time