ABSTRACT

The key characteristics of memory systems and the needs in using a memory hierarchy to reduce its overall access time are explained. The basic criteria of memory management considering sharing, separation, protection, and swapping of memory, as well as address translation being carried out at the time of both static relocation and dynamic relocation of information in memory, are discussed. The essential functions and primary responsibilities of a generic memory management scheme are highlighted. Numerous types of popular memory management schemes in use with their comparison parameters are mentioned. Contiguous memory allocation schemes using different types of partition approaches as well as the various techniques used in their management with each of their respective merits and drawbacks are described. Noncontiguous primary memory allocation schemes using paged memory management along with related issues with respective merits and drawbacks are explained. Various types of segmented memory management schemes are described along with their related issues, including the support needed from the underlying hardware. The different memory allocation schemes for the use of kernels are illustrated along with real-life implementations as carried out in UNIX and Solaris. The implementation of virtual memory with paging, segmentation, and segmentation with paging schemes are described together with the different aspects with related issues of each of these schemes, along with their actual implementations in real-life as carried out in VAC (DEC), SUN SPARC, Motorola systems, and Intel Pentium. Various design issues entwined with the management of virtual memory and their impacts on its overall performance are indicated. Last, real-life implementations of overall memory management as carried out in UNIX, Linux, Windows, and Solaris are described separately in brief as case studies. Cache memory lies outside the purview of the operating system and is not at all visible to the operating system, but its different modes of operation often have an immense impact on the overall performance of the operating system. That is why its objectives, principles, and various design issues are discussed here in brief.