Outline 1/30/98
Last time: IPC (
inter
process
communication: message passing)
Admin: Revising schedule for midterm and program 2
Objective: [Major context switch] Introducing the topic of Memory Management.
Issues
Exactly what kind of object is it that we need to load into memory for each process?
What is an
address space?
Multiprogramming was justified on the grounds of CPU utilization (CPU/IO overlap).
How is the memory resource to be
shared among all those processes we've created?
What is the
memory hierarchy? What is the OS's role in managing levels of it?
How can one address space be
protected from operations performed by other processes?
In the implementation of memory management, what kinds of
overheads (of time, of wasted space, of the need for extra hardware support) are introduced?
How can we fix (or hide) some of these problems?
From Program to Executable
The executable file resulting from compiling your source code and linking with other compiled modules contains
machine language instructions (as if addresses started at zero)
initialized data
how much space is required for uninitialized data
Executable to Address Space
In addition to the code and initialized data that can be copied from executable file, addresses must be reserved for areas of uninitialize data and stack when the process is created
When and how do the real
physical addresses get assigned?
Memory Hierarchy
Analogy: Airport baggage
- checked baggage, essentially unlimited capacity, high latency of access;
- carry-on baggage, limited to overhead bin space, some latency.
- seat-pocket-in-front-of-you, smaller grain (cachelines), no latency, very limited.
Allocation to Physical Memory
Assume contiguous allocation
Static loading vs. relocation
Base and limit registers as the simplest dynamic address translation scheme
(hardware assist).
Partition memory: fixed or variable (first, best fits)
Fragmentation (external & internal)
Compaction
Paging
Non-contiguous allocation in fixed sized pages
Dynamic address translation through page table lookup
another case of indirection (as "the answer")
TLB to speed up lookup (another case of
caching as "the answer")