Multiprocessing
Multiprocessing involves the simultaneous execution of multiple processes on a system equipped with multiple CPUs or CPU cores. Each process represents a running program and runs independently with its own memory space and resources. The goal of multiprocessing is to enhance system throughput and speed up execution by distributing the workload across several processors.
Multithreading
Multithreading, on the other hand, revolves around the execution of multiple threads within a single process. Threads are lightweight units of execution that share the same memory space and resources, allowing parallel execution within a process.
Multiprogramming
Multiprogramming is a strategy where multiple programs are loaded into memory simultaneously, and the CPU switches between them to execute instructions. The objective is to maximize CPU utilization by swiftly switching between different programs, especially when one is waiting for I/O or other operations. Each program operates within its distinct memory space.
Multitasking
Multitasking is a technique that enables the concurrent execution of multiple tasks or processes on a single CPU. CPU time is divided among tasks,creating the illusion of parallel execution. Modern operating systems commonly use multitasking to provide responsiveness and the capability to run multiple applications simultaneously.