Memory management is the functionality of an operating system which
manages primary memory and moves processes back and forth between main memory and disk during execution. It:- Keeps track of each and every memory location. - Checks how much memory is to be allocated to processes. - Decides which process will get memory at what time. - Tracks whenever some memory gets freed or unallocated - And correspondingly it updates the status.
In multiprogramming, multiple users
can share the memory simultaneously. MFT and MVT are types of contiguous allocation multiprogramming. OS/360, officially known as IBM System/360 Operating System, is a discontinued batch processing operating system developed by IBM for their then-new System/360 mainframe computer. MFT and MVT are different
variants of OS/360, generated from the same tapes and sharing most of their code. Fig: Multiprogramming System
MFT (Multiprogramming with a Fixed number of
Tasks) -
Fixed number of jobs can be processed
concurrently. User area of memory is divided into a number of fixed size partitions. The (real) memory is partitioned and a batch is assigned to a fixed partition. Partitioning can be done at the startup time and altered later on. Each partition may have a different job queue or all partitions may share the same job queue(tasks). For example, let us consider that each block is of size 4KB and there are total 4 partitions. So the processes whose memory requirement is equal to or less than 4KB, can only get the memory. The memory assigned to a partition does not change. OS/360 MFT could run several programs but only after partitioning the memory required to run each; its limitation was that, if one program was idle, memory devoted to it was inaccessible by other programs.
Advantages: At the time of compilation only the address of each word
can be given. Or we can bind address at the compile time. Disadvantages: Degree of multiprogramming is rigid, it is not flexible because we cannot change the no. of blocks. Memory wastage is caused due to fragmentation. Fragmentation: 1) Internal: Partial or Incomplete usage of a block of memory. 2) External: Entire block of available memory cannot be used.
MVT (Multiprogramming with a Variable number of Tasks)
-
In MVT or variable partitioning scheme, at the beginning there are no
partitions. There is only the OS area and the rest of the available RAM. The memory is given to the processes as they arrive. Number of jobs can vary. Number, size and location of partitions vary dynamically. Each job gets just the amount of memory it needs. That is, the partitioning of memory changes as jobs enter and leave. MVT is a more ``efficient'' user of resources but is more difficult.
OS/MVT allowed memory divisions to be re-created as needed.
Whenever memory was available, the system searched a queue of jobs for any that could be run on available memory. OS/MVT was also able to allocate all of computers memory to a single large job, creating a versatility unavailable in other operating systems.
Fig: Multiprogramming with variable number of tasks
Advantages: In this scheme there is no internal fragmentation. This
method is more flexible as variable size process can be given memory. There is no size limitation. Disadvantages: It also suffers from external fragmentation. In this scheme compile time address binding is not possible.