This study guide will help you get ready for the final exam. It discusses the key topics in each unit, walks through the learning outcomes, and lists important vocabulary terms. It is not meant to replace the course materials!
Proper memory management is essential for computer environments to function correctly. Poor memory hierarchy will lead to poor performance in architectural design, predictions necessary for scheduling or computing, and lower-level programming constructs.
Response time, complexity, and capacity are all related. Poor memory hierarchy will lead to longer response times and poor computer performance across the system.
Review this material in Overview of Memory Hierarchy.
Memory management refers to the OS function responsible for managing the computer's primary memory. The memory management function keeps track of the status of each memory location, whether it is allocated or free. It determines how to allocate memory among competing processes by deciding which process will get memory, when they will receive it, and how much they are allowed. When memory is allocated, it determines which memory locations will be assigned. It tracks when memory is freed or unallocated and updates the status.
Without proper memory management, the computer does not know where it is in processing a function. It is immediately lost and the programs will crash.
Review memory management in Paging.
Virtual memory is an essential part of modern computing. It describes the hardware and software-based memory management capability that allows computers to compensate for physical memory shortages.
The OS temporarily transfers data from random access memory (RAM) to disk storage. Virtual address space is increased using active memory in RAM and inactive memory in hard disk drives (HDDs) to form contiguous addresses that hold the application and its data.
Review this material in Virtual Memory and More on Virtual Memory.
Dynamic memory allocation refers to the process of assigning memory space during the execution or run time. It is critical to have elegant dynamic memory allocation techniques. These techniques occur while computer operations are in process. These memory allocation decisions and executions must be handled elegantly and efficiently (in milliseconds) before the computing operation overtakes the memory available for it to continue and the system crashes.
You should use dynamic memory allocation during the following conditions:
Three techniques for dynamic memory allocation include:
Review this material in Memory Management.
Computer engineers created different methods of memory access because no one method provides a viable solution for all situations, such as the need for different response times.
Review this material in Segmentation, Paging, An Introduction to Intel Memory Management, and The GDT.
Paging refers to a computer operating system that uses paging for virtual memory management.
A page is a unit of memory whose location is held in a page table. A page is the smallest unit of data for memory management in a virtual operating system. A page is a fixed-length, contiguous block of virtual memory, described by a single entry in the page table. It is the smallest unit of data for memory management in a virtual memory operating system.
A page frame is the smallest fixed-length contiguous block of physical memory into which memory pages are mapped by the operating system.
A page transfer of pages between main memory and an auxiliary store, such as a hard disk drive, is referred to as paging or swapping. Page replacement algorithms decide which memory pages to page out, sometimes called swap out, or write to disk when a page of memory needs to be allocated.
Page replacement happens when a requested page is not in memory (page fault) and a free page cannot be used to satisfy the allocation, either because there are none, or because the number of free pages is lower than some threshold.
Review this material in Paging.