Multiprogramming system

Multiprogramming type of operating systems was the first example of a an capable of making decisions. They also were the first ones who was able to do jobs or processes concurrently. The process is called Job Scheduling in which idle CPU time is used for other jobs by switching CPU task manager. Multiprogramming improves CPU efficiency by increasing CPU utilization by organizing the jobs in such a way that CPU always has a Job to execute.

The operating system keeps a certain set of jobs in memory. This is taken from the job pool, which is the set of all Jobs CPU has to execute. It begins by executing one job. When this job enters an I/O operation, CPU begins execution of another Job from the job set in memory. When this enters a I/O another Job is begun and so on..Later when first job has completed I/O, CPU is given to back to it. This procedure continues so that CPU never need to be idle anytime. This was not the case of normal Batch processing systems in which CPU had to wait for the completion of each job to execute another.

Usually the number of jobs in the memory will be much less than that in job pool due to space constrains. So CPU has to decide the jobs to be taken into memory. CPU scheduling and Job scheduling are the processes of these decision making. Since a decision making process has its role, multiprogramming Systems have a complex structure generally.

No comments: