G53OPS - Operating Systems

This course is run at the The University of Nottingham within the School of Computer Science & IT. The course is run by Graham Kendall (EMAIL : gxk@cs.nott.ac.uk)


Multiprogramming with Fixed Partitions

If we accept that multiprogramming is a good idea, we next need to decide how to organise the available memory in order to make effective use of the resource.

One method is to divide the memory into fixed sized partitions. These partitions can be of different sizes but once a partition has taken on a certain size then it remains at that size. There is no provision for changing its size.

The IBM OS/360 was set up in this way. The computer operator defined the sizes of the partitions in the morning (or when the machine was booted) and these partitions remained in effect until the computer was reloaded. This was called MFT (Multiprogramming with Fixed number of Tasks - or OS/MFT)


The diagram above shows how this scheme might work. The memory is divided into four partitions (we'll ignore the operating system). When a job arrives it is placed in the input queue for the smallest partition that will accommodate it.

There are a few drawbacks to this scheme.

1. As the partition sizes are fixed, any space not used by a particular job is lost.
2. It may not be easy to state how big a partition a particular job needs.
3. If a job is placed in (say) queue three it may be prevented from running by other jobs waiting (and using) that partition.

To cater for the last problem we could have a single input queue where all jobs are held. When a partition becomes free we search the queue looking for the first job that fits into the partition. An alternative search strategy is to search the entire input queue looking for the largest job that fits into the partition. This has the advantage that we do not waste a large partition on a small job but has the disadvantage that smaller jobs are discriminated against. Smaller jobs are typically interactive jobs which we normally want to service first.

To ensure small jobs do get run we could have at least one small partition or ensure that small jobs only get skipped a certain number of times.

Using fixed partitions is easy to understand and implement, although there are a number of drawbacks which we have outlined above.

Last Page Back to Main Index Next Page

 

 


 Last Updated : 23/01/2002