![Page 1: 11 memory management 20200302 - cs.utexas.eduans/classes/cs439/...Mar 02, 2020 · memory •Relocation allows multiple processes to share main memory, but makes it expensive for](https://reader033.vdocument.in/reader033/viewer/2022042319/5f086d7b7e708231d421f5cd/html5/thumbnails/1.jpg)
Memory: Overview
CS439: Principles of Computer SystemsMarch 2, 2020
![Page 2: 11 memory management 20200302 - cs.utexas.eduans/classes/cs439/...Mar 02, 2020 · memory •Relocation allows multiple processes to share main memory, but makes it expensive for](https://reader033.vdocument.in/reader033/viewer/2022042319/5f086d7b7e708231d421f5cd/html5/thumbnails/2.jpg)
Where We Are In the Course• Just finished:
– Processes & Threads– CPU Scheduling– Synchronization
• Next: – Memory Management– Virtual Memory– Heap Memory Management– File Systems
• Finally:– Networks– Other Topics
• Distributed and Parallel Systems, Security
![Page 3: 11 memory management 20200302 - cs.utexas.eduans/classes/cs439/...Mar 02, 2020 · memory •Relocation allows multiple processes to share main memory, but makes it expensive for](https://reader033.vdocument.in/reader033/viewer/2022042319/5f086d7b7e708231d421f5cd/html5/thumbnails/3.jpg)
Today’s Additions
Memory: Overview–Where is the executing process?– How do we allow multiple processes to use main
memory simultaneously?–What is an address and how is one interpreted?
![Page 4: 11 memory management 20200302 - cs.utexas.eduans/classes/cs439/...Mar 02, 2020 · memory •Relocation allows multiple processes to share main memory, but makes it expensive for](https://reader033.vdocument.in/reader033/viewer/2022042319/5f086d7b7e708231d421f5cd/html5/thumbnails/4.jpg)
ProcessP
Basic Concepts: Address Spaces• Physical address space: Collection of
physical memory addresses supported by the hardware– From address 0 to address MAXsys
• Logical/virtual address space: Collection of addresses that the process can access (this is the process’s view)– From address 0 to address MAXprog
• Segment: A chunk of physical memory assigned to a process
0
MAXsys
MAXprog
![Page 5: 11 memory management 20200302 - cs.utexas.eduans/classes/cs439/...Mar 02, 2020 · memory •Relocation allows multiple processes to share main memory, but makes it expensive for](https://reader033.vdocument.in/reader033/viewer/2022042319/5f086d7b7e708231d421f5cd/html5/thumbnails/5.jpg)
Picture of Computer Architecture. Text description next slide.
Back to Architecture
![Page 6: 11 memory management 20200302 - cs.utexas.eduans/classes/cs439/...Mar 02, 2020 · memory •Relocation allows multiple processes to share main memory, but makes it expensive for](https://reader033.vdocument.in/reader033/viewer/2022042319/5f086d7b7e708231d421f5cd/html5/thumbnails/6.jpg)
Basic Concepts: Address Generation
Uniprogramming:• One process executes at a time• Process is always loaded starting at address 0• Process executes in a contiguous section of
memory• OS gets fixed part of memory• Compiler can generate physical addresses• Maximum address = Memory Size – OS Size• OS is protected from processes by address
checking
![Page 7: 11 memory management 20200302 - cs.utexas.eduans/classes/cs439/...Mar 02, 2020 · memory •Relocation allows multiple processes to share main memory, but makes it expensive for](https://reader033.vdocument.in/reader033/viewer/2022042319/5f086d7b7e708231d421f5cd/html5/thumbnails/7.jpg)
This is a picture of uniprogrammedmemory. Text description on next slide.
Uniprogramming Picture
![Page 8: 11 memory management 20200302 - cs.utexas.eduans/classes/cs439/...Mar 02, 2020 · memory •Relocation allows multiple processes to share main memory, but makes it expensive for](https://reader033.vdocument.in/reader033/viewer/2022042319/5f086d7b7e708231d421f5cd/html5/thumbnails/8.jpg)
Multiple Programs Share Memory:Requirements
Transparency:• We want multiple processes to coexist in memory• No process should be aware that memory is shared• Processes should not care what physical portion of
memory they getSafety:• Processes must not be able to corrupt each other• Processes must not be able to corrupt the OSEfficiency:• Performance of the CPU and memory should not be
degraded badly due to sharing
![Page 9: 11 memory management 20200302 - cs.utexas.eduans/classes/cs439/...Mar 02, 2020 · memory •Relocation allows multiple processes to share main memory, but makes it expensive for](https://reader033.vdocument.in/reader033/viewer/2022042319/5f086d7b7e708231d421f5cd/html5/thumbnails/9.jpg)
Relocation• Put the OS in the highest memory• Assume at compile/link time that the process starts at
0 with a Maximum address = Memory Size – OS Size• When the OS loads the process, it allocates a
contiguous segment of memory in which the process fits. If it does not fit, the OS waits for a process to terminate
• The first (smallest) physical address of the process is the base address and the largest physical address the process can access is the limit address
• The base address is also known as the relocation address
![Page 10: 11 memory management 20200302 - cs.utexas.eduans/classes/cs439/...Mar 02, 2020 · memory •Relocation allows multiple processes to share main memory, but makes it expensive for](https://reader033.vdocument.in/reader033/viewer/2022042319/5f086d7b7e708231d421f5cd/html5/thumbnails/10.jpg)
Relocation Picture
Relocation picture. Text description on next slide.
![Page 11: 11 memory management 20200302 - cs.utexas.eduans/classes/cs439/...Mar 02, 2020 · memory •Relocation allows multiple processes to share main memory, but makes it expensive for](https://reader033.vdocument.in/reader033/viewer/2022042319/5f086d7b7e708231d421f5cd/html5/thumbnails/11.jpg)
Relocation: Two Types
• Static:– Loader adjusts the addresses in a process to
reflect its location in memory– Once process is assigned a place in memory and
starts executing, OS cannot move it
![Page 12: 11 memory management 20200302 - cs.utexas.eduans/classes/cs439/...Mar 02, 2020 · memory •Relocation allows multiple processes to share main memory, but makes it expensive for](https://reader033.vdocument.in/reader033/viewer/2022042319/5f086d7b7e708231d421f5cd/html5/thumbnails/12.jpg)
Static Relocation picture. Text description on next slide.
Static Relocation:Address Translation
The Compilation Pipeline
prog P::
foo()::
end P
P::
push ...inc SP, xjmp _foo:
foo: ...
:push ...inc SP, 4jmp 75
:...
0
75
1100
1175
LibraryRoutines
1000
175
LibraryRoutines
0
100
Compilation Assembly Linking Loading
:::
jmp 1175:...
:::
jmp 175:...
![Page 13: 11 memory management 20200302 - cs.utexas.eduans/classes/cs439/...Mar 02, 2020 · memory •Relocation allows multiple processes to share main memory, but makes it expensive for](https://reader033.vdocument.in/reader033/viewer/2022042319/5f086d7b7e708231d421f5cd/html5/thumbnails/13.jpg)
Relocation: Two Types• Static:– Loader adjusts the addresses in a process to reflect its
location in memory– Once process is assigned a place in memory and starts
executing, OS cannot move it• Dynamic: In parallel– Hardware adds relocation register (base) to virtual
address to get physical address– Hardware compares address with limit register• address must be less than limit• if test fails, the processor raises an exception
![Page 14: 11 memory management 20200302 - cs.utexas.eduans/classes/cs439/...Mar 02, 2020 · memory •Relocation allows multiple processes to share main memory, but makes it expensive for](https://reader033.vdocument.in/reader033/viewer/2022042319/5f086d7b7e708231d421f5cd/html5/thumbnails/14.jpg)
Dynamic Relocation:Address Translation
0
MAXsys
Process
ProcessP’s
logicaladdressspace
0
500
1000
1500
CPU +
1000Base Register
LogicalAddresses
≤
500
Bound Register
MEMORYEXCEPTION
PhysicalAddresses
no
Instructions
P’sphysicaladdressspace
![Page 15: 11 memory management 20200302 - cs.utexas.eduans/classes/cs439/...Mar 02, 2020 · memory •Relocation allows multiple processes to share main memory, but makes it expensive for](https://reader033.vdocument.in/reader033/viewer/2022042319/5f086d7b7e708231d421f5cd/html5/thumbnails/15.jpg)
iClicker Question
Address translation in dynamic relocation does the following steps:
A. Converts address by adding base and then checks against limit
B. Checks address against limit and then adds base
C. Checks address against limit and adds base in parallel
![Page 16: 11 memory management 20200302 - cs.utexas.eduans/classes/cs439/...Mar 02, 2020 · memory •Relocation allows multiple processes to share main memory, but makes it expensive for](https://reader033.vdocument.in/reader033/viewer/2022042319/5f086d7b7e708231d421f5cd/html5/thumbnails/16.jpg)
Memory Management
As processes enter the system, grow, and terminate, the OS must track which memory is available (the holes) and which is utilized
Given a memory request from a starting process, the OS must decide what space to use for the process
![Page 17: 11 memory management 20200302 - cs.utexas.eduans/classes/cs439/...Mar 02, 2020 · memory •Relocation allows multiple processes to share main memory, but makes it expensive for](https://reader033.vdocument.in/reader033/viewer/2022042319/5f086d7b7e708231d421f5cd/html5/thumbnails/17.jpg)
Memory Management Example. Text description next slide.
Memory Management Picture
![Page 18: 11 memory management 20200302 - cs.utexas.eduans/classes/cs439/...Mar 02, 2020 · memory •Relocation allows multiple processes to share main memory, but makes it expensive for](https://reader033.vdocument.in/reader033/viewer/2022042319/5f086d7b7e708231d421f5cd/html5/thumbnails/18.jpg)
Memory Allocation Policies: Evaluation
• Minimize wasted space• Two types of wasted space:– External Fragmentation• Unused memory between units of allocation• For example, two fixed tables for two but a party of four
– Internal Fragmentation• Unused memory within a unit of allocation• For example, a party of three at a table for four
![Page 19: 11 memory management 20200302 - cs.utexas.eduans/classes/cs439/...Mar 02, 2020 · memory •Relocation allows multiple processes to share main memory, but makes it expensive for](https://reader033.vdocument.in/reader033/viewer/2022042319/5f086d7b7e708231d421f5cd/html5/thumbnails/19.jpg)
First Fit example. Text description next page.
Memory Allocation Policies:First-Fit Example
To allocate n bytes, use the first available free block such that the block size is larger than or equal to n.
500 bytes
1K bytes
2K bytes
To allocate 400 bytes, we use the first free block
2K bytes
500 bytes
![Page 20: 11 memory management 20200302 - cs.utexas.eduans/classes/cs439/...Mar 02, 2020 · memory •Relocation allows multiple processes to share main memory, but makes it expensive for](https://reader033.vdocument.in/reader033/viewer/2022042319/5f086d7b7e708231d421f5cd/html5/thumbnails/20.jpg)
Memory Allocation Policies: First-Fit
Advantages? Disadvantages?
Goal: Simplicity of Implementation
Requirements:• Free block list sorted by address• Allocation requires a search for a suitable position• De-allocation requires a check to see if the freed partition could be merged with any adjacent free partitions
![Page 21: 11 memory management 20200302 - cs.utexas.eduans/classes/cs439/...Mar 02, 2020 · memory •Relocation allows multiple processes to share main memory, but makes it expensive for](https://reader033.vdocument.in/reader033/viewer/2022042319/5f086d7b7e708231d421f5cd/html5/thumbnails/21.jpg)
Best Fit example. Text description on next slide.
Memory Allocation Policies:Best-Fit
To allocate n bytes, use the smallest available free block such that the block size is larger than or equal to n.
500 bytes
1K bytes
2K bytes
To allocate 400 bytes, we use the 3rd free block
1K bytes
2K bytes
![Page 22: 11 memory management 20200302 - cs.utexas.eduans/classes/cs439/...Mar 02, 2020 · memory •Relocation allows multiple processes to share main memory, but makes it expensive for](https://reader033.vdocument.in/reader033/viewer/2022042319/5f086d7b7e708231d421f5cd/html5/thumbnails/22.jpg)
Memory Allocation Policies: Best-Fit
Advantages? Disadvantages?
Goals: • To avoid fragmenting big free blocks• To minimize the size of resulting external fragments
Requirements:• Free block list sorted by size• Allocation requires a search for a suitable position• De-allocation requires a check to see if the freed partition could be merged with any adjacent free partitions
![Page 23: 11 memory management 20200302 - cs.utexas.eduans/classes/cs439/...Mar 02, 2020 · memory •Relocation allows multiple processes to share main memory, but makes it expensive for](https://reader033.vdocument.in/reader033/viewer/2022042319/5f086d7b7e708231d421f5cd/html5/thumbnails/23.jpg)
Worst-Fit Example. Text description next slide.
Memory Allocation Policies:Worst-Fit
To allocate n bytes, use the largest available free block such that the block size is larger than or equal to n.
500 bytes
1K bytes
2K bytes
To allocate 400 bytes, we use the 2nd free block
1K bytes
![Page 24: 11 memory management 20200302 - cs.utexas.eduans/classes/cs439/...Mar 02, 2020 · memory •Relocation allows multiple processes to share main memory, but makes it expensive for](https://reader033.vdocument.in/reader033/viewer/2022042319/5f086d7b7e708231d421f5cd/html5/thumbnails/24.jpg)
Memory Allocation Policies: Worst-Fit
Advantages? Disadvantages?
Goals: • To avoid having too many tiny fragments
Requirements:• Free block list sorted by size• Allocation is fast (get the largest)• De-allocation requires a check to see if the freed partition could be merged with any adjacent free partitions
![Page 25: 11 memory management 20200302 - cs.utexas.eduans/classes/cs439/...Mar 02, 2020 · memory •Relocation allows multiple processes to share main memory, but makes it expensive for](https://reader033.vdocument.in/reader033/viewer/2022042319/5f086d7b7e708231d421f5cd/html5/thumbnails/25.jpg)
iClicker Question
First-fit, Best-fit, and Worst-fit all suffer from external fragmentation.
A. TrueB. False
![Page 26: 11 memory management 20200302 - cs.utexas.eduans/classes/cs439/...Mar 02, 2020 · memory •Relocation allows multiple processes to share main memory, but makes it expensive for](https://reader033.vdocument.in/reader033/viewer/2022042319/5f086d7b7e708231d421f5cd/html5/thumbnails/26.jpg)
Eliminating Fragmentation example. Text description next slide
Eliminating Fragmentation• Compaction– Relocate processes to coalesce holes
• Swapping– Preempt processes (roll them out
to disk) & reclaim their memory
0
MAX
ProgramP2
ProgramP3
ProgramP1
ProgramP4
Suspended
suspendedqueue
readyqueue
semaphore/condition queues
Waiting
RunningReady
?
![Page 27: 11 memory management 20200302 - cs.utexas.eduans/classes/cs439/...Mar 02, 2020 · memory •Relocation allows multiple processes to share main memory, but makes it expensive for](https://reader033.vdocument.in/reader033/viewer/2022042319/5f086d7b7e708231d421f5cd/html5/thumbnails/27.jpg)
Dynamic Relocation
Advantages Disadvantages
![Page 28: 11 memory management 20200302 - cs.utexas.eduans/classes/cs439/...Mar 02, 2020 · memory •Relocation allows multiple processes to share main memory, but makes it expensive for](https://reader033.vdocument.in/reader033/viewer/2022042319/5f086d7b7e708231d421f5cd/html5/thumbnails/28.jpg)
Summary• Processes must reside in memory in order to execute• Addresses need context to be interpreted, a logical/virtual
address can be very different from a physical address. • Processes generally use virtual addresses which are
translated into physical addresses just before accessing memory
• Relocation allows multiple processes to share main memory, but makes it expensive for processes to grow over time
• Swapping allows the total memory being used by all processes to exceed the amount of physical memory available
• C and C++ memory managers use these same principles
![Page 29: 11 memory management 20200302 - cs.utexas.eduans/classes/cs439/...Mar 02, 2020 · memory •Relocation allows multiple processes to share main memory, but makes it expensive for](https://reader033.vdocument.in/reader033/viewer/2022042319/5f086d7b7e708231d421f5cd/html5/thumbnails/29.jpg)
Announcements• Project 2 posted due Friday, 3/27– Stack check (argument passing) due Monday, 3/9– Difficult– Typing in the code is not the hard part---conceptualizing
what you should do and how IS– You MUST get this one working---Projects 3 and 4 require it– Design grades will be handled differently this time---more
information is in the project specification • Groups of 2 to 4– You MUST work in a group– Group registration deadline is Wednesday, 3/4
• Discussion sections this week! Problem Set 5 is posted.