You are on page 1of 46

Malik Rizwan Yasin – Ph.d Researcher in Advance Network System Memory Management 4.1 Basic memory management 4.2 Swapping 4.

3 Virtual memory 4.4 Page replacement algorithms 4.5 Modeling page replacement algorithms 4.6 Design issues for pagin g systems 4.7 Implementation issues 4.8 Segmentation Malik Rizwan Yasin 00923009289949 1

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 mai n memory – gigabytes of slow, cheap disk storage • Memory manager Malik Rizwan Yasin - memory hierarchy handles the 00923009289949 2

Requirements of MM • Relocation: cannot be sure where program will be loaded in memory • Protection: av oiding unwanted interference by other processes • Efficient use of CPU and main me mory • Sharing: data shared by cooperating processes Malik Rizwan Yasin 00923009289949 3

CPU Utilization Degree of multiprogramming Malik Rizwan Yasin 00923009289949 4

Multiprogramming with Fixed Partitions • Fixed memory partitions a) separate input queues for each partition b) single input queueYasin Malik Riz wan 00923009289949 5

Multiprogramming with Fixed Partitions • Memory is allocated according to some algorithm, e.g. using best fit • Strength: e asy implementation • Weakness: inefficient use of memory because of internal fragm entation (partitions may not be full); limited number of active processes Malik Rizwan Yasin 00923009289949 6

Swapping or Dynamic Partitioning Memory allocation changes by swapping processes in and out Shaded regions are un used memory - external fragmentation Malik Rizwan Yasin 00923009289949 7

Problem with growing segments • Allocating space for growing data segment • Allocating space for growing -stack & data segment Malik Rizwan Yasin 00923009289949 8

Virtual Memory • Problem: some programs are too big for main memory; large programs in memory lim it the degree of multiprogramming • Solution: keep only those parts of the program s in main memory that are currently in use • Basic idea: a map between programgene rated addresses (virtual address space) and main memory • Main techniques: paging and segmentation Malik Rizwan Yasin 00923009289949 9

Paging (1) The position and function of the MMU Malik Rizwan Yasin 00923009289949 10

Paging (2) The relation between virtual addresses and physical memory addresses given by pa ge table Malik Rizwan Yasin 00923009289949 11

Page Tables (1) Internal operation Malik Rizwan Yasin with 16 4 KB pages of MMU 00923009289949 12

Page Tables (2) Second-level page tables Top-level page table • 32 bit address with 2 page table fields • Two-level page tables Rizwan Yasin Malik 00923009289949 13

Page Tables (3) Typical page table entry Malik Rizwan Yasin 00923009289949 14

TLBs – Translation Lookaside Buffers A TLB to speed up paging Malik Rizwan Yasin 00923009289949 15

Inverted Page Tables Comparison of a traditional page table with an inverted page table Malik Rizwan Yasin 00923009289949 16

Page Replacement • Page fault: referencing a page that is not in main memory • Page fault forces choi ce – 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 Malik Rizwan Yasin 00923009289949 17

Page Fault Handling (1) Hardware traps to kernel General registers saved OS chooses page frame to free I f selected frame is dirty, writes it to disk Malik Rizwan Yasin 00923009289949 18

Page Fault Handling (2) OS brings scheduled new page in from disk Page tables updated Faulting instructi on backed up to when it began Faulting process scheduled Registers restored Prog ram continues Malik Rizwan Yasin 00923009289949 19

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 Malik Rizwan Yasin 00923009289949 20

Not Recently Used Page Replacement Algorithm • Each page has Reference bit, Modifi ed bit – bits are set when page is referenced, modified • Pages are classified 1. 2. 3. 4. not referenced, not modified not referenced, modified referenced, not modified r eferenced, modified • NRU removes page at random – from lowest numbered non empty class • Macintosh v.m. uses a variant of NRU Malik Rizwan Yasin 00923009289949 21

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 Malik Rizwan Yasin 00923009289949 22

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 pagesRizwanloading times) Malik are Yasin 00923009289949 23

The Clock Page Replacement Algorithm Malik Rizwan Yasin 00923009289949 24

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 referen ce !! • Alternatively, keep counter in each page table entry indicating the time of last reference – choose page with lowest value counter Malik Rizwan Yasin 00923009289949 25

Implementation of LRU LRU using a matrix – pages- referenced in order Malik Rizwan Yasin 00923009289949 0,1,2,3,2,1,0,3,2,3 26

Simulating LRU in Software • The aging algorithm simulates LRU in software Malik Rizwan Yasin 00923009289949 27

The Working Set • Working set: the set of pages currently used by the process – Changes over time. • L ocality of reference: during any phase of execution, the process references only a relatively small fraction of its pages. • Thrashing: a program causing page fau lts at every few instructions. Malik Rizwan Yasin 00923009289949 28

The Working Set Page Replacement Algorithm The working set algorithm Malik Rizwan Yasin 00923009289949 29

The WSClock Page Replacement Algorithm Malik Rizwan Yasin Operation of 00923009289949 the WSClock algorithm 30

Review of Page Replacement Algorithms Malik Rizwan Yasin 00923009289949 31

Modeling Page Replacement Algorithms Belady's Anomaly a) FIFO with 3 page frames b) FIFO with 4 page frames Malik Rizwan Yasin • P's sho w which page references show page faults 00923009289949 32

Design Issues for Paging Systems Local versus Global Allocation Policies (1) a) Original configuration b) Local page replacement c) GlobalMalik Rizwan replac ement page Yasin 00923009289949 33

Local versus Global Allocation Policies (2) Page fault rate as a function of the number of page frames assigned Malik Rizwan Yasin 00923009289949 34

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 multipr ogramming Malik Rizwan Yasin 00923009289949 35

Page Size Small page size • Advantages – less internal fragmentation – better fit for various data structures, code section s – less unused program in memory • Disadvantages – programs need many pages, larger page tables Malik Rizwan Yasin 00923009289949 36

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 Malik Rizwan Yasin 00923009289949 37

Segmentation (1) • One-dimensional address space with growing tables Malik Rizwan Yasin • One table m ay bump 00923009289949 into another 38

Segmentation (2) Allows each table toMalik Rizwan Yasin shrink, independently grow or 00923009289 949 39

Segmentation (3) Comparison of paging and segmentation Malik Rizwan Yasin 00923009289949 40

Implementation of Pure Segmentation (a)-(d) Development of external fragmentation (e) Compaction Malik Rizwan Yasin 00923009289949 41

Segmentation with Paging: MULTICS (1) • Descriptor segment points to page tables Malik – numbers are field lengths • Segment descriptor Rizwan Yasin 42 00923009289949

Segmentation with Paging: MULTICS (2) A 34-bit MULTICS virtual address Malik Rizwan Yasin 00923009289949 43

Segmentation with Paging: MULTICS (3) Conversion of a 2-part MULTICS address into a main memory address Malik Rizwan Y asin 00923009289949 44

Segmentation with Paging: MULTICS (4) Simplified version of the MULTICS TLB Malik Rizwan Yasin 00923009289949 45