![Page 1: 1 Memory Management Chapter 4 4.1 Basic memory management 4.2 Swapping 4.3 Virtual memory 4.4 Page replacement algorithms 4.5 Modeling page replacement](https://reader036.vdocuments.us/reader036/viewer/2022062417/5515d209550346d46f8b469a/html5/thumbnails/1.jpg)
1
Memory Management
Chapter 4
4.1 Basic memory management4.2 Swapping4.3 Virtual memory4.4 Page replacement algorithms4.5 Modeling page replacement algorithms4.6 Design issues for paging systems4.7 Implementation issues4.8 Segmentation
![Page 2: 1 Memory Management Chapter 4 4.1 Basic memory management 4.2 Swapping 4.3 Virtual memory 4.4 Page replacement algorithms 4.5 Modeling page replacement](https://reader036.vdocuments.us/reader036/viewer/2022062417/5515d209550346d46f8b469a/html5/thumbnails/2.jpg)
2
Memory Management
• Ideally programmers want memory that is– large– fast– non volatile
• Memory hierarchy – small amount of fast, expensive memory – cache – some medium-speed, medium price main memory– gigabytes of slow, cheap disk storage
• Memory manager handles the memory hierarchy
![Page 3: 1 Memory Management Chapter 4 4.1 Basic memory management 4.2 Swapping 4.3 Virtual memory 4.4 Page replacement algorithms 4.5 Modeling page replacement](https://reader036.vdocuments.us/reader036/viewer/2022062417/5515d209550346d46f8b469a/html5/thumbnails/3.jpg)
3
Requirements of MM
• Relocation: cannot be sure where program will be loaded in memory
• Protection: avoiding unwanted interference by other processes
• Efficient use of CPU and main memory• Sharing: data shared by cooperating processes
![Page 4: 1 Memory Management Chapter 4 4.1 Basic memory management 4.2 Swapping 4.3 Virtual memory 4.4 Page replacement algorithms 4.5 Modeling page replacement](https://reader036.vdocuments.us/reader036/viewer/2022062417/5515d209550346d46f8b469a/html5/thumbnails/4.jpg)
4
CPU Utilization
Degree of multiprogramming
![Page 5: 1 Memory Management Chapter 4 4.1 Basic memory management 4.2 Swapping 4.3 Virtual memory 4.4 Page replacement algorithms 4.5 Modeling page replacement](https://reader036.vdocuments.us/reader036/viewer/2022062417/5515d209550346d46f8b469a/html5/thumbnails/5.jpg)
5
Multiprogramming with Fixed Partitions
• Fixed memory partitionsa) separate input queues for each partitionb) single input queue
![Page 6: 1 Memory Management Chapter 4 4.1 Basic memory management 4.2 Swapping 4.3 Virtual memory 4.4 Page replacement algorithms 4.5 Modeling page replacement](https://reader036.vdocuments.us/reader036/viewer/2022062417/5515d209550346d46f8b469a/html5/thumbnails/6.jpg)
6
Multiprogramming with Fixed Partitions• Memory is allocated according to some
algorithm, e.g. using best fit• Strength: easy implementation• Weakness: inefficient use of memory because
of internal fragmentation (partitions may not be full); limited number of active processes
![Page 7: 1 Memory Management Chapter 4 4.1 Basic memory management 4.2 Swapping 4.3 Virtual memory 4.4 Page replacement algorithms 4.5 Modeling page replacement](https://reader036.vdocuments.us/reader036/viewer/2022062417/5515d209550346d46f8b469a/html5/thumbnails/7.jpg)
7
Swapping or Dynamic Partitioning
Memory allocation changes by swapping processes in and out
Shaded regions are unused memory - external fragmentation
![Page 8: 1 Memory Management Chapter 4 4.1 Basic memory management 4.2 Swapping 4.3 Virtual memory 4.4 Page replacement algorithms 4.5 Modeling page replacement](https://reader036.vdocuments.us/reader036/viewer/2022062417/5515d209550346d46f8b469a/html5/thumbnails/8.jpg)
8
Problem with growing segments
• Allocating space for growing data segment• Allocating space for growing stack & data segment
![Page 9: 1 Memory Management Chapter 4 4.1 Basic memory management 4.2 Swapping 4.3 Virtual memory 4.4 Page replacement algorithms 4.5 Modeling page replacement](https://reader036.vdocuments.us/reader036/viewer/2022062417/5515d209550346d46f8b469a/html5/thumbnails/9.jpg)
9
Virtual Memory
• Problem: some programs are too big for main memory; large programs in memory limit the degree of multiprogramming
• Solution: keep only those parts of the programs in main memory that are currently in use
• Basic idea: a map between program-generated addresses (virtual address space) and main memory
• Main techniques: paging and segmentation
![Page 10: 1 Memory Management Chapter 4 4.1 Basic memory management 4.2 Swapping 4.3 Virtual memory 4.4 Page replacement algorithms 4.5 Modeling page replacement](https://reader036.vdocuments.us/reader036/viewer/2022062417/5515d209550346d46f8b469a/html5/thumbnails/10.jpg)
10
Paging (1)
The position and function of the MMU
![Page 11: 1 Memory Management Chapter 4 4.1 Basic memory management 4.2 Swapping 4.3 Virtual memory 4.4 Page replacement algorithms 4.5 Modeling page replacement](https://reader036.vdocuments.us/reader036/viewer/2022062417/5515d209550346d46f8b469a/html5/thumbnails/11.jpg)
11
Paging (2)
The relation betweenvirtual addressesand physical memory addres-ses given bypage table
![Page 12: 1 Memory Management Chapter 4 4.1 Basic memory management 4.2 Swapping 4.3 Virtual memory 4.4 Page replacement algorithms 4.5 Modeling page replacement](https://reader036.vdocuments.us/reader036/viewer/2022062417/5515d209550346d46f8b469a/html5/thumbnails/12.jpg)
12
Page Tables (1)
Internal operation of MMU with 16 4 KB pages
![Page 13: 1 Memory Management Chapter 4 4.1 Basic memory management 4.2 Swapping 4.3 Virtual memory 4.4 Page replacement algorithms 4.5 Modeling page replacement](https://reader036.vdocuments.us/reader036/viewer/2022062417/5515d209550346d46f8b469a/html5/thumbnails/13.jpg)
13
Page Tables (2)
• 32 bit address with 2 page table fields
• Two-level page tables
Second-level page tables
Top-level page table
![Page 14: 1 Memory Management Chapter 4 4.1 Basic memory management 4.2 Swapping 4.3 Virtual memory 4.4 Page replacement algorithms 4.5 Modeling page replacement](https://reader036.vdocuments.us/reader036/viewer/2022062417/5515d209550346d46f8b469a/html5/thumbnails/14.jpg)
14
Page Tables (3)
Typical page table entry
![Page 15: 1 Memory Management Chapter 4 4.1 Basic memory management 4.2 Swapping 4.3 Virtual memory 4.4 Page replacement algorithms 4.5 Modeling page replacement](https://reader036.vdocuments.us/reader036/viewer/2022062417/5515d209550346d46f8b469a/html5/thumbnails/15.jpg)
15
TLBs – Translation Lookaside Buffers
A TLB to speed up paging
![Page 16: 1 Memory Management Chapter 4 4.1 Basic memory management 4.2 Swapping 4.3 Virtual memory 4.4 Page replacement algorithms 4.5 Modeling page replacement](https://reader036.vdocuments.us/reader036/viewer/2022062417/5515d209550346d46f8b469a/html5/thumbnails/16.jpg)
16
Inverted Page Tables
Comparison of a traditional page table with an inverted page table
![Page 17: 1 Memory Management Chapter 4 4.1 Basic memory management 4.2 Swapping 4.3 Virtual memory 4.4 Page replacement algorithms 4.5 Modeling page replacement](https://reader036.vdocuments.us/reader036/viewer/2022062417/5515d209550346d46f8b469a/html5/thumbnails/17.jpg)
17
Page Replacement
• Page fault: referencing a page that is not in main memory
• Page fault forces choice – which page must be removed to make room for
incoming page
• Modified page must first be saved– unmodified just overwritten
• Better not to choose an often used page– will probably need to be brought back in soon
![Page 18: 1 Memory Management Chapter 4 4.1 Basic memory management 4.2 Swapping 4.3 Virtual memory 4.4 Page replacement algorithms 4.5 Modeling page replacement](https://reader036.vdocuments.us/reader036/viewer/2022062417/5515d209550346d46f8b469a/html5/thumbnails/18.jpg)
18
Page Fault Handling (1)
Hardware traps to kernel General registers saved OS chooses page frame to free If selected frame is dirty, writes it to disk
![Page 19: 1 Memory Management Chapter 4 4.1 Basic memory management 4.2 Swapping 4.3 Virtual memory 4.4 Page replacement algorithms 4.5 Modeling page replacement](https://reader036.vdocuments.us/reader036/viewer/2022062417/5515d209550346d46f8b469a/html5/thumbnails/19.jpg)
19
Page Fault Handling (2)
OS brings scheduled new page in from disk Page tables updated Faulting instruction backed up to when it began Faulting process scheduled Registers restored Program continues
![Page 20: 1 Memory Management Chapter 4 4.1 Basic memory management 4.2 Swapping 4.3 Virtual memory 4.4 Page replacement algorithms 4.5 Modeling page replacement](https://reader036.vdocuments.us/reader036/viewer/2022062417/5515d209550346d46f8b469a/html5/thumbnails/20.jpg)
20
Optimal Page Replacement Algorithm
• Replace page needed at the farthest point in future– Optimal but unrealizable
• Estimate by …– logging page use on previous runs of process– although this is impractical
![Page 21: 1 Memory Management Chapter 4 4.1 Basic memory management 4.2 Swapping 4.3 Virtual memory 4.4 Page replacement algorithms 4.5 Modeling page replacement](https://reader036.vdocuments.us/reader036/viewer/2022062417/5515d209550346d46f8b469a/html5/thumbnails/21.jpg)
21
Not Recently Used Page Replacement Algorithm
• Each page has Reference bit, Modified bit– bits are set when page is referenced, modified
• Pages are classified1. not referenced, not modified
2. not referenced, modified
3. referenced, not modified
4. referenced, modified
• NRU removes page at random– from lowest numbered non empty class
• Macintosh v.m. uses a variant of NRU
![Page 22: 1 Memory Management Chapter 4 4.1 Basic memory management 4.2 Swapping 4.3 Virtual memory 4.4 Page replacement algorithms 4.5 Modeling page replacement](https://reader036.vdocuments.us/reader036/viewer/2022062417/5515d209550346d46f8b469a/html5/thumbnails/22.jpg)
22
FIFO Page Replacement Algorithm
• Maintain a linked list of all pages – in order they came into memory
• Page at beginning of list (the oldest page) is replaced
• Disadvantage– page in memory the longest may be often used
![Page 23: 1 Memory Management Chapter 4 4.1 Basic memory management 4.2 Swapping 4.3 Virtual memory 4.4 Page replacement algorithms 4.5 Modeling page replacement](https://reader036.vdocuments.us/reader036/viewer/2022062417/5515d209550346d46f8b469a/html5/thumbnails/23.jpg)
23
Second Chance Page Replacement Algorithm
• Operation of a second chance– pages sorted in FIFO order– Page list if fault occurs at time 20, A has R bit set
(numbers above pages are loading times)
![Page 24: 1 Memory Management Chapter 4 4.1 Basic memory management 4.2 Swapping 4.3 Virtual memory 4.4 Page replacement algorithms 4.5 Modeling page replacement](https://reader036.vdocuments.us/reader036/viewer/2022062417/5515d209550346d46f8b469a/html5/thumbnails/24.jpg)
24
The Clock Page Replacement Algorithm
![Page 25: 1 Memory Management Chapter 4 4.1 Basic memory management 4.2 Swapping 4.3 Virtual memory 4.4 Page replacement algorithms 4.5 Modeling page replacement](https://reader036.vdocuments.us/reader036/viewer/2022062417/5515d209550346d46f8b469a/html5/thumbnails/25.jpg)
25
Least Recently Used (LRU)
• Assume pages used recently will used again soon– throw out page that has been unused for longest time
• Must keep a linked list of pages– most recently used at front, least at rear
– update this list every memory reference !!
• Alternatively, keep counter in each page table entry indicating the time of last reference– choose page with lowest value counter
![Page 26: 1 Memory Management Chapter 4 4.1 Basic memory management 4.2 Swapping 4.3 Virtual memory 4.4 Page replacement algorithms 4.5 Modeling page replacement](https://reader036.vdocuments.us/reader036/viewer/2022062417/5515d209550346d46f8b469a/html5/thumbnails/26.jpg)
26
Implementation of LRU
LRU using a matrix – pages referenced in order 0,1,2,3,2,1,0,3,2,3
![Page 27: 1 Memory Management Chapter 4 4.1 Basic memory management 4.2 Swapping 4.3 Virtual memory 4.4 Page replacement algorithms 4.5 Modeling page replacement](https://reader036.vdocuments.us/reader036/viewer/2022062417/5515d209550346d46f8b469a/html5/thumbnails/27.jpg)
27
Simulating LRU in Software
• The aging algorithm simulates LRU in software
![Page 28: 1 Memory Management Chapter 4 4.1 Basic memory management 4.2 Swapping 4.3 Virtual memory 4.4 Page replacement algorithms 4.5 Modeling page replacement](https://reader036.vdocuments.us/reader036/viewer/2022062417/5515d209550346d46f8b469a/html5/thumbnails/28.jpg)
28
The Working Set
• Working set: the set of pages currently used by the process – Changes over time.
• Locality of reference: during any phase of execution, the process references only a relatively small fraction of its pages.
• Thrashing: a program causing page faults at every few instructions.
![Page 29: 1 Memory Management Chapter 4 4.1 Basic memory management 4.2 Swapping 4.3 Virtual memory 4.4 Page replacement algorithms 4.5 Modeling page replacement](https://reader036.vdocuments.us/reader036/viewer/2022062417/5515d209550346d46f8b469a/html5/thumbnails/29.jpg)
29
The Working Set Page Replacement Algorithm
The working set algorithm
![Page 30: 1 Memory Management Chapter 4 4.1 Basic memory management 4.2 Swapping 4.3 Virtual memory 4.4 Page replacement algorithms 4.5 Modeling page replacement](https://reader036.vdocuments.us/reader036/viewer/2022062417/5515d209550346d46f8b469a/html5/thumbnails/30.jpg)
30
The WSClock Page Replacement Algorithm
Operation of the WSClock algorithm
![Page 31: 1 Memory Management Chapter 4 4.1 Basic memory management 4.2 Swapping 4.3 Virtual memory 4.4 Page replacement algorithms 4.5 Modeling page replacement](https://reader036.vdocuments.us/reader036/viewer/2022062417/5515d209550346d46f8b469a/html5/thumbnails/31.jpg)
31
Review of Page Replacement Algorithms
![Page 32: 1 Memory Management Chapter 4 4.1 Basic memory management 4.2 Swapping 4.3 Virtual memory 4.4 Page replacement algorithms 4.5 Modeling page replacement](https://reader036.vdocuments.us/reader036/viewer/2022062417/5515d209550346d46f8b469a/html5/thumbnails/32.jpg)
32
Modeling Page Replacement AlgorithmsBelady's Anomaly
a) FIFO with 3 page framesb) FIFO with 4 page frames• P's show which page references show page faults
![Page 33: 1 Memory Management Chapter 4 4.1 Basic memory management 4.2 Swapping 4.3 Virtual memory 4.4 Page replacement algorithms 4.5 Modeling page replacement](https://reader036.vdocuments.us/reader036/viewer/2022062417/5515d209550346d46f8b469a/html5/thumbnails/33.jpg)
33
Design Issues for Paging SystemsLocal versus Global Allocation Policies (1)
a) Original configurationb) Local page replacementc) Global page replacement
![Page 34: 1 Memory Management Chapter 4 4.1 Basic memory management 4.2 Swapping 4.3 Virtual memory 4.4 Page replacement algorithms 4.5 Modeling page replacement](https://reader036.vdocuments.us/reader036/viewer/2022062417/5515d209550346d46f8b469a/html5/thumbnails/34.jpg)
34
Local versus Global Allocation Policies (2)
Page fault rate as a function of the number of page frames assigned
![Page 35: 1 Memory Management Chapter 4 4.1 Basic memory management 4.2 Swapping 4.3 Virtual memory 4.4 Page replacement algorithms 4.5 Modeling page replacement](https://reader036.vdocuments.us/reader036/viewer/2022062417/5515d209550346d46f8b469a/html5/thumbnails/35.jpg)
35
Load Control
• Despite good designs, system may still thrash
• When PFF algorithm indicates – some processes need more memory – but no processes need less
• Solution :Reduce number of processes competing for memory– swap one or more to disk, divide up pages they held– reconsider degree of multiprogramming
![Page 36: 1 Memory Management Chapter 4 4.1 Basic memory management 4.2 Swapping 4.3 Virtual memory 4.4 Page replacement algorithms 4.5 Modeling page replacement](https://reader036.vdocuments.us/reader036/viewer/2022062417/5515d209550346d46f8b469a/html5/thumbnails/36.jpg)
36
Page Size
Small page size
• Advantages– less internal fragmentation – better fit for various data structures, code sections– less unused program in memory
• Disadvantages– programs need many pages, larger page tables
![Page 37: 1 Memory Management Chapter 4 4.1 Basic memory management 4.2 Swapping 4.3 Virtual memory 4.4 Page replacement algorithms 4.5 Modeling page replacement](https://reader036.vdocuments.us/reader036/viewer/2022062417/5515d209550346d46f8b469a/html5/thumbnails/37.jpg)
37
Cleaning Policy
• Need for a background process, paging daemon– periodically inspects state of memory
• When too few frames are free– selects pages to evict using a replacement algorithm
• It can use same circular list (clock) as regular page replacement algorithm
![Page 38: 1 Memory Management Chapter 4 4.1 Basic memory management 4.2 Swapping 4.3 Virtual memory 4.4 Page replacement algorithms 4.5 Modeling page replacement](https://reader036.vdocuments.us/reader036/viewer/2022062417/5515d209550346d46f8b469a/html5/thumbnails/38.jpg)
38
Segmentation (1)
• One-dimensional address space with growing tables• One table may bump into another
![Page 39: 1 Memory Management Chapter 4 4.1 Basic memory management 4.2 Swapping 4.3 Virtual memory 4.4 Page replacement algorithms 4.5 Modeling page replacement](https://reader036.vdocuments.us/reader036/viewer/2022062417/5515d209550346d46f8b469a/html5/thumbnails/39.jpg)
39
Segmentation (2)
Allows each table to grow or shrink, independently
![Page 40: 1 Memory Management Chapter 4 4.1 Basic memory management 4.2 Swapping 4.3 Virtual memory 4.4 Page replacement algorithms 4.5 Modeling page replacement](https://reader036.vdocuments.us/reader036/viewer/2022062417/5515d209550346d46f8b469a/html5/thumbnails/40.jpg)
40
Segmentation (3)
Comparison of paging and segmentation
![Page 41: 1 Memory Management Chapter 4 4.1 Basic memory management 4.2 Swapping 4.3 Virtual memory 4.4 Page replacement algorithms 4.5 Modeling page replacement](https://reader036.vdocuments.us/reader036/viewer/2022062417/5515d209550346d46f8b469a/html5/thumbnails/41.jpg)
41
Implementation of Pure Segmentation
(a)-(d) Development of external fragmentation(e) Compaction
![Page 42: 1 Memory Management Chapter 4 4.1 Basic memory management 4.2 Swapping 4.3 Virtual memory 4.4 Page replacement algorithms 4.5 Modeling page replacement](https://reader036.vdocuments.us/reader036/viewer/2022062417/5515d209550346d46f8b469a/html5/thumbnails/42.jpg)
42
Segmentation with Paging: MULTICS (1)
• Descriptor segment points to page tables• Segment descriptor – numbers are field lengths
![Page 43: 1 Memory Management Chapter 4 4.1 Basic memory management 4.2 Swapping 4.3 Virtual memory 4.4 Page replacement algorithms 4.5 Modeling page replacement](https://reader036.vdocuments.us/reader036/viewer/2022062417/5515d209550346d46f8b469a/html5/thumbnails/43.jpg)
43
Segmentation with Paging: MULTICS (2)
A 34-bit MULTICS virtual address
![Page 44: 1 Memory Management Chapter 4 4.1 Basic memory management 4.2 Swapping 4.3 Virtual memory 4.4 Page replacement algorithms 4.5 Modeling page replacement](https://reader036.vdocuments.us/reader036/viewer/2022062417/5515d209550346d46f8b469a/html5/thumbnails/44.jpg)
44
Segmentation with Paging: MULTICS (3)
Conversion of a 2-part MULTICS address into a main memory address
![Page 45: 1 Memory Management Chapter 4 4.1 Basic memory management 4.2 Swapping 4.3 Virtual memory 4.4 Page replacement algorithms 4.5 Modeling page replacement](https://reader036.vdocuments.us/reader036/viewer/2022062417/5515d209550346d46f8b469a/html5/thumbnails/45.jpg)
45
Segmentation with Paging: MULTICS (4)
Simplified version of the MULTICS TLB