You are to simulate a multi-partitioned memory management system where
processes are initiated and terminated requiring that memory space be allocated
and de-allocated. Free memory space is to kept in a singly linked list as
discussed in class, using the data structure containing allocation bits and
various pointers also discussed. This is a variable-partition system with
different sized “holes” and not the fixed (same) sized partions also
discussed in the text.
New processes are to be entered from a GUI with a size as a parameter.
(numbering should be automatic). Processes are also to be terminated by a
GUI action. With each process change a free memory list status is to
be output clearly showing the list items and their sizes. First-fit is to
be the allocation algorithm. Memory sizes and numbers of processes can be
small, just big enough to demonstrate the below listed functionality.
Functionality to be provided by you:
- FF allocation.
- De-allocation with the four combination possibilities accounted for and
demonstrated.
- A free space status provided for every instance of #1 and #2 above.
- A process status on command (p#, size, and where located).
- Garbage compaction as necessary.
- Appropriate error msg when there is insufficient memory available AFTER
compaction.