Memory Management
Photo by Steve Johnson on Unsplash
As we've discussed concurrency, we've spent a lot of time talking about the process's address space---but where is that address space? And how do we manage memory to support multiple processes? And what happens if our processes need more memory than is available? It is time to start answering those questions!
Learning Objectives
We'll begin learning about how the operating system manages memory in both uniprogramming and multiprogramming environments.
Upon completion of this module, you will be able to:
- Compare virtual address spaces and physical address spaces
- Summarize the process of address translation in uniprogramming, static relocation, and dynamic relocation environments
- Compare and contrast static and dynamic relocation
- Describe how the OS tracks free space in memory
- Analyze policies for choosing the location of an address space in memory
Learning
- Video: Executing Processes (11 minutes)
- Video: Static Relocation (9 minutes)
- Video: Dynamic Relocation (15 minutes)
- Video: Free Space (4 minutes)
- Video: Placement Policies (18 minutes)
- Video: Eliminating Fragmentation (7 minutes)
-
Slides that were presented in the videos
Note that these videos have embedded formative assessments---you'll want to watch the videos and complete those before class, so that you can earn participation credit.
Recommended Readings
Completing the readings in this class is highly recommended---it can be very helpful to see how the concepts are explained by a different person, and the extra details can help the pieces fit together.
OSTEP: Address Spaces and Mechanism: Address Translation
From Class
Evaluating Your Understanding
We are providing these rubrics for each module so that you can better understand what is expected and evaluate your understanding against those expectations. The hope is that, if you find yourself earning a 3 or below, you will continue to enhance your understanding until you find yourself earning a 4 or a 5.
| 5 | 4 | 3 | 2 | |
|---|---|---|---|---|
| Relocation Processes and Analysis | Student accurately explains the purpose of a processes address space and the need for virtual addresses in a multiprogrammed environment; student accurately summarizes the process of address translation in static and dynamic relocation as well as accurately assesses the two processes; student accurately describes and evaluates the *-fit algorithms. | Student accurately explains the purpose of a processes address space and the need for virtual addresses in a multiprogrammed environment; student accurately summarizes the process of address translation in static and dynamic relocation as well as satisfactorily assesses the two processes; student satisfactorily describes and evaluates the *-fit algorithms. | Student satisfactorily explains the purpose of a processes address space and the need for virtual addresses in a multiprogrammed environment; student satisfactorily summarizes the process of address translation in static and dynamic relocation but unsatisfactorily assesses the two processes; student unsatisfactorily describes and evaluates the *-fit algorithms. | Student does not submit the work OR student unsatisfactorily explains the purpose of a processes address space and the need for virtual addresses in a multiprogrammed environment; student unsatisfactorily summarizes the process of address translation in static and dynamic relocation but unsatisfactorily assesses the two processes; student unsatisfactorily describes and evaluates the *-fit algorithms. |
| Short Answer Questions: Memory-Specific | Student submitted answers to given questions that accurately and succinctly answer the questions. | Student submitted answers to given questions that satisfactorily and succinctly answer the questions. | Student submitted answers to given questions that unsatisfactorily answer the questions. | Student does not submit the answers OR submitted answers to given questions that incorrectly answer the questions. |
| Short Answer Questions: Memory as part of the larger system | Student submitted answers to given questions that accurately and succinctly answer the questions. | Student submitted answers to given questions that satisfactorily and succinctly answer the questions. | Student submitted answers to given questions that unsatisfactorily answer the questions. | Student does not submit the answers OR submitted answers to given questions that incorrectly answer the questions. |