Clock-Pro: An Effective Replacement in OS Kernel Xiaodong Zhang College of William and Mary.

Slides:



Advertisements
Similar presentations
ARC: A self-tuning, low overhead Replacement Cache
Advertisements

Chapter 4 Memory Management Basic memory management Swapping
9.4 Page Replacement What if there is no free frame?
4.4 Page replacement algorithms
Song Jiang1 and Xiaodong Zhang1,2 1College of William and Mary
Virtual Memory (Chapter 4.3)
Virtual Memory 3 Fred Kuhns
Module 10: Virtual Memory
Chapter 3 Memory Management
The Performance Impact of Kernel Prefetching on Buffer Cache Replacement Algorithms (ACM SIGMETRIC 05 ) ACM International Conference on Measurement & Modeling.
Background Virtual memory – separation of user logical memory from physical memory. Only part of the program needs to be in memory for execution. Logical.
Virtual Memory: Page Replacement
Chapter 8 Virtual Memory
ARC: A SELF-TUNING, LOW OVERHEAD REPLACEMENT CACHE
1 Cache and Caching David Sands CS 147 Spring 08 Dr. Sin-Min Lee.
Outperforming LRU with an Adaptive Replacement Cache Algorithm Nimrod megiddo Dharmendra S. Modha IBM Almaden Research Center.
Virtual Memory. 2 What is virtual memory? Each process has illusion of large address space –2 32 for 32-bit addressing However, physical memory is much.
Virtual Memory.
Caching and Virtual Memory. Main Points Cache concept – Hardware vs. software caches When caches work and when they don’t – Spatial/temporal locality.
9.1 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Virtual Memory OSC: Chapter 9. Demand Paging Copy-on-Write Page Replacement.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 10: Virtual Memory Background Demand Paging Process Creation Page Replacement.
Module 9: Virtual Memory
Chapter 101 Virtual Memory Chapter 10 Sections and plus (Skip:10.3.2, 10.7, rest of 10.8)
CS 342 – Operating Systems Spring 2003 © Ibrahim Korpeoglu Bilkent University1 Memory Management – 4 Page Replacement Algorithms CS 342 – Operating Systems.
Chapter 9: Virtual Memory. 9.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Feb 22, 2005 Chapter 9: Virtual Memory Background.
ECE7995 Caching and Prefetching Techniques in Computer Systems Lecture 8: Buffer Cache in Main Memory (IV)
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 9: Virtual Memory.
OS Spring’04 Virtual Memory: Page Replacement Operating Systems Spring 2004.
Demand Paging Virtual memory = indirect addressing + demand paging –Without demand paging, indirect addressing by itself is valuable because it reduces.
Operating Systems ECE344 Ding Yuan Page Replacement Lecture 9: Page Replacement.
CSS430 Virtual Memory Textbook Ch9
Caching and Virtual Memory. Main Points Cache concept – Hardware vs. software caches When caches work and when they don’t – Spatial/temporal locality.
O RERATıNG S YSTEM LESSON 10 MEMORY MANAGEMENT II 1.
Memory Management Page replacement algorithms, segmentation Tanenbaum, ch. 3 p Silberschatz, ch. 8, 9 p
Page Replacement in Real Systems Questions answered in this lecture: How can the LRU page be approximated efficiently? How can users discover the page.
Memory Thrashing Protection in Multi-Programming Environment Xiaodong Zhang Ohio State University College of William and Mary In collaborations with Song.
Buffer Management Policy
Chapter 21 Virtual Memoey: Policies Chien-Chung Shen CIS, UD
Chapter 8 Virtual Memory Operating Systems: Internals and Design Principles Seventh Edition William Stallings.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Virtual Memory.
© Janice Regan, CMPT 300, May CMPT 300 Introduction to Operating Systems Memory: Paging.
Operating Systems CMPSC 473 Virtual Memory Management (3) November – Lecture 20 Instructor: Bhuvan Urgaonkar.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 10: Virtual Memory Background Demand Paging Page Replacement Allocation of.
Memory Thrashing Protection in Multi-Programming Environment Xiaodong Zhang Ohio State University In collaborations with Song Jiang (Wayne State University)
CPS110: Page replacement Landon Cox. Replacement  Think of physical memory as a cache  What happens on a cache miss?  Page fault  Must decide what.
Silberschatz, Galvin and Gagne ©2013 Operating System Concepts Essentials – 9 th Edition Chapter 9: Virtual-Memory Management.
Silberschatz, Galvin and Gagne  Operating System Concepts Virtual Memory Virtual memory – separation of user logical memory from physical memory.
1 Page Replacement Algorithms. 2 Virtual Memory Management Fundamental issues : A Recap Key concept: Demand paging  Load pages into memory only when.
Operating Systems ECE344 Ding Yuan Page Replacement Lecture 9: Page Replacement.
Silberschatz, Galvin and Gagne ©2011 Operating System Concepts Essentials – 8 th Edition Chapter 9: Virtual Memory.
Virtual Memory. 2 Last Week Memory Management Increase degree of multiprogramming –Entire process needs to fit into memory Dynamic Linking and Loading.
LIRS: Low Inter-reference Recency Set Replacement for VM and Buffer Caches Xiaodong Zhang College of William and Mary.
Page Replacement FIFO, LIFO, LRU, NUR, Second chance
Virtual Memory Operating Systems 1 Computer Science Dept Va Tech August 2007 © McQuain Page Buffering LRU and the Clock Algorithm are generally.
CS 3204 Operating Systems Godmar Back Lecture 18.
CS 333 Introduction to Operating Systems Class 14 – Page Replacement
Chapter 21 Virtual Memoey: Policies
Virtual Memory Management
Module 9: Virtual Memory
Chapter 9: Virtual-Memory Management
Clock-Pro: An Effective Replacement in OS Kernel
Contents Memory types & memory hierarchy Virtual memory (VM)
Practical Session 8, Memory Management 2
Operating Systems CMPSC 473
Module IV Memory Organization.
Lecture 9: Caching and Demand-Paged Virtual Memory
ARC (Adaptive Replacement Cache)
Module 9: Virtual Memory
Chapter 9: Virtual Memory CSS503 Systems Programming
Practical Session 9, Memory Management continues
Presentation transcript:

Clock-Pro: An Effective Replacement in OS Kernel Xiaodong Zhang College of William and Mary

How to Make LIRS Work in OS Kernels? l Most system kernels use the CLOCK algorithm, an approximation of LRU. l We have made efforts to directly implement LIRS in Linux kernels, but … l Our experience tells us that we must build on existing strength. l CLOCK is the base for LIRS.

 All the resident pages are placed around a circular list, like a clock;  Each page is associated with a reference bit, indicating if the page has been accessed. Basic CLOCK Replacement 0 CLOCK hand On a HIT Set Reference bit to 1 (no algorithm operations) 1 0

Basic CLOCK Replacement 0 CLOCK hand On a sequence of two MISSes Starts from the currently pointed page, and evicts the page if it is”`0”; Move the clock hand until reach a “0” page; Give “1” page a second chance, and reset its “1” to “0”

The CLOCK with a Long History “In the Multics system a paging algorithm has been developed that has the implementation ease and low overhead of the FIFO strategy and is an approximation to the LRU strategy” “A paging Expreiment with the Multics System” MIT Project MAC Report MAC-M-384, May 1968, Fernando J. Corbato (1990 Turing Award Laureate)

The CLOCK has been Widely Used  Multics  UNIX/AIX/Linux/BSD  VAX/VMS  DB2  Windows/Oracle/Solaris  Tanebaum & Woodhull  Silberschatz & Galvin  Stallings (for undergraduate) Major OS Major OS Textbooks

Prior Work on LRU versus CLOCK  FBR (1990, SIGMETRICS)  LRU-2 (1993, SIGMOD)  2Q (1994, VLDB)  SEQ (1997, SIGMETRICS)  LRFU (1999, OSDI)  EELRU (1999, SIGMETRICS)  MQ (2001, USENIX)  LIRS (2002, SIGMETRICS)  ARC (2003, FAST)  GCLOCK (1978, ACM TDBS) LRU related workCLOCK related work  CAR (2004, FAST)  CLOCK-Pro (2005, USENIX)

 Introduce additional page access information.  A counter is associated with each page rather than a single bit;  The counter is incremented on a page hit;  The clock hand periodically moves, and decrements the counter of each block;  The page with its counter of 0 is replaced. GCLOCK Replacement

 An age is associated with each page in addition to a reference bit;  When the clock hand sweeps through pages, it increases its age if the page’s bit is 1, otherwise it decreases its age.  The page with its age of 0 is replaced. Age-Based CLOCK in Linux and FreeBSD

CAR: CLOCK with Adaptive Replacement  Two clocks T1 and T2, one is for cold pages touched only once recently (Recency), another is for hot pages touched at least twice (“Frequency”);  Queues B1 and B2 are for pages recently replaced from T1 and T2;  The memory allocations for T1 or T2 depend on the ratio of references to B2 and B1.

Limits of CAR  A page that is regularly accessed with its reuse distance a little bit larger memory size has no hits in T1 or T2. (inherited LRU problem).  A page in T2 can stay in memory without any accesses because frequency does not reflect ``reuse distance”.  No system implementations yet

 It is an approximation of LIRS based on the CLOCK infrastructure.  Pages categorized into two groups: cold pages and hot pages based on their reuse distances (or IRR).  There are three hands: Hand-hot for hot pages, Hand-cold for cold pages, and Hand-test for running a reuse distance test for a block;  The allocation of memory pages between hot pages (Mhot) and cold pages (Mcold ) are adaptively adjusted. (M = Mhot + Mcold)  All hot pages are resident (=Lir blocks), some cold pages are also resident (= Hir Blocks); keep track of recently replaced pages (=non-resident Hir blocks) Basic Ideas of CLOCK-Pro

CLOCK-Pro Structure hand-hot hand-test hand-cold Cold resident Hot Cold non-resident 0 All hands move in the clockwise direction. Hand-cold is used to find a page for replacement. Hand-test: (1) to determine if a cold page is promoted to be hot; (2) remove non-resident cold pages out of the clock. Hand-hot: find a hot page to be demoted into a cold page. Two reasons for a resident cold page: (1)A fresh replacement: a first access. (2)It is demoted from a hot page. 0

hand-hot hand-test hand-cold Resident Cold Pages Non-resident Cold PagesHot Pages Clock Accessing Sequence: ….27, 7, 26, 25, 4, 23 Accessing Sequence: ….27, 7, 26, 25, 4,

hand-hot hand-test hand-cold Hot Pages Clock Current accessing: Page 23 Current accessing: Page 23 Hit! Set reference bit of Page 23 to 1. No other operation Hit! Set reference bit of Page 23 to 1. No other operation Resident Cold Pages Non-resident Cold Pages

hand-hot hand-test hand-cold Hot Pages Clock Current accessing: Page 4 Current accessing: Page 4 Hit! Set reference bit of Page 4 to 1. No other operation Hit! Set reference bit of Page 4 to 1. No other operation Resident Cold Pages Non-resident Cold Pages

hand-hot hand-test hand-cold Hot Pages Clock Current accessing: Page 25 Current accessing: Page Resident Cold Pages Non-resident Cold Pages 0 (1) run hand-cold--- reclaim the first met cold page with ref bit 0 (Page 5) (2) Reclaim cold page 5 and remove it from resident cold page list Miss! 0 0

hand-hot hand-test Hot Pages Clock Current accessing: Page 25 Current accessing: Page Resident Cold Pages Non-resident Cold Pages hand-cold (3) Leave non-resident cold page 5 in the original position of clock list (5) run hand-test to find a position for page 5 (4) Add page 5 into non-resident cold page list 5 Non- resident colde page list is full! 0 0

hand-hot hand-test Hot Pages Clock Current accessing: Page 25 Current accessing: Page 25 (5) Add page 5 to non- resident cold page list Resident Cold Pages Non-resident Cold Pages hand-cold Reorganize clock list 0 0

hand-hot hand-test Hot Pages Clock Current accessing: Page 25 Current accessing: Page Resident Cold Pages Non-resident Cold Pages hand-cold Now we already have one empty room for page 25 (6) Check page 25 in non-resident page list- --it is not in it (7) Add page 25 into clock and resident cold page list page 25 does not exit! 0 0

hand-hot hand-test Hot Pages Clock Current accessing: Page 26 Current accessing: Page Resident Cold Pages Non-resident Cold Pages hand-cold Miss! (1) run hand-cold to reach the first met cold resident page with reference bit

hand-hot hand-test Hot Pages Clock Current accessing: Page 26 Current accessing: Page Resident Cold Pages Non-resident Cold Pages hand-cold Remove it from resident cold page list Page 4 has reference bit 1, it should be upgraded to hot list. 0 0

hand-hot hand-test Hot Pages Clock Current accessing: Page 26 Current accessing: Page Resident Cold Pages Non-resident Cold Pages Page 4 has reference bit 1, it should upgrade to a hot page hand-cold Remove it from resident cold page list 2. Reset the reference bit of page 4 and add it to hot page list Hot page list is full! 0 0

hand-hot hand-test Hot Pages Clock Current accessing: Page 26 Current accessing: Page Resident Cold Pages Non-resident Cold Pages run hand-hot: degrade the first met hot page with reference bit 0 to a cold resident page hand-cold

hand-hot hand-test Hot Pages Clock Current accessing: Page 26 Current accessing: Page Resident Cold Pages Non-resident Cold Pages Run hand-hot: degrade first met hot page with ref bit 0 to a cold resident page hand-cold Reorganize clock list 0 0

hand-hot hand-test Hot Pages Clock Current accessing: Page 26 Current accessing: Page Resident Cold Pages Non-resident Cold Pages hand-cold Page 4 is added into hot page list Page 24 is added into cold page list. 0 0

hand-test Hot Pages Clock Current accessing: Page 26 Current accessing: Page Resident Cold Pages Non-resident Cold Pages hand-cold hand-hot run hand-cold: Page 3 has reference bit 0, reclaim it and move hand-cold to the next position run hand-cold: Page 3 has reference bit 0, reclaim it and move hand-cold to the next position 0 0

hand-test Hot Pages Clock Current accessing: Page 26 Current accessing: Page Resident Cold Pages Non-resident Cold Pages hand-cold Reclaim page 3 and add it into non- resident cold page list hand-hot 0 3 Non- resident cold page list is full! 2. run hand-test: move 14 from non-resident cold page list. 1. Leave non-resident cold page 3 in the old position in clock list

hand-test Hot Pages Clock Current accessing: Page 26 Current accessing: Page Resident Cold Pages Non-resident Cold Pages hand-cold Add page 3 into non- resident cold page list hand-hot Reorganize clock list

hand-test Hot Pages Clock Current accessing: Page 26 Current accessing: Page Resident Cold Pages Non-resident Cold Pages hand-cold hand-hot 3 3 Add page 26 into resident cold page list and clock list

hand-test Hot Pages Clock Current accessing: Page 7 Current accessing: Page Resident Cold Pages Non-resident Cold Pages hand-cold hand-hot 3 3 Miss! (1) run hand-cold: reclaim the first met resident cold page (page 1) 0 0

hand-test Hot Pages Clock Current accessing: Page 7 Current accessing: Page Resident Cold Pages Non-resident Cold Pages hand-cold hand-hot Leave page 1 in the old position in clock list. 1 Non- resident cold page list is full! 2. run hand-test: to find a position for page 1

hand-test Hot Pages Clock Current accessing: Page 7 Current accessing: Page Resident Cold Pages Non-resident Cold Pages hand-cold hand-hot Add page 1 into non- resident cold page list. 1 1

hand-test Hot Pages Clock Current accessing: Page 7 Current accessing: Page Resident Cold Pages Non-resident Cold Pages hand-cold hand-hot Now we have one empty slot in memory 1 1 (1) check non-resident cold page list and find it---we need to upgrade it to hot page (2) run hand-hot: degrade the first met hot page with reference bit 0 to cold page Hot page list is full!

hand-test Hot Pages Clock Current accessing: Page 7 Current accessing: Page Resident Cold Pages Non-resident Cold Pages hand-cold hand-hot Page 23 has reference bit 1---reset it to 0

hand-test Hot Pages Clock Current accessing: Page 7 Current accessing: Page Resident Cold Pages Non-resident Cold Pages hand-cold hand-hot Page 22 has reference bit 1---reset it to 0

hand-test Hot Pages Clock Current accessing: Page 7 Current accessing: Page Resident Cold Pages Non-resident Cold Pages hand-cold hand-hot Page 21 has reference bit 0---degrade it

hand-test Hot Pages Clock Current accessing: Page 7 Current accessing: Page Resident Cold Pages Non-resident Cold Pages hand-cold hand-hot (3) Degrade page 21 to resident cold page Reorganize clock list 21 0

hand-test Hot Pages Clock Current accessing: Page 7 Current accessing: Page Resident Cold Pages Non-resident Cold Pages hand-cold hand-hot (4) insert page 21 to resident cold page and clock list (5) insert page 7 to hot page and clock list

Clock-Pro Implementation in Kernels l The Linux kernel for our implementation is l The VM management is well documented. (a Prentice Hall book in 04, Mel Gorman) l We are able to adjust the memory size available to the system and to the user in our experiment environment. l All pages are placed in a single clock list in CLOCK-PRO implementation with three hands. l SPEC 2000 and memory intensive software tools are used as benchmarks to test the CLOCK-Pro. l Compare the modified kernel with the original.

What is the Current Status of Clock-Pro? l Linux community is actively implementing it for its inclusion in the Kernel. l Clock-Pro-Approximation. l In Linux VM: l Mhot == active list l Mcold == inactive list l Mtest == recently evicted pages