| Batch System e.g. Early mainframe systems | Processes jobs in batches without user interaction during execution. | Jobs are executed sequentially after being grouped. No direct interaction with the system during execution. | PROS : Simple operation and efficient for jobs with no user interaction. CONS: No real-time interaction, system can be idle between jobs. |
| Time-Sharing System e.g UNIX, Multics | Allows multiple users to access the system simultaneously by allocating each user a small time slice of CPU time. | Switches rapidly between tasks, giving each user or task a slice of CPU time, making the system appear responsive to all users simultaneously. | PROS: Efficient CPU usage, allows multiple users to interact with the system in real-time. CONS: Requires complex scheduling algorithms. |
| Multitasking System e.g Windows 10, macOS, Linu | Allows multiple tasks or processes to run simultaneously by allocating CPU time slices to each. | Rapidly switches between different tasks or applications, enabling them to run concurrently. | PROS: Allows for concurrent use of multiple applications, enhancing productivity. CONS: CPU overhead due to frequent task switching (context switching). |
| Multiprogramming System e.g Early UNIX systems | Executes multiple programs concurrently by loading them into memory simultaneously. | Switches between programs, executing one while others wait for I/O operations. | PROS: Better utilization of CPU resources as programs are processed during idle times. CONS: Requires complex memory management, potential for resource contention. |
| Multiprocessing System e.g Linux, Windows (multi-core) | Uses two or more processors (CPUs) to execute multiple processes simultaneously, enabling parallel processing. | Divides tasks among multiple processors, allowing parallel execution, increasing system speed and efficiency. | PROS: Faster execution of complex tasks, fault tolerance, and enhanced computing power. CONS: Expensive hardware and complex OS design to manage multiple processors. |