Unit 6: Memory Management
Memory is the oil that keeps the computer running smoothly. It is present in various forms throughout the entire computer system. As software developers, it is absolutely essential to have a solid understanding of the role memory plays so that you are able to efficiently use memory in your programs, as well as understand what is going on "under the hood" should a problem arise. We will discuss the role of memory in an Operating System, first with an overview of the memory hierarchy and how memory and the OS interact with each other. Next, we will move on to discussing how memory is allocated for different purposes. Finally, we will discuss the two main topics regarding memory access: segmentation and paging.
Completing this unit should take you approximately 11 hours.
Upon successful completion of this unit, you will be able to:
- explain the memory hierarchy;
- discuss how the operating system interacts with memory;
- describe how virtual memory works;
- discuss three algorithms for dynamic memory allocation;
- explain methods of memory access; and
- describe paging and page replacement algorithms.
6.1: Overview of Memory Management
Read these slides.
6.1.1: Memory Hierarchy
Read this page.
6.1.2: OS Interaction with Memory Levels
Read the first seven slides.
6.1.3: Virtual Memory
Read these notes.
Watch this lecture.
6.2: Allocating Memory
Read these notes.
Complete this assignment. You can check your answers against the answer key.
6.3: Memory Access
Read these notes.
Read this document.
Read this article.
Read these notes.