Difficulty: Easy
Correct Answer: Concurrent processing of two or more programs by interleaving their execution on one CPU
Explanation:
Introduction / Context:
Multiprogramming is an operating system technique that keeps multiple jobs in memory and switches the CPU among them to improve utilization and responsiveness. It is foundational to time-sharing and modern multitasking, allowing many programs to appear to make progress even on a single processor core.
Given Data / Assumptions:
Concept / Approach:
Multiprogramming emphasizes concurrency (interleaving) rather than parallelism. The scheduler selects which process runs next, using policies like round-robin, priority, or shortest job first. While multi-CPU systems can execute instructions in parallel, multiprogramming does not mandate multiple processors; it simply requires the OS to manage multiple runnable jobs and switch among them efficiently.
Step-by-Step Solution:
Verification / Alternative check:
Historical time-sharing systems (e.g., on mainframes and minicomputers) implemented multiprogramming well before symmetric multiprocessing was common. Modern desktops still rely on this concept even when multiple cores are present—each core also multiprograms among threads.
Why Other Options Are Wrong:
Common Pitfalls:
Confusing concurrency (interleaving) with parallelism (true simultaneity); assuming that “multi-” in multiprogramming implies multiple CPUs; neglecting the role of context switching and CPU scheduling policy.
Final Answer:
Concurrent processing of two or more programs by interleaving their execution on one CPU
Discussion & Comments