Summary
Highlights
The lecture introduces the concept of operating system structure, building upon previous discussions of computer system organization and architecture. It highlights the commonalities among diverse operating systems, particularly multiprogramming and time-sharing (multitasking).
Multiprogramming enables the CPU to run multiple programs, significantly increasing CPU utilization. Instead of a single user monopolizing the CPU, multiprogramming organizes jobs (code and data) so the CPU always has something to execute. This prevents the CPU from idling when a task, for example, is waiting for I/O operations.
The video illustrates multiprogramming with a job pool and memory layout. Jobs are loaded into memory (RAM being a limited resource), and the operating system assigns the CPU to them. When a job needs to use I/O devices, the CPU is released and can be used by another job, preventing idle time. This process is likened to a lawyer handling multiple clients efficiently.
While multiprogramming effectively utilizes system resources like CPU and memory, it does not facilitate direct user interaction with the computer system. This limitation leads to the discussion of multitasking.
Multitasking, also known as time-sharing, is an extension of multiprogramming. The CPU switches between multiple jobs so rapidly that users can interact with each program while it's running. This rapid switching creates the illusion that each user has exclusive access to the system.
In a time-shared system, multiple users can simultaneously share the computer. The switching between users' jobs is so fast that users perceive the entire system as their own. The system leverages the time gap when a user is providing input (which is slower than CPU speed) to execute jobs from other users. CPU scheduling algorithms, which will be discussed later, determine how time is shared among users.
In a multitasking environment, each user has at least one separate program in memory. A program loaded into memory and executing is referred to as a 'process.' The concept of a process is crucial in operating systems and will be explored in more detail in subsequent lectures.