A single user cannot, in general, keep either the CPU or the I/O devices busy at all
times. Multiprogramming increases CPU utilization by organizing jobs such that the
CPU always has one to execute.
An OS does the following activities related to multiprogramming.
The operating system keeps several jobs in memory at a time.
This set of jobs is a subset of the jobs kept in the job pool.
The operating system picks and begins to execute one of the jobs in the memory.
When the executing job J1 needs to wait (for I/O or event completion), the
operating system simply switches to and start executing another job say J2. When
job J2 needs to wait, the CPU is switched to another job say J3, and so on.
Once the first job J1 finished its I/O or event wait, it joins the ready queue and
waits for a CPU.
Eventually, the first job J1 finishes waiting and gets the CPU back.
As long as there is always some job ready to execute, the CPU will never be idle.
Advantages: High CPU Utilization.
Disadvantages: CPU Scheduling, Main Memory Management is required.
times. Multiprogramming increases CPU utilization by organizing jobs such that the
CPU always has one to execute.
An OS does the following activities related to multiprogramming.
The operating system keeps several jobs in memory at a time.
This set of jobs is a subset of the jobs kept in the job pool.
The operating system picks and begins to execute one of the jobs in the memory.
When the executing job J1 needs to wait (for I/O or event completion), the
operating system simply switches to and start executing another job say J2. When
job J2 needs to wait, the CPU is switched to another job say J3, and so on.
Once the first job J1 finished its I/O or event wait, it joins the ready queue and
waits for a CPU.
Eventually, the first job J1 finishes waiting and gets the CPU back.
As long as there is always some job ready to execute, the CPU will never be idle.
Advantages: High CPU Utilization.
Disadvantages: CPU Scheduling, Main Memory Management is required.
No comments :
Post a Comment