Multiprogramming, Multiprocressing, Multitasking, Multithreading.


Multiprogramming, Multiprocressing, Multitasking, Multithreading.

In: Technology

Multi = many. Multiprogramming and multitasking are more or less referring to doing something in parallel. Multiprocessing and multihtreading are more specific. Which a process being made up of different threads depending on the language and the system threads and processes might be more or less restricted and might have more or less information that is shared or not shared between two things running in parallel.

But in general these describe intentions to make a program run parallel to cut execution time or avoid freezing the display and so on.

**Multiprogramming** is the ability to run **multiple programs** simultaneously on **one CPU**. Since one CPU can only execute one thing at a time, you cannot actually run multiple programs simultaneously, but it can appear like so because the CPU divides each programs into smaller chunks and processes each one a bit at a time. See [this picture]( (the top one).

**Multiprocessing** is the ability to run **multiple programs** (processes) on **multiple CPUs**, so one CPU will run one process independently of another CPU running another process. See that same picture but the bottom diagram.

**Multitasking** I’m not quite sure, but I believe it’s a blanket term for the idea of computers running multiple programs at the same time.

**Multithreading** is the ability for a single process to execute more than one part at once (in different threads). Unlike multiprocessing, even though there are multiple threads, they are still part of one process, so these threads still share the same resources, like memory.