1 memory management from chapter 4, modern operating systems, andrew s. tanenbaum
TRANSCRIPT
![Page 1: 1 Memory Management From Chapter 4, Modern Operating Systems, Andrew S. Tanenbaum](https://reader035.vdocuments.mx/reader035/viewer/2022062217/56649e585503460f94b516e9/html5/thumbnails/1.jpg)
1
Memory Management
From Chapter 4, Modern Operating Systems, Andrew S. Tanenbaum
![Page 2: 1 Memory Management From Chapter 4, Modern Operating Systems, Andrew S. Tanenbaum](https://reader035.vdocuments.mx/reader035/viewer/2022062217/56649e585503460f94b516e9/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 managers handle the memory hierarchy
![Page 3: 1 Memory Management From Chapter 4, Modern Operating Systems, Andrew S. Tanenbaum](https://reader035.vdocuments.mx/reader035/viewer/2022062217/56649e585503460f94b516e9/html5/thumbnails/3.jpg)
3
Basic Memory ManagementMonoprogramming without Swapping or Paging
Three simple ways of organizing memory- an operating system with one user process
![Page 4: 1 Memory Management From Chapter 4, Modern Operating Systems, Andrew S. Tanenbaum](https://reader035.vdocuments.mx/reader035/viewer/2022062217/56649e585503460f94b516e9/html5/thumbnails/4.jpg)
4
Multiprogramming with Fixed Partitions
• Fixed memory partitions– separate input queues for each partition– single input queue
![Page 5: 1 Memory Management From Chapter 4, Modern Operating Systems, Andrew S. Tanenbaum](https://reader035.vdocuments.mx/reader035/viewer/2022062217/56649e585503460f94b516e9/html5/thumbnails/5.jpg)
5
Relocation and Protection
• Cannot be sure where program will be loaded in memory– address locations of variables, code routines cannot be absolute
– must keep a program out of other processes’ partitions
• Use base and limit values– address locations added to base value to map to physical addr
– address locations larger than limit value is an error
• Self-relocation– Program computes its own references
![Page 6: 1 Memory Management From Chapter 4, Modern Operating Systems, Andrew S. Tanenbaum](https://reader035.vdocuments.mx/reader035/viewer/2022062217/56649e585503460f94b516e9/html5/thumbnails/6.jpg)
6
Swapping (1)
Memory allocation changes as – processes come into memory– leave memory
Shaded regions are unused memory(global fragmentation)
![Page 7: 1 Memory Management From Chapter 4, Modern Operating Systems, Andrew S. Tanenbaum](https://reader035.vdocuments.mx/reader035/viewer/2022062217/56649e585503460f94b516e9/html5/thumbnails/7.jpg)
7
Swapping (2)
• Allocating space for growing data segment• Allocating space for growing stack & data segment
![Page 8: 1 Memory Management From Chapter 4, Modern Operating Systems, Andrew S. Tanenbaum](https://reader035.vdocuments.mx/reader035/viewer/2022062217/56649e585503460f94b516e9/html5/thumbnails/8.jpg)
8
Virtual MemoryPaging (1)
The position and function of the MMU
![Page 9: 1 Memory Management From Chapter 4, Modern Operating Systems, Andrew S. Tanenbaum](https://reader035.vdocuments.mx/reader035/viewer/2022062217/56649e585503460f94b516e9/html5/thumbnails/9.jpg)
9
Paging (2)
The relation betweenvirtual addressesand physical memory addresses given bypage table
Frame#
![Page 10: 1 Memory Management From Chapter 4, Modern Operating Systems, Andrew S. Tanenbaum](https://reader035.vdocuments.mx/reader035/viewer/2022062217/56649e585503460f94b516e9/html5/thumbnails/10.jpg)
10
Page Tables (1)
Internal operation of MMU with 16 4 KB pages
![Page 11: 1 Memory Management From Chapter 4, Modern Operating Systems, Andrew S. Tanenbaum](https://reader035.vdocuments.mx/reader035/viewer/2022062217/56649e585503460f94b516e9/html5/thumbnails/11.jpg)
11
Page Tables (2)
• 32 bit address with 2 page table fields
• Two-level page tables
Top-level page table
Second-level page tables
![Page 12: 1 Memory Management From Chapter 4, Modern Operating Systems, Andrew S. Tanenbaum](https://reader035.vdocuments.mx/reader035/viewer/2022062217/56649e585503460f94b516e9/html5/thumbnails/12.jpg)
12
Page Tables (3)
Typical page table entry
![Page 13: 1 Memory Management From Chapter 4, Modern Operating Systems, Andrew S. Tanenbaum](https://reader035.vdocuments.mx/reader035/viewer/2022062217/56649e585503460f94b516e9/html5/thumbnails/13.jpg)
13
TLBs – Translation Lookaside Buffers
A TLB to speed up paging
![Page 14: 1 Memory Management From Chapter 4, Modern Operating Systems, Andrew S. Tanenbaum](https://reader035.vdocuments.mx/reader035/viewer/2022062217/56649e585503460f94b516e9/html5/thumbnails/14.jpg)
14
Inverted Page Tables
Comparison of a traditional page table with an inverted page table
![Page 15: 1 Memory Management From Chapter 4, Modern Operating Systems, Andrew S. Tanenbaum](https://reader035.vdocuments.mx/reader035/viewer/2022062217/56649e585503460f94b516e9/html5/thumbnails/15.jpg)
15
Page Replacement Algorithms (1)
• Page fault forces choice – which page must be removed– 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 16: 1 Memory Management From Chapter 4, Modern Operating Systems, Andrew S. Tanenbaum](https://reader035.vdocuments.mx/reader035/viewer/2022062217/56649e585503460f94b516e9/html5/thumbnails/16.jpg)
16
Page Replacement Algorithms (2)
• Optimal Page Replacement– Replace page needed at the
farthest point in future– Optimal but unrealizable
• Not Recently Used (NRU)
• FIFO
• Second Chance
• Clock
• Least Recently Used (LRU)
• Not Frequently Used (NFU)
• Aging
• Working Set
• WSClock
![Page 17: 1 Memory Management From Chapter 4, Modern Operating Systems, Andrew S. Tanenbaum](https://reader035.vdocuments.mx/reader035/viewer/2022062217/56649e585503460f94b516e9/html5/thumbnails/17.jpg)
17
Design Issues for Paging SystemsLocal versus Global Allocation Policies
• Original configuration
• Local page replacement
• Global page replacement
![Page 18: 1 Memory Management From Chapter 4, Modern Operating Systems, Andrew S. Tanenbaum](https://reader035.vdocuments.mx/reader035/viewer/2022062217/56649e585503460f94b516e9/html5/thumbnails/18.jpg)
18
Cleaning Policy (Garbage Collection)
• Need for a background process, paging daemon– periodically inspects state of memory
• When too few page frames are free– selects pages to evict using a replacement algorithm
![Page 19: 1 Memory Management From Chapter 4, Modern Operating Systems, Andrew S. Tanenbaum](https://reader035.vdocuments.mx/reader035/viewer/2022062217/56649e585503460f94b516e9/html5/thumbnails/19.jpg)
19
Load Control
• Despite good designs, system may still thrash when– 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 20: 1 Memory Management From Chapter 4, Modern Operating Systems, Andrew S. Tanenbaum](https://reader035.vdocuments.mx/reader035/viewer/2022062217/56649e585503460f94b516e9/html5/thumbnails/20.jpg)
20
Page Size
Small page size
• Advantages– less internal fragmentation – better fit for various data structures, code sections
• Disadvantages– program needs more pages has larger page table
![Page 21: 1 Memory Management From Chapter 4, Modern Operating Systems, Andrew S. Tanenbaum](https://reader035.vdocuments.mx/reader035/viewer/2022062217/56649e585503460f94b516e9/html5/thumbnails/21.jpg)
21
Separate Instruction and Data Spaces
• One address space• Separate I and D spaces
![Page 22: 1 Memory Management From Chapter 4, Modern Operating Systems, Andrew S. Tanenbaum](https://reader035.vdocuments.mx/reader035/viewer/2022062217/56649e585503460f94b516e9/html5/thumbnails/22.jpg)
22
Shared Pages
Two processes sharing same program sharing its page table
![Page 23: 1 Memory Management From Chapter 4, Modern Operating Systems, Andrew S. Tanenbaum](https://reader035.vdocuments.mx/reader035/viewer/2022062217/56649e585503460f94b516e9/html5/thumbnails/23.jpg)
23
References• Chapters 8 and 9 :OS Concepts, Silberschatz, Galvin, Gagne
• Chapter 4: Modern Operating Systems, Andrew S. Tanenbaum
• X86 architecture– http://en.wikipedia.org/wiki/Memory_segment
• Memory segment– http://en.wikipedia.org/wiki/X86
• Memory model– http://en.wikipedia.org/wiki/Memory_model
• IA-32 Intel Architecture Software Developer’s Manual, Volume 1: Basic Architecture– http://www.intel.com/design/pentium4/manuals/index_new.htm