Progress & Challenges for Virtual Memory Management Kathryn S. McKinley
|
|
- Andrea Johnson
- 6 years ago
- Views:
Transcription
1 Progress & Challenges for Virtual Memory Management Kathryn S. McKinley Microsoft Research 1!
2
3 The Storage Gap Petabytes 50,000,000! 40,000,000! 30,000,000! 20,000,000! 10,000,000! 0! Digital Universe Gap Installed Capacity Capacity Shipped Source: IDC
4 Memory capacity for $10,000 Memory size GB TB 64! , , Addressable servers 2 31 Addressable M B Year *Inflation-adjusted 2011 USD, from: jcmit.com!
5 Memory technologies FLASH DRAM Electrode PCM Chalcogenide Resistor (heat) Electrode DNA
6 Heterogeneous Memory Systems Mix of DRAM, Flash, NVM Memory coupled with FPGA & special purpose ASIC
7 Server software Mobile + Web + Cloud traditional batch throughput + interactive latency
8 Scaling up & out Basic Server Architecture aggregator Server workloads scaled to memory sizes & CPUs 8!
9 Applications must fit in memory 1000" Conviva customer search logs Queries """"Queries"per"second" seconds 100" 10" 1" 1" 2" 4" 8" 16" 32" 64" 128" Raw uncompressed data size Raw"input"size" Elas7csearch" MongoDB" Cassandra" 60 GB Amazon EC2 server, one core Corollary no swapping Source: R. Agarwal [NSDI 15, NSDI 16]
10 Road map Fitting in memory Better big memory hardware Implications for operating system memory management
11 Data in memory is compressible It s now cheaper to compress a page and write it out than write an uncompressed page Apple & VMware do it Physical Memory compress swapping! copy
12 Can we compute on compressed data?
13 Java limit study ψ ξ! run program Heap dumps Compression rate 60! 50! 40! 30! 20! 10! 0! Sartor et al. [ISMM 08, PLDI 10] t! ξ ψ! Models savings limit Value set indirection Value set caching Objects Deep equal sharing Arrays Zeros Hybrid
14 Reality of compressed arrays up to 49% compression, but 6% on average Fast indirect slow access Array Spine Header Inlined First N Arraylet Pointers Remaining Elements Arraylet Space Arraylet Arraylet Arraylet... Zero Arraylet
15 Are databases compressible? Data#Scans# Indexes# 0,#10,#14,#16,#19,#26,#29# 1,#4,#5,#8,#20,#22,#24# 2,#15,#17,#27# Search( ) 3,#6,#7,#9,#12,#13,#18,#23#..# 11,#21# Low$storage$ Low$Throughput$ High$storage$ High$Throughput$ Source: R. Agarwal [NSDI 15, NSDI 16]
16 Databases are compressible! Succinct insight Queries'execute'directly'on'compressed'data!' compression index serves as search index Burrows-Wheeler Transform (bzip) suffix arrays New data structures & query algorithms Source: R. Agarwal [NSDI 15, NSDI 16]
17 Source: R. Agarwal [NSDI 15, NSDI 16] Advantages Limitations Compression index is the data index! No scans No decompression Queries search, range, random access, regular expressions More CPU operations for data access No scans No in-place updates Preprocessing time
18 Order of magnitude more data Total footprint (GB) RAM Cassandra MongoDB ElasCcsearch Succinct Raw uncompressed data size Source: R. Agarwal [NSDI 15, NSDI 16]
19 Queries per seconds Throughput DB- X (Scans) ElasCcsearch Succinct Raw uncompressed data size
20 Fitting in memory is necessary, but not sufficient
21 Road map Fitting in memory Better big memory hardware Implications for operating system memory management
22 Scaling up & out Basic Server Architecture aggregator Server workloads scaled to memory sizes & CPUs 22!
23 Hardware organization Virtual Memory Page Table Physical Memory Process Process Page Table
24 Hardware organization Process Virtual Memory Page Table miss TLB fill Physical Memory hits Process TLB Translation Look aside Buffer on CPU critical path
25 Virtualization exacerbates TLB limitations Process Virtual Memory Host Page Table Guest Page Table Physical Memory Process TLB misses incur 4 + 4*5 memory accesses! Shadow page tables [TACO 13]
26 Memory capacity for $10,000 Memory size GB TB 64! , , Addressable servers 2 31 Addressable M B Year TLB L1 Entries *Inflation-adjusted 2011 USD, from: jcmit.com!
27 Bigger pages extend TLB reach Physical Memory 1 MB 1 GB aligned Explicit Programmer burden Transparent Internal fragmentation up to.5 page size depending on policy One size does not fit all!
28 Paged memory Virtual Memory Physical Memory 28!
29 Key observation: ranges of contiguity Virtual Memory Code Heap Stack Shared Lib. How much range contiguity is there?
30 Ranges vs Pages Total Application Address Space (%) ranges! pages! astar mcf cactusadm canneal graph500 memcached tigr #number of entries 30!
31 Idea: Redundant memory mappings Virtual Memory Code Heap Stack Shared Lib. Physical Memory 31!
32 Range translations: Base, Limit, Offset Virtual Memory BASE LIMIT Range Translation BASE OFFSET Physical Memory Range Translation: maps contiguous virtual pages to contiguous physical pages with uniform protection
33 OS memory management support Virtual Memory Demand Paging Physical Memory Does not facilitate physical range creation
34 Eager paging Virtual Memory Physical Memory Increases range sizes, but can waste memory
35 ISCA 15, IEEE MICRO Top Picks It works: eliminates VM overheads 45%! 35%! 25%! 15%! 5%! -5%! 0.00%! 0.25%! 0.40%! 0.00%! 0.14%! 0.06%! 0.26%! 4KB! CTLB! THP! DS! RMM! 4KB! CTLB! THP! DS! RMM! 4KB! CTLB! THP! DS! RMM! 4KB! CTLB! THP! DS! RMM! 4KB! CTLB! THP! DS! RMM! 1.06%! cactusadm! canneal! graph500! mcf! tigr!
36 Road map Fitting in memory Better big memory hardware Implications for operating system memory management
37 Variable page sizes and ranges require contiguity base pages do not
38 Source: codeproject.com OS Buddy allocation Design goals Power of 2 page sizes Fast allocation Fast coalescing
39 Memory management is a space tradeoff Lessons from garbage collection
40 GC Fundamentals Allocation Free List Identification Tracing (implicit) Reclamation Sweep-to-Free Compact Bump Allocation Reference Counting (explicit) 3 1 ` Evacuate 40
41 ! Canonical Garbage Collectors Mark-Sweep [McCarthy 1960]! Free-list + trace + sweep-to-free!!!! Mark-Compact [Styger 1967]! Bump allocation + trace + compact!!! Semi-Space [Cheney 1970]! Bump allocation + trace + evacuate!!!! Sweep-to-Free Compact ` Evacuate
42 Mark-Sweep Free List Allocation + Trace + Sweep-to-Free Mutator Poor locality Minimum Heap Space efficient Time! Space! Space! Time! Garbage Collection Simple fast collection Space! Time! Total Performance Space! SemiSpace MarkCompact MarkSweep
43 Mark-Compact Bump Allocation + Trace + Compact Time! Mutator Good locality Space! Space! Minimum Heap Space efficient Time! Garbage Collection Expensive multi-pass collection Time! Total Performance SemiSpace MarkCompact MarkSweep Space! Space! Actual data, taken from geomean of DaCapo, jvm98, and jbb2000 on 2.4GHz Core 2 Duo!
44 Semi-Space Bump Allocation + Trace + Evacuate Time! Mutator Good locality Space! Space! Minimum Heap Space inefficient Time! Garbage Collection Space inefficient Time! Total Performance SemiSpace MarkCompact MarkSweep Space! Space!
45 Performance Pathologies Mark-Sweep, Mark-Compact, Semi-Space Time! Mutator Mark-Sweep Poor locality Space! Space! Minimum Heap Semi-Space Space inefficient Time! Garbage Collection Mark-Compact expensive multi-pass Time! Total Performance SemiSpace MarkCompact MarkSweep Space! Space! Actual data, taken from geomean of DaCapo, jvm98, and jbb2000 on 2.4GHz Core 2 Duo!
46 Mark-Region with Sweep-To-Region Mark-Sweep Mark-Compact Semi-Space Mark-Region Bump + trace + sweep-to-region Reclamation Sweep-to-Free Compact Evacuate ` Sweep-to-Region
47 Naïve Mark-Region Contiguous allocation into regions Excellent locality Objects cannot span regions Simply mark objects and their region Free unmarked regions
48 Region Size? Large Regions More contiguous allocation! Fragmentation (false marking)! Small Regions Increased metadata! Constrained object sizes! Fragmentation (can t fill blocks)!
49 Hierarchy: lines and blocks N pages Free Recyclable lines Free approx 1 cache line Recyclable lines TLB locality, cache locality Objects span lines Less fragmentation Block > 4 X max object size! Lines marked with objects Fast common case
50 Allocation Policy (Recycling) Recycle partially marked blocks first ü ü ü Minimizes fragmentation Maximizes contiguity Shares free blocks among parallel thread allocators
51 Opportunistic Defragmentation Opportunistically evacuate fragmented blocks Lightweight, uses same allocation mechanism No cost in common case (specialized GC) Identify source and target blocks Evacuate objects in source blocks Allocate into target blocks Opportunistic: Leave in place if no space, or object pinned
52 Immix Mark-Region 128 byte lines, 32 KB blocks Opportunistic defragmentation triggered if there exist partially full blocks at memory exhaustion Overflow allocation of medium objects (> 128 bytes) Implicit marking
53 Immix Bump Allocation + Trace + Sweep-to-Region Time! Time! Locality Garbage Collection Simple Mutator Space! fast collection Space! Space! Total Performance MarkSweep Time! Minimum Heap Excellent Space efficient Space! Actual data, taken from geomean of DaCapo, jvm98, and jbb2000 on 2.4GHz Core 2 Duo! MarkCompact SemiSpace Immix
54 Lessons for OS Metadata Immix is more space & time efficient with 1.5% of metadata than all the zero metadata algorithms. Contiguity Applications allocate & access sequential virtual addresses. Immix exploits this property. Why not the OS?
55 Looking forward Opportunities for OS memory management
56 Mark Region (MR) for Multiple Page Sizes page sizes = region sizes page! huge page big page page allocation big page allocation big page promotion huge page promotion page = MR line big page = multiple pages = MR block (aligned) huge page = multiple big pages = multiple MR blocks, etc. Fragmentation management - better, block statistics always correct prevention allocate into occupied blocks w/ free pages defrag target & source blocks
57 Incremental adoption in buddy allocator buddy sizes = page sizes page! huge page big page page allocation big page allocation big page promotion huge page promotion Eliminate all buddy sizes potential page sizes Add metadata for blocks and pages Add allocation and defragmentation policies
58 What about range allocation? Virtual Memory Physical Memory
59 Mark Region for Ranges max range size = biggest block size big page max range size base range allocation bound partially filled block of pages Range allocation overflow allocation, harder due to variable sizes Fragmentation management prevention same, allocate into occupied blocks w/ free pages defrag same mechanisms with new incremental policies that consider multiple page sizes and maximum range size
60 Lots of challenges Heterogeneous memories memory management CPU constraints Queries'execute'directly'on'compressed'data!' DNA
61 Collaborators maybe YOU! Steve Blackburn Karin Strauss Vasileios Karakostas Jayneel Gandhi Mark D. Hill Michael M. Swift Osman S. Ünsal Mario Nemirovsky Furkan Ayar Adrián Cristal Jennifer Sartor Martin Hirzel Tiejun Gao
62 Lots of challenges Heterogeneous memories memory management CPU constraints Queries'execute'directly'on'compressed'data!' DNA
Myths and Realities: The Performance Impact of Garbage Collection
Myths and Realities: The Performance Impact of Garbage Collection Tapasya Patki February 17, 2011 1 Motivation Automatic memory management has numerous software engineering benefits from the developer
More informationHeap Compression for Memory-Constrained Java
Heap Compression for Memory-Constrained Java CSE Department, PSU G. Chen M. Kandemir N. Vijaykrishnan M. J. Irwin Sun Microsystems B. Mathiske M. Wolczko OOPSLA 03 October 26-30 2003 Overview PROBLEM:
More informationImmix: A Mark-Region Garbage Collector with Space Efficiency, Fast Collection, and Mutator Performance
Immix: A Mark-Region Garbage Collector with Space Efficiency, Fast Collection, and Mutator Performance Stephen M. Blackburn Australian National University Steve.Blackburn@anu.edu.au Kathryn S. McKinley
More informationReducing Memory Virtualization Overheads in Virtualized Datacenters. Jayneel Gandhi, Arkaprava Basu, Michael M. Swift, Mark D.
Reducing Memory Virtualization Overheads in Virtualized Datacenters Jayneel Gandhi, Arkaprava Basu, Michael M. Swift, Mark D. Hill Executive Summary Problem: TLB misses in virtual machines Hardware-virtualized
More informationVirtual Memory. Kevin Webb Swarthmore College March 8, 2018
irtual Memory Kevin Webb Swarthmore College March 8, 2018 Today s Goals Describe the mechanisms behind address translation. Analyze the performance of address translation alternatives. Explore page replacement
More informationRedundant Memory Mappings for Fast Access to Large Memories
Redundant Memory Mappings for Fast Access to Large Memories Vasileios Karakostas* 1,2 Jayneel Gandhi* 6 Furkan Ayar 3 Adrián Cristal 1,2,7 Mark D. Hill 6 Kathryn S. McKinley 4 Mario Nemirovsky 5 Michael
More informationAcknowledgements These slides are based on Kathryn McKinley s slides on garbage collection as well as E Christopher Lewis s slides
Garbage Collection Last time Compiling Object-Oriented Languages Today Motivation behind garbage collection Garbage collection basics Garbage collection performance Specific example of using GC in C++
More informationA new Mono GC. Paolo Molaro October 25, 2006
A new Mono GC Paolo Molaro lupus@novell.com October 25, 2006 Current GC: why Boehm Ported to the major architectures and systems Featurefull Very easy to integrate Handles managed pointers in unmanaged
More informationManaged runtimes & garbage collection. CSE 6341 Some slides by Kathryn McKinley
Managed runtimes & garbage collection CSE 6341 Some slides by Kathryn McKinley 1 Managed runtimes Advantages? Disadvantages? 2 Managed runtimes Advantages? Reliability Security Portability Performance?
More informationManaged runtimes & garbage collection
Managed runtimes Advantages? Managed runtimes & garbage collection CSE 631 Some slides by Kathryn McKinley Disadvantages? 1 2 Managed runtimes Portability (& performance) Advantages? Reliability Security
More informationMemory Management. Reading: Silberschatz chapter 9 Reading: Stallings. chapter 7 EEL 358
Memory Management Reading: Silberschatz chapter 9 Reading: Stallings chapter 7 1 Outline Background Issues in Memory Management Logical Vs Physical address, MMU Dynamic Loading Memory Partitioning Placement
More informationmemory management Vaibhav Bajpai
memory management Vaibhav Bajpai OS 2013 motivation virtualize resources: multiplex CPU multiplex memory (CPU scheduling) (memory management) why manage memory? controlled overlap processes should NOT
More informationEECS 482 Introduction to Operating Systems
EECS 482 Introduction to Operating Systems Winter 2018 Baris Kasikci Slides by: Harsha V. Madhyastha OS Abstractions Applications Threads File system Virtual memory Operating System Next few lectures:
More informationUsing Transparent Compression to Improve SSD-based I/O Caches
Using Transparent Compression to Improve SSD-based I/O Caches Thanos Makatos, Yannis Klonatos, Manolis Marazakis, Michail D. Flouris, and Angelos Bilas {mcatos,klonatos,maraz,flouris,bilas}@ics.forth.gr
More informationCMSC 330: Organization of Programming Languages
CMSC 330: Organization of Programming Languages Memory Management and Garbage Collection CMSC 330 - Spring 2013 1 Memory Attributes! Memory to store data in programming languages has the following lifecycle
More informationHeap Management. Heap Allocation
Heap Management Heap Allocation A very flexible storage allocation mechanism is heap allocation. Any number of data objects can be allocated and freed in a memory pool, called a heap. Heap allocation is
More informationChapter 9 Memory Management
Contents 1. Introduction 2. Computer-System Structures 3. Operating-System Structures 4. Processes 5. Threads 6. CPU Scheduling 7. Process Synchronization 8. Deadlocks 9. Memory Management 10. Virtual
More informationECE 598 Advanced Operating Systems Lecture 10
ECE 598 Advanced Operating Systems Lecture 10 Vince Weaver http://www.eece.maine.edu/~vweaver vincent.weaver@maine.edu 17 February 2015 Announcements Homework #1 and #2 grades, HW#3 Coming soon 1 Various
More informationCS 261 Fall Mike Lam, Professor. Virtual Memory
CS 261 Fall 2016 Mike Lam, Professor Virtual Memory Topics Operating systems Address spaces Virtual memory Address translation Memory allocation Lingering questions What happens when you call malloc()?
More informationRuntime. The optimized program is ready to run What sorts of facilities are available at runtime
Runtime The optimized program is ready to run What sorts of facilities are available at runtime Compiler Passes Analysis of input program (front-end) character stream Lexical Analysis token stream Syntactic
More informationGarbage Collection. Hwansoo Han
Garbage Collection Hwansoo Han Heap Memory Garbage collection Automatically reclaim the space that the running program can never access again Performed by the runtime system Two parts of a garbage collector
More informationDeallocation Mechanisms. User-controlled Deallocation. Automatic Garbage Collection
Deallocation Mechanisms User-controlled Deallocation Allocating heap space is fairly easy. But how do we deallocate heap memory no longer in use? Sometimes we may never need to deallocate! If heaps objects
More informationChapter 5B. Large and Fast: Exploiting Memory Hierarchy
Chapter 5B Large and Fast: Exploiting Memory Hierarchy One Transistor Dynamic RAM 1-T DRAM Cell word access transistor V REF TiN top electrode (V REF ) Ta 2 O 5 dielectric bit Storage capacitor (FET gate,
More informationCMSC 330: Organization of Programming Languages
CMSC 330: Organization of Programming Languages Memory Management and Garbage Collection CMSC 330 Spring 2017 1 Memory Attributes Memory to store data in programming languages has the following lifecycle
More informationMemory Management. Dr. Yingwu Zhu
Memory Management Dr. Yingwu Zhu Big picture Main memory is a resource A process/thread is being executing, the instructions & data must be in memory Assumption: Main memory is infinite Allocation of memory
More informationOS-caused Long JVM Pauses - Deep Dive and Solutions
OS-caused Long JVM Pauses - Deep Dive and Solutions Zhenyun Zhuang LinkedIn Corp., Mountain View, California, USA https://www.linkedin.com/in/zhenyun Zhenyun@gmail.com 2016-4-21 Outline q Introduction
More informationUsing Managed Runtime Systems to Tolerate Holes in Wearable Memories
Using Managed Runtime Systems to Tolerate Holes in Wearable Memories Tiejun Gao Karin Strauss Stephen M. Blackburn Kathryn S. McKinley Doug Burger James Larus Australian National University {tiejun.gao,steve.blackburn}@anu.edu.au
More informationFile system internals Tanenbaum, Chapter 4. COMP3231 Operating Systems
File system internals Tanenbaum, Chapter 4 COMP3231 Operating Systems Architecture of the OS storage stack Application File system: Hides physical location of data on the disk Exposes: directory hierarchy,
More informationThe C4 Collector. Or: the Application memory wall will remain until compaction is solved. Gil Tene Balaji Iyengar Michael Wolf
The C4 Collector Or: the Application memory wall will remain until compaction is solved Gil Tene Balaji Iyengar Michael Wolf High Level Agenda 1. The Application Memory Wall 2. Generational collection
More informationMemory Management. Disclaimer: some slides are adopted from book authors slides with permission 1
Memory Management Disclaimer: some slides are adopted from book authors slides with permission 1 CPU management Roadmap Process, thread, synchronization, scheduling Memory management Virtual memory Disk
More informationDecoupled Compressed Cache: Exploiting Spatial Locality for Energy-Optimized Compressed Caching
Decoupled Compressed Cache: Exploiting Spatial Locality for Energy-Optimized Compressed Caching Somayeh Sardashti and David A. Wood University of Wisconsin-Madison 1 Please find the power point presentation
More informationFile Systems: Fundamentals
File Systems: Fundamentals 1 Files! What is a file? Ø A named collection of related information recorded on secondary storage (e.g., disks)! File attributes Ø Name, type, location, size, protection, creator,
More informationKodewerk. Java Performance Services. The War on Latency. Reducing Dead Time Kirk Pepperdine Principle Kodewerk Ltd.
Kodewerk tm Java Performance Services The War on Latency Reducing Dead Time Kirk Pepperdine Principle Kodewerk Ltd. Me Work as a performance tuning freelancer Nominated Sun Java Champion www.kodewerk.com
More informationI/O and file systems. Dealing with device heterogeneity
I/O and file systems Abstractions provided by operating system for storage devices Heterogeneous -> uniform One/few storage objects (disks) -> many storage objects (files) Simple naming -> rich naming
More informationCS252 S05. Main memory management. Memory hardware. The scale of things. Memory hardware (cont.) Bottleneck
Main memory management CMSC 411 Computer Systems Architecture Lecture 16 Memory Hierarchy 3 (Main Memory & Memory) Questions: How big should main memory be? How to handle reads and writes? How to find
More informationCMSC 330: Organization of Programming Languages. Memory Management and Garbage Collection
CMSC 330: Organization of Programming Languages Memory Management and Garbage Collection CMSC330 Fall 2018 1 Memory Attributes Memory to store data in programming languages has the following lifecycle
More informationCS 31: Intro to Systems Virtual Memory. Kevin Webb Swarthmore College November 15, 2018
CS 31: Intro to Systems Virtual Memory Kevin Webb Swarthmore College November 15, 2018 Reading Quiz Memory Abstraction goal: make every process think it has the same memory layout. MUCH simpler for compiler
More informationGarbage Collection Techniques
Garbage Collection Techniques Michael Jantz COSC 340: Software Engineering 1 Memory Management Memory Management Recognizing when allocated objects are no longer needed Deallocating (freeing) the memory
More informationA program execution is memory safe so long as memory access errors never occur:
A program execution is memory safe so long as memory access errors never occur: Buffer overflows, null pointer dereference, use after free, use of uninitialized memory, illegal free Memory safety categories
More informationSustainable Memory Use Allocation & (Implicit) Deallocation (mostly in Java)
COMP 412 FALL 2017 Sustainable Memory Use Allocation & (Implicit) Deallocation (mostly in Java) Copyright 2017, Keith D. Cooper & Zoran Budimlić, all rights reserved. Students enrolled in Comp 412 at Rice
More informationComputer Architecture. Lecture 8: Virtual Memory
Computer Architecture Lecture 8: Virtual Memory Dr. Ahmed Sallam Suez Canal University Spring 2015 Based on original slides by Prof. Onur Mutlu Memory (Programmer s View) 2 Ideal Memory Zero access time
More informationMemory Management Topics. CS 537 Lecture 11 Memory. Virtualizing Resources
Memory Management Topics CS 537 Lecture Memory Michael Swift Goals of memory management convenient abstraction for programming isolation between processes allocate scarce memory resources between competing
More informationThe Google File System
The Google File System Sanjay Ghemawat, Howard Gobioff, and Shun-Tak Leung SOSP 2003 presented by Kun Suo Outline GFS Background, Concepts and Key words Example of GFS Operations Some optimizations in
More informationPerformance of Various Levels of Storage. Movement between levels of storage hierarchy can be explicit or implicit
Memory Management All data in memory before and after processing All instructions in memory in order to execute Memory management determines what is to be in memory Memory management activities Keeping
More informationExploiting the Behavior of Generational Garbage Collector
Exploiting the Behavior of Generational Garbage Collector I. Introduction Zhe Xu, Jia Zhao Garbage collection is a form of automatic memory management. The garbage collector, attempts to reclaim garbage,
More informationVirtual Memory 1. To do. q Segmentation q Paging q A hybrid system
Virtual Memory 1 To do q Segmentation q Paging q A hybrid system Address spaces and multiple processes IBM OS/360 Split memory in n parts (possible!= sizes) A process per partition Program Code Heap Operating
More informationLecture 13: Garbage Collection
Lecture 13: Garbage Collection COS 320 Compiling Techniques Princeton University Spring 2016 Lennart Beringer/Mikkel Kringelbach 1 Garbage Collection Every modern programming language allows programmers
More informationMemory Allocation. Static Allocation. Dynamic Allocation. Dynamic Storage Allocation. CS 414: Operating Systems Spring 2008
Dynamic Storage Allocation CS 44: Operating Systems Spring 2 Memory Allocation Static Allocation (fixed in size) Sometimes we create data structures that are fixed and don t need to grow or shrink. Dynamic
More informationDistributed caching for cloud computing
Distributed caching for cloud computing Maxime Lorrillere, Julien Sopena, Sébastien Monnet et Pierre Sens February 11, 2013 Maxime Lorrillere (LIP6/UPMC/CNRS) February 11, 2013 1 / 16 Introduction Context
More informationMain Memory and the CPU Cache
Main Memory and the CPU Cache CPU cache Unrolled linked lists B Trees Our model of main memory and the cost of CPU operations has been intentionally simplistic The major focus has been on determining
More informationDynamic Storage Allocation
6.172 Performance Engineering of Software Systems LECTURE 10 Dynamic Storage Allocation Charles E. Leiserson October 12, 2010 2010 Charles E. Leiserson 1 Stack Allocation Array and pointer A un Allocate
More informationOperating Systems and Computer Networks. Memory Management. Dr.-Ing. Pascal A. Klein
Operating Systems and Computer Networks Memory Management pascal.klein@uni-due.de Alexander Maxeiner, M.Sc. Faculty of Engineering Agenda 1 Swapping 2 Segmentation Algorithms 3 Memory Allocation 4 Virtual
More informationHigh-Level Language VMs
High-Level Language VMs Outline Motivation What is the need for HLL VMs? How are these different from System or Process VMs? Approach to HLL VMs Evolutionary history Pascal P-code Object oriented HLL VMs
More informationRun-Time Environments/Garbage Collection
Run-Time Environments/Garbage Collection Department of Computer Science, Faculty of ICT January 5, 2014 Introduction Compilers need to be aware of the run-time environment in which their compiled programs
More informationCS24: INTRODUCTION TO COMPUTING SYSTEMS. Spring 2015 Lecture 23
CS24: INTRODUCTION TO COMPUTING SYSTEMS Spring 205 Lecture 23 LAST TIME: VIRTUAL MEMORY! Began to focus on how to virtualize memory! Instead of directly addressing physical memory, introduce a level of
More informationMemory management. Knut Omang Ifi/Oracle 10 Oct, 2012
Memory management Knut Omang Ifi/Oracle 1 Oct, 212 (with slides from V. Goebel, C. Griwodz (Ifi/UiO), P. Halvorsen (Ifi/UiO), K. Li (Princeton), A. Tanenbaum (VU Amsterdam), and M. van Steen (VU Amsterdam))
More informationPractical, transparent operating system support for superpages
Practical, transparent operating system support for superpages Juan Navarro Sitaram Iyer Peter Druschel Alan Cox Rice University OSDI 2002 Overview Increasing cost in TLB miss overhead growing working
More informationOperating Systems Memory Management. Mathieu Delalandre University of Tours, Tours city, France
Operating Systems Memory Management Mathieu Delalandre University of Tours, Tours city, France mathieu.delalandre@univ-tours.fr 1 Operating Systems Memory Management 1. Introduction 2. Contiguous memory
More informationCS5460: Operating Systems Lecture 14: Memory Management (Chapter 8)
CS5460: Operating Systems Lecture 14: Memory Management (Chapter 8) Important from last time We re trying to build efficient virtual address spaces Why?? Virtual / physical translation is done by HW and
More informationMemory management: outline
Memory management: outline Concepts Swapping Paging o Multi-level paging o TLB & inverted page tables 1 Memory size/requirements are growing 1951: the UNIVAC computer: 1000 72-bit words! 1971: the Cray
More informationTowards Parallel, Scalable VM Services
Towards Parallel, Scalable VM Services Kathryn S McKinley The University of Texas at Austin Kathryn McKinley Towards Parallel, Scalable VM Services 1 20 th Century Simplistic Hardware View Faster Processors
More informationUlterior Reference Counting: Fast Garbage Collection without a Long Wait
Ulterior Reference Counting: Fast Garbage Collection without a Long Wait ABSTRACT Stephen M Blackburn Department of Computer Science Australian National University Canberra, ACT, 000, Australia Steve.Blackburn@anu.edu.au
More informationGarbage Collection (1)
Garbage Collection (1) Advanced Operating Systems Lecture 7 This work is licensed under the Creative Commons Attribution-NoDerivatives 4.0 International License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nd/4.0/
More informationPebblesDB: Building Key-Value Stores using Fragmented Log Structured Merge Trees
PebblesDB: Building Key-Value Stores using Fragmented Log Structured Merge Trees Pandian Raju 1, Rohan Kadekodi 1, Vijay Chidambaram 1,2, Ittai Abraham 2 1 The University of Texas at Austin 2 VMware Research
More informationShenandoah An ultra-low pause time Garbage Collector for OpenJDK. Christine H. Flood Roman Kennke
Shenandoah An ultra-low pause time Garbage Collector for OpenJDK Christine H. Flood Roman Kennke 1 What does ultra-low pause time mean? It means that the pause time is proportional to the size of the root
More informationFlavors of Memory supported by Linux, their use and benefit. Christoph Lameter, Ph.D,
Flavors of Memory supported by Linux, their use and benefit Christoph Lameter, Ph.D, Twitter: @qant Flavors Of Memory The term computer memory is a simple term but there are numerous nuances
More informationVirtual Memory Virtual memory first used to relive programmers from the burden of managing overlays.
CSE420 Virtual Memory Prof. Mokhtar Aboelaze York University Based on Slides by Prof. L. Bhuyan (UCR) Prof. M. Shaaban (RIT) Virtual Memory Virtual memory first used to relive programmers from the burden
More informationCS 333 Introduction to Operating Systems. Class 11 Virtual Memory (1) Jonathan Walpole Computer Science Portland State University
CS 333 Introduction to Operating Systems Class 11 Virtual Memory (1) Jonathan Walpole Computer Science Portland State University Virtual addresses Virtual memory addresses (what the process uses) Page
More informationReducing Hit Times. Critical Influence on cycle-time or CPI. small is always faster and can be put on chip
Reducing Hit Times Critical Influence on cycle-time or CPI Keep L1 small and simple small is always faster and can be put on chip interesting compromise is to keep the tags on chip and the block data off
More informationAttila Szegedi, Software
Attila Szegedi, Software Engineer @asz Everything I ever learned about JVM performance tuning @twitter Everything More than I ever wanted to learned about JVM performance tuning @twitter Memory tuning
More informationFile Systems: Fundamentals
1 Files Fundamental Ontology of File Systems File Systems: Fundamentals What is a file? Ø A named collection of related information recorded on secondary storage (e.g., disks) File attributes Ø Name, type,
More informationTHE TROUBLE WITH MEMORY
THE TROUBLE WITH MEMORY OUR MARKETING SLIDE Kirk Pepperdine Authors of jpdm, a performance diagnostic model Co-founded Building the smart generation of performance diagnostic tooling Bring predictability
More informationPrinceton University. Computer Science 217: Introduction to Programming Systems. The Memory/Storage Hierarchy and Virtual Memory
Princeton University Computer Science 27: Introduction to Programming Systems The Memory/Storage Hierarchy and Virtual Memory Goals of this Lecture Help you learn about: Locality and caching The memory
More informationChapter 9 Real Memory Organization and Management
Chapter 9 Real Memory Organization and Management Outline 9.1 Introduction 9.2 Memory Organization 9.3 Memory Management 9.4 Memory Hierarchy 9.5 Memory Management Strategies 9.6 Contiguous vs. Noncontiguous
More informationChapter 9 Real Memory Organization and Management
Chapter 9 Real Memory Organization and Management Outline 9.1 Introduction 9.2 Memory Organization 9.3 Memory Management 9.4 Memory Hierarchy 9.5 Memory Management Strategies 9.6 Contiguous vs. Noncontiguous
More informationCS399 New Beginnings. Jonathan Walpole
CS399 New Beginnings Jonathan Walpole Memory Management Memory Management Memory a linear array of bytes - Holds O.S. and programs (processes) - Each cell (byte) is named by a unique memory address Recall,
More informationCS3600 SYSTEMS AND NETWORKS
CS3600 SYSTEMS AND NETWORKS NORTHEASTERN UNIVERSITY Lecture 11: File System Implementation Prof. Alan Mislove (amislove@ccs.neu.edu) File-System Structure File structure Logical storage unit Collection
More informationGarbage Collection. Vyacheslav Egorov
Garbage Collection Vyacheslav Egorov 28.02.2012 class Heap { public: void* Allocate(size_t sz); }; class Heap { public: void* Allocate(size_t sz); void Deallocate(void* ptr); }; class Heap { public: void*
More informationHandout 4 Memory Hierarchy
Handout 4 Memory Hierarchy Outline Memory hierarchy Locality Cache design Virtual address spaces Page table layout TLB design options (MMU Sub-system) Conclusion 2012/11/7 2 Since 1980, CPU has outpaced
More informationHigh Performance Managed Languages. Martin Thompson
High Performance Managed Languages Martin Thompson - @mjpt777 Really, what is your preferred platform for building HFT applications? Why do you build low-latency applications on a GC ed platform? Agenda
More informationOperating Systems Design Exam 2 Review: Spring 2011
Operating Systems Design Exam 2 Review: Spring 2011 Paul Krzyzanowski pxk@cs.rutgers.edu 1 Question 1 CPU utilization tends to be lower when: a. There are more processes in memory. b. There are fewer processes
More informationCS162 - Operating Systems and Systems Programming. Address Translation => Paging"
CS162 - Operating Systems and Systems Programming Address Translation => Paging" David E. Culler! http://cs162.eecs.berkeley.edu/! Lecture #15! Oct 3, 2014!! Reading: A&D 8.1-2, 8.3.1. 9.7 HW 3 out (due
More informationBIBIM: A Prototype Multi-Partition Aware Heterogeneous New Memory
HotStorage 18 BIBIM: A Prototype Multi-Partition Aware Heterogeneous New Memory Gyuyoung Park 1, Miryeong Kwon 1, Pratyush Mahapatra 2, Michael Swift 2, and Myoungsoo Jung 1 Yonsei University Computer
More informationMotivation for Dynamic Memory. Dynamic Memory Allocation. Stack Organization. Stack Discussion. Questions answered in this lecture:
CS 537 Introduction to Operating Systems UNIVERSITY of WISCONSIN-MADISON Computer Sciences Department Dynamic Memory Allocation Questions answered in this lecture: When is a stack appropriate? When is
More informationVirtual Memory. Motivation:
Virtual Memory Motivation:! Each process would like to see its own, full, address space! Clearly impossible to provide full physical memory for all processes! Processes may define a large address space
More informationMemory management: outline
Memory management: outline Concepts Swapping Paging o Multi-level paging o TLB & inverted page tables 1 Memory size/requirements are growing 1951: the UNIVAC computer: 1000 72-bit words! 1971: the Cray
More informationCS 416: Opera-ng Systems Design March 23, 2012
Question 1 Operating Systems Design Exam 2 Review: Spring 2011 Paul Krzyzanowski pxk@cs.rutgers.edu CPU utilization tends to be lower when: a. There are more processes in memory. b. There are fewer processes
More information12: Memory Management
12: Memory Management Mark Handley Address Binding Program goes through multiple steps from compilation to execution. At some stage, addresses in the program must be bound to physical memory addresses:
More informationAssignment 1 due Mon (Feb 4pm
Announcements Assignment 1 due Mon (Feb 19) @ 4pm Next week: no classes Inf3 Computer Architecture - 2017-2018 1 The Memory Gap 1.2x-1.5x 1.07x H&P 5/e, Fig. 2.2 Memory subsystem design increasingly important!
More informationDynamic Memory Allocation
Dynamic Memory Allocation CS61, Lecture 10 Prof. Stephen Chong October 4, 2011 Announcements 1/2 Assignment 4: Malloc Will be released today May work in groups of one or two Please go to website and enter
More informationComputer Systems A Programmer s Perspective 1 (Beta Draft)
Computer Systems A Programmer s Perspective 1 (Beta Draft) Randal E. Bryant David R. O Hallaron August 1, 2001 1 Copyright c 2001, R. E. Bryant, D. R. O Hallaron. All rights reserved. 2 Contents Preface
More information6.172 Performance Engineering of Software Systems Spring Lecture 9. P after. Figure 1: A diagram of the stack (Image by MIT OpenCourseWare.
6.172 Performance Engineering of Software Systems Spring 2009 Lecture 9 MIT OpenCourseWare Dynamic Storage Allocation Stack allocation: LIFO (last-in-first-out) Array and pointer A used unused P before
More informationCascade Mapping: Optimizing Memory Efficiency for Flash-based Key-value Caching
Cascade Mapping: Optimizing Memory Efficiency for Flash-based Key-value Caching Kefei Wang and Feng Chen Louisiana State University SoCC '18 Carlsbad, CA Key-value Systems in Internet Services Key-value
More informationECE331: Hardware Organization and Design
ECE331: Hardware Organization and Design Lecture 29: an Introduction to Virtual Memory Adapted from Computer Organization and Design, Patterson & Hennessy, UCB Overview Virtual memory used to protect applications
More informationRecall: Address Space Map. 13: Memory Management. Let s be reasonable. Processes Address Space. Send it to disk. Freeing up System Memory
Recall: Address Space Map 13: Memory Management Biggest Virtual Address Stack (Space for local variables etc. For each nested procedure call) Sometimes Reserved for OS Stack Pointer Last Modified: 6/21/2004
More informationParser. Select R.text from Report R, Weather W where W.image.rain() and W.city = R.city and W.date = R.date and R.text.
Select R.text from Report R, Weather W where W.image.rain() and W.city = R.city and W.date = R.date and R.text. Lifecycle of an SQL Query CSE 190D base System Implementation Arun Kumar Query Query Result
More informationMemory Management. Disclaimer: some slides are adopted from book authors slides with permission 1
Memory Management Disclaimer: some slides are adopted from book authors slides with permission 1 CPU management Roadmap Process, thread, synchronization, scheduling Memory management Virtual memory Disk
More informationVirtual Memory. CS 351: Systems Programming Michael Saelee
Virtual Memory CS 351: Systems Programming Michael Saelee registers cache (SRAM) main memory (DRAM) local hard disk drive (HDD/SSD) remote storage (networked drive / cloud) previously: SRAM
More informationHabanero Extreme Scale Software Research Project
Habanero Extreme Scale Software Research Project Comp215: Garbage Collection Zoran Budimlić (Rice University) Adapted from Keith Cooper s 2014 lecture in COMP 215. Garbage Collection In Beverly Hills...
More informationA.Arpaci-Dusseau. Mapping from logical address space to physical address space. CS 537:Operating Systems lecture12.fm.2
UNIVERSITY of WISCONSIN-MADISON Computer Sciences Department CS 537 A. Arpaci-Dusseau Intro to Operating Systems Spring 2000 Dynamic Memory Allocation Questions answered in these notes When is a stack
More information