Android Memory Management

Size: px
Start display at page:

Download "Android Memory Management"

Transcription

1 Android Memory Management Rajesh prodduturi ( ) Under the Guidance of Prof. D.B.phatak Department of Computer Science and Engineering, Indian Institute Of Technology, Bombay August 10, 2012 (Rajesh prodduturi) Android Memory Management August 10, / 15

2 INTRODUCTION Outline This presentation gives an overview of the following: OOM in linux Low Memory Killer in Android ashmem pmem (Rajesh prodduturi) Android Memory Management August 10, / 15

3 Out Of Memory (OOM) in Linux If applicaitons running in a system have memory leaks. Then in worst case the virtual memory of all the process is > (physical memory + swap) To avoid the above situations we need OOM. In low memory situations, if page frame reclaiming algorithm fails to free free pages > some threshold, then it calls OOM. Order of system calls alloc pages() > try to free pages(), in low memory situations. if try to free pages() function fails to free pages then it calls out of memory (Rajesh prodduturi) Android Memory Management August 10, / 15

4 OOM source[ulk] (Rajesh prodduturi) Android Memory Management August 10, / 15

5 OOM in Linux How Does OOM Kills Process: Calculate score for each process using badness(), and remove the process which have highest scores. out of memory() > select bad process() > badness() some of the heuristics are given below: 1 high memory occupied process gets high score 2 long runing process gets low score 3 process which have large no of child process, to be killed. 4 do not kill super users process (Rajesh prodduturi) Android Memory Management August 10, / 15

6 Low Memory Killer in Android How it differ from OOM Low Memory Killer of the Android behaves a bit different against OOM killer. It clasifies process into different groups. In low memory situation it starts killing the process from low priority groups. List of different groups: Foreground(active), user interacting applicaitons. visible, process which are not in foreground but responding to user events. Started Service Processes, Background Processes Empty processes which were already closed. But the memory allocated to that process was still in memory. (Rajesh prodduturi) Android Memory Management August 10, / 15

7 Low Memory Killer in Android Order of killing process source[ (Rajesh prodduturi) Android Memory Management August 10, / 15

8 Low Memory Killer in Android How Does Low Memory Killer Works: It stores oom adj values for each group of processes. oom adj value ranges from -17 to 16. Foreground 0 visible 1 Background Processes 2 Empty processes 15 It also stores memory thresholds for each group of processes at which these process class will be killed. All these values are in in number of pages(4kb). Foreground 1536 visible 2048 Background Processes 4096 Empty processes 6144 Memory thersholds are varies based on RAM size. (Rajesh prodduturi) Android Memory Management August 10, / 15

9 ashmem - Android shared memory Implemented in mm/ashmem.c It better-supports low memory devices, because it can discard shared memory units under memory pressure. shmem(linux) vs ashmem(android) Ashmem classifies shared memory pages into two types. One is pinned pages. another one is unpinned pages. In low memory situations kernel can evict unpinned pages. Pinned pages sholud be removed only after unpinned pages. (Rajesh prodduturi) Android Memory Management August 10, / 15

10 ashmem - Android shared memory Creating a shred memory region: fd = ashmem c reate r egion( my s hm r egion,size); if(fd 0) return -1; data = mmap(null, size, PROT READ PROT WRITE, MAP S HARED,fd,0); if(data == MAP FAILED) goto out; If another processes wants to access shared memory, it does not access through file name. Because of security issues. Process share the fd of shared memory through IPC binder. (Rajesh prodduturi) Android Memory Management August 10, / 15

11 PMEM (process memory allocator) pmem is used to manage large (1-16+MB) physically contiguous regions of memory shared between userspace and kernel drivers (dsp, gpu,etc). Due to some hardware limitations in devices like MSM7201A, they need continous memory. ashmem and pmem are very similar. Both are used for sharing memory between processes. ashmem uses virtual memory, whereas pmem uses physically contiguous memory. (Rajesh prodduturi) Android Memory Management August 10, / 15

12 PMEM (process memory allocator) Difference Between ashmem and pmem: ashmem maintains ref-count for each shared region. ref-count represents that how many process are currently accessing shared memory. If ref-count is zero, then no process access that shared memory. Now low memory killer can remove this region. pmem does not work in above manner.because it needs to maintain a physical to virtual mapping. The process which creates shared memory through pmem should hold file descriptor untill all the refernces are closed. Application can Choose ashmem or pmem depending upon the size of physically shared contiguous memory. (Rajesh prodduturi) Android Memory Management August 10, / 15

13 No Swap space in Android Reason: Due to wear-levling limitation of flash memory. Solution: Compressed cache (Compcache) Compcache project implements swap space inside physical memory. It compress the pages and swaps into Compcache. Whenever the application needs it decompress the page and returns back. Limitation: Reduce in performance Cpu needs to spend some time for compression and decompression. (Rajesh prodduturi) Android Memory Management August 10, / 15

14 REFERENCES I Killer Kernel Features (Rajesh prodduturi) Android Memory Management August 10, / 15

15 Thank You (Rajesh prodduturi) Android Memory Management August 10, / 15

Lecture 3 Android Internals

Lecture 3 Android Internals Lecture 3 Android Internals This work is licensed under the Creative Commons Attribution 4.0 International License. To view a copy of this license, visit http://creativecommons.org/licenses/by/4.0/ or

More information

Efficient Memory Management on Mobile Devices

Efficient Memory Management on Mobile Devices Efficient Memory Management on Mobile Devices Bartlomiej Zolnierkiewicz b.zolnierkie@samsung.com September 17, 2013 Issues on mobile systems: limited resources no physical swap need for custom Out-Of-Memory

More information

Compressed Swap for Embedded Linux. Alexander Belyakov, Intel Corp.

Compressed Swap for Embedded Linux. Alexander Belyakov, Intel Corp. Compressed Swap for Embedded Linux Alexander Belyakov, Intel Corp. Outline. 1. Motivation 2. Underlying media types 3. Related works 4. MTD compression layer driver place in kernel architecture swap-in/out

More information

Desktop Linux Kernel project Krzysztof Lichota

Desktop Linux Kernel project Krzysztof Lichota Desktop Linux Kernel project Desktop Linux Kernel project Krzysztof Lichota What Desktop Linux Kernel Project is Project to improve desktop usage of Linux at the level of operating

More information

Android Internals. Lecture 3. Operating Systems Practical. 19 October 2016

Android Internals. Lecture 3. Operating Systems Practical. 19 October 2016 Android Internals Lecture 3 Operating Systems Practical 19 October 2016 This work is licensed under the Creative Commons Attribution 4.0 International License. To view a copy of this license, visit http://creativecommons.org/licenses/by/4.0/.

More information

Virtual Memory Management in Linux (Part II)

Virtual Memory Management in Linux (Part II) Virtual Memory Management in Linux (Part II) Minsoo Ryu Department of Computer Science and Engineering 2 1 Page Table and Page Fault Handling Page X 2 Page Cache Page X 3 Page Frame Reclamation (Swapping

More information

Operating Systems. IV. Memory Management

Operating Systems. IV. Memory Management Operating Systems IV. Memory Management Ludovic Apvrille ludovic.apvrille@telecom-paristech.fr Eurecom, office 470 http://soc.eurecom.fr/os/ @OS Eurecom Outline Basics of Memory Management Hardware Architecture

More information

CFLRU:A A Replacement Algorithm for Flash Memory

CFLRU:A A Replacement Algorithm for Flash Memory CFLRU:A A Replacement Algorithm for Flash Memory CASES'06, October 23 25, 2006, Seoul, Korea. Copyright 2006 ACM 1-59593-543-6/06/0010 Yen-Ting Liu Outline Introduction CFLRU Algorithm Simulation Implementation

More information

Contiguous memory allocation in Linux user-space

Contiguous memory allocation in Linux user-space Contiguous memory allocation in Linux user-space Guy Shattah, Christoph Lameter Linux Plumbers Conference 2017 Contents Agenda Existing User-Space Memory Allocation Methods Fragmented Memory vs Contiguous

More information

Tuning Android for low RAM

Tuning Android for low RAM Tuning Android for low RAM when 1 GiB is too much Tuning Android for low RAM 1 Copyright 2011-2014, 2net Limited License These slides are available under a Creative Commons Attribution-ShareAlike 3.0 license.

More information

Lecture 19: File System Implementation. Mythili Vutukuru IIT Bombay

Lecture 19: File System Implementation. Mythili Vutukuru IIT Bombay Lecture 19: File System Implementation Mythili Vutukuru IIT Bombay File System An organization of files and directories on disk OS has one or more file systems Two main aspects of file systems Data structures

More information

Kernel hacking su Android. Better Embedded Andrea Righi

Kernel hacking su Android. Better Embedded Andrea Righi Kernel hacking su Android Agenda Overview Android Programming Android Power Management Q/A Overview What is Android OS? Linux kernel Android patches Bionic libc Dalvik VM (Java Virtual Machine) Application

More information

Memory Management Virtual Memory

Memory Management Virtual Memory Memory Management Virtual Memory Part of A3 course (by Theo Schouten) Biniam Gebremichael http://www.cs.ru.nl/~biniam/ Office: A6004 April 4 2005 Content Virtual memory Definition Advantage and challenges

More information

Everything You Ever Wanted To Know About Resource Scheduling... Almost

Everything You Ever Wanted To Know About Resource Scheduling... Almost logo Everything You Ever Wanted To Know About Resource Scheduling... Almost Tim Hockin Senior Staff Software Engineer, Google @thockin Who is thockin? Founding member of Kubernetes

More information

PROCESS VIRTUAL MEMORY. CS124 Operating Systems Winter , Lecture 18

PROCESS VIRTUAL MEMORY. CS124 Operating Systems Winter , Lecture 18 PROCESS VIRTUAL MEMORY CS124 Operating Systems Winter 2015-2016, Lecture 18 2 Programs and Memory Programs perform many interactions with memory Accessing variables stored at specific memory locations

More information

Memory management. Last modified: Adaptation of Silberschatz, Galvin, Gagne slides for the textbook Applied Operating Systems Concepts

Memory management. Last modified: Adaptation of Silberschatz, Galvin, Gagne slides for the textbook Applied Operating Systems Concepts Memory management Last modified: 26.04.2016 1 Contents Background Logical and physical address spaces; address binding Overlaying, swapping Contiguous Memory Allocation Segmentation Paging Structure of

More information

Advanced Unix System Administration Spring 2008 Homework 1 Solutions

Advanced Unix System Administration Spring 2008 Homework 1 Solutions Advanced Unix System Administration Spring 2008 Homework 1 Solutions 1. Tracing a running process. This exercise must be done on the login server. Among the files for this week s assignment is wrapper,

More information

The Beast We Call A3. CS 161: Lecture 10 3/7/17

The Beast We Call A3. CS 161: Lecture 10 3/7/17 The Beast We Call A3 CS 161: Lecture 10 3/7/17 But first... Unconfusing Three Confusions Where does the kernel live? Does every kind of processor use a twolevel page table? Does everything have an address?

More information

Controlling Memory Footprint at All Layers: Linux Kernel, Applications, Libraries, and Toolchain

Controlling Memory Footprint at All Layers: Linux Kernel, Applications, Libraries, and Toolchain Controlling Memory Footprint at All Layers: Linux Kernel, Applications, Libraries, and Toolchain Xi Wang Broadcom Corporation Questions, Comments: xiwang@broadcom.com peknap@yahoo.com Introduction Search

More information

Introduction to Operating Systems Prof. Chester Rebeiro Department of Computer Science and Engineering Indian Institute of Technology, Madras

Introduction to Operating Systems Prof. Chester Rebeiro Department of Computer Science and Engineering Indian Institute of Technology, Madras Introduction to Operating Systems Prof. Chester Rebeiro Department of Computer Science and Engineering Indian Institute of Technology, Madras Week 02 Lecture 06 Virtual Memory Hello. In this video, we

More information

CIS Operating Systems Memory Management Address Translation for Paging. Professor Qiang Zeng Spring 2018

CIS Operating Systems Memory Management Address Translation for Paging. Professor Qiang Zeng Spring 2018 CIS 3207 - Operating Systems Memory Management Address Translation for Paging Professor Qiang Zeng Spring 2018 Previous class What is logical address? Who use it? Describes a location in the logical memory

More information

EXPLICIT SYNCHRONIZATION

EXPLICIT SYNCHRONIZATION EXPLICIT SYNCHRONIZATION Lauri Peltonen XDC, 8 October, 204 WHAT IS EXPLICIT SYNCHRONIZATION? Fence is an abstract primitive that marks completion of an operation Implicit synchronization Fences are attached

More information

Virtual Memory Outline

Virtual Memory Outline Virtual Memory Outline Background Demand Paging Copy-on-Write Page Replacement Allocation of Frames Thrashing Memory-Mapped Files Allocating Kernel Memory Other Considerations Operating-System Examples

More information

NVDIMM Overview. Technology, Linux, and Xen

NVDIMM Overview. Technology, Linux, and Xen NVDIMM Overview Technology, Linux, and Xen Who am I? What are NVDIMMs? A standard for allowing NVRAM to be exposed as normal memory Potential to dramatically change the way software is written But.. They

More information

CS 5523 Operating Systems: Memory Management (SGG-8)

CS 5523 Operating Systems: Memory Management (SGG-8) CS 5523 Operating Systems: Memory Management (SGG-8) Instructor: Dr Tongping Liu Thank Dr Dakai Zhu, Dr Palden Lama, and Dr Tim Richards (UMASS) for providing their slides Outline Simple memory management:

More information

Compressed Memory Swap for QoS of Virtualized Embedded Systems

Compressed Memory Swap for QoS of Virtualized Embedded Systems 834 IEEE Transactions on Consumer Electronics, Vol. 58, No. 3, August 2012 Compressed Memory Swap for QoS of Virtualized Embedded Systems Jeaho Hwang, Jinkyu Jeong, Hwanju Kim, Jeonghwan Choi and Joonwon

More information

Page Frame Reclaiming

Page Frame Reclaiming Page Frame Reclaiming Don Porter Binary Formats RCU Memory Management File System Logical Diagram Memory Allocators Threads System Calls Today s Lecture Networking (kernel level Sync mem. management) Device

More information

Android: Under the Hood. GDG-SG DevFest 5th Nov 2016 Jason Zaman

Android: Under the Hood. GDG-SG DevFest 5th Nov 2016 Jason Zaman Android: Under the Hood GDG-SG DevFest 5th Nov 2016 Jason Zaman Overview Who am I? Android Block Diagram Mobile Hardware Filesystem Layout Startup Linux Kernel Bionic libc Ashmem / Binder IPC Zygote Dalvik

More information

MTD Based Compressed Swapping for Embedded Linux.

MTD Based Compressed Swapping for Embedded Linux. MTD Based Compressed Swapping for Embedded Linux. Alexander Belyakov, alexander.belyakov@intel.com http://mtd-mods.wiki.sourceforge.net/mtd+based+compressed+swapping Introduction and Motivation Memory

More information

The cow and Zaphod... Virtual Memory #2 Feb. 21, 2007

The cow and Zaphod... Virtual Memory #2 Feb. 21, 2007 15-410...The cow and Zaphod... Virtual Memory #2 Feb. 21, 2007 Dave Eckhardt Bruce Maggs 1 L16_VM2 Wean Synchronization Watch for exam e-mail Please answer promptly Computer Club demo night Thursday (2/22)

More information

Letting Go. John Stultz August 30th

Letting Go. John Stultz August 30th Letting Go (A sensitive guide to dealing with application caches under the pressures of low memory) John Stultz August 30th 2012 http://www.linaro.org Overview Caching How mm/page management works Some

More information

Chapter 10: Case Studies. So what happens in a real operating system?

Chapter 10: Case Studies. So what happens in a real operating system? Chapter 10: Case Studies So what happens in a real operating system? Operating systems in the real world Studied mechanisms used by operating systems Processes & scheduling Memory management File systems

More information

Memory management: outline

Memory 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 information

Memory management: outline

Memory 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 information

GCMA Overview. LG Electronics CTO Software Platform Laboratory Minchan Kim

GCMA Overview. LG Electronics CTO Software Platform Laboratory Minchan Kim GCMA Overview LG Electronics CTO Software Platform Laboratory Minchan Kim Contents Background Problems GCMA Basic GCMA Pros and Cons Background Need for physical contiguous memory

More information

Chapter 9: Virtual Memory

Chapter 9: Virtual Memory Chapter 9: Virtual Memory Chapter 9: Virtual Memory 9.1 Background 9.2 Demand Paging 9.3 Copy-on-Write 9.4 Page Replacement 9.5 Allocation of Frames 9.6 Thrashing 9.7 Memory-Mapped Files 9.8 Allocating

More information

CSE 4/521 Introduction to Operating Systems. Lecture 12 Main Memory I (Background, Swapping) Summer 2018

CSE 4/521 Introduction to Operating Systems. Lecture 12 Main Memory I (Background, Swapping) Summer 2018 CSE 4/521 Introduction to Operating Systems Lecture 12 Main Memory I (Background, Swapping) Summer 2018 Overview Objective: 1. To provide a detailed description of various ways of organizing memory hardware.

More information

Chapter 9: Virtual-Memory Management. Operating System Concepts 8 th Edition,

Chapter 9: Virtual-Memory Management. Operating System Concepts 8 th Edition, Chapter 9: Virtual-Memory Management, Silberschatz, Galvin and Gagne 2009 Chapter 9: Virtual-Memory Management Background Demand Paging Copy-on-Write Page Replacement Allocation of Frames Thrashing Memory-Mapped

More information

Topics. File Buffer Cache for Performance. What to Cache? COS 318: Operating Systems. File Performance and Reliability

Topics. File Buffer Cache for Performance. What to Cache? COS 318: Operating Systems. File Performance and Reliability Topics COS 318: Operating Systems File Performance and Reliability File buffer cache Disk failure and recovery tools Consistent updates Transactions and logging 2 File Buffer Cache for Performance What

More information

UNIX Memory Management Interview Questions and Answers

UNIX Memory Management Interview Questions and Answers UNIX Memory Management Interview Questions and Answers 1. What is the difference between Swapping and Paging? Swapping: Whole process is moved from the swap device to the main memory for execution. Process

More information

CS 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 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 information

Virtual Memory Management

Virtual Memory Management Virtual Memory Management CS-3013 Operating Systems Hugh C. Lauer (Slides include materials from Slides include materials from Modern Operating Systems, 3 rd ed., by Andrew Tanenbaum and from Operating

More information

PostgreSQL Performance Tuning. Ibrar Ahmed Senior Software Percona LLC PostgreSQL Consultant

PostgreSQL Performance Tuning. Ibrar Ahmed Senior Software Percona LLC PostgreSQL Consultant PostgreSQL Performance Tuning Ibrar Ahmed Senior Software Engineer @ Percona LLC PostgreSQL Consultant 1 PostgreSQL Why? Who? One of the finest open source relational database which has some object-oriented

More information

Background. Contiguous Memory Allocation

Background. Contiguous Memory Allocation Operating System Lecture 8 2017.5.9 Chapter 8 (Main Memory) Background Swapping Contiguous Memory Allocation Segmentation - Paging Memory Management Selection of a memory-management method for a specific

More information

Managing memory in variable sized chunks

Managing memory in variable sized chunks Managing memory in variable sized chunks Christopher Yeoh Linux.conf.au 2006 Outline Current Linux/K42 memory management Fragmentation problems Proposed system K42 Architecture/Implementation

More information

Chapter 9: Virtual Memory

Chapter 9: Virtual Memory Chapter 9: Virtual Memory Background Demand Paging Chapter 9: Virtual Memory Copy-on-Write Page Replacement Allocation of Frames Thrashing Memory-Mapped Files Allocating Kernel Memory Other Considerations

More information

Unix Processes. What is a Process?

Unix Processes. What is a Process? Unix Processes Process -- program in execution shell spawns a process for each command and terminates it when the command completes Many processes all multiplexed to a single processor (or a small number

More information

Memory Management. Contents: Memory Management. How to generate code? Background

Memory Management. Contents: Memory Management. How to generate code? Background TDIU11 Operating systems Contents: Memory Management Memory Management [SGG7/8/9] Chapter 8 Background Relocation Dynamic loading and linking Swapping Contiguous Allocation Paging Segmentation Copyright

More information

Last class: Today: Deadlocks. Memory Management

Last class: Today: Deadlocks. Memory Management Last class: Deadlocks Today: Memory Management CPU il1 L2 Memory Bus (e.g. PC133) Main Memory dl1 On-chip I/O Bus (e.g. PCI) Disk Ctrller Net. Int. Ctrller Network Binding of Programs to Addresses Address

More information

ANDROID NATIVE APP: INTRODUCTION TO ANDROID. Roberto Beraldi

ANDROID NATIVE APP: INTRODUCTION TO ANDROID. Roberto Beraldi ANDROID NATIVE APP: INTRODUCTION TO ANDROID Roberto Beraldi Role of an operating system APPLICATIONS OPERATING SYSTEM CPU MEMORY DEVICES Android = OS + Middleware Based on Linux Not just another distribution.

More information

Memory Management. Outline. Memory. Virtual Memory. Instructor: Dr. Tongping Liu

Memory Management. Outline. Memory. Virtual Memory. Instructor: Dr. Tongping Liu Outline Memory Management Instructor: Dr Tongping Liu Virtual memory Page-based memory management Ø Page table and address translation Multi-level page table Translation lookaside buffer (TLB) Demand paging

More information

Chapter 8: Main Memory

Chapter 8: Main Memory Chapter 8: Main Memory Chapter 8: Memory Management Background Swapping Contiguous Memory Allocation Segmentation Paging Structure of the Page Table Example: The Intel 32 and 64-bit Architectures Example:

More information

Operating Systems CSE 410, Spring Virtual Memory. Stephen Wagner Michigan State University

Operating Systems CSE 410, Spring Virtual Memory. Stephen Wagner Michigan State University Operating Systems CSE 410, Spring 2004 Virtual Memory Stephen Wagner Michigan State University Virtual Memory Provide User an address space that is larger than main memory Secondary storage is used to

More information

Flash File Systems Overview

Flash File Systems Overview Table of contents 1.0 Overview 3 1.1 Flash architecture 3 1.1.1 Partitions 3 1.1.2 Blocks 3 1.2 Programming data 3 1.3 Data integrity 4 2.0 Flash file system functions 4 2.1 Wear leveling 4 2.2 Reclaim

More information

Logical disks. Bach 2.2.1

Logical disks. Bach 2.2.1 Logical disks Bach 2.2.1 Physical disk is divided into partitions or logical disks Logical disk linear sequence of fixed size, randomly accessible, blocks disk device driver maps underlying physical storage

More information

Chapters 9 & 10: Memory Management and Virtual Memory

Chapters 9 & 10: Memory Management and Virtual Memory Chapters 9 & 10: Memory Management and Virtual Memory Important concepts (for final, projects, papers) addressing: physical/absolute, logical/relative/virtual overlays swapping and paging memory protection

More information

Disk scheduling Disk reliability Tertiary storage Swap space management Linux swap space management

Disk scheduling Disk reliability Tertiary storage Swap space management Linux swap space management Lecture Overview Mass storage devices Disk scheduling Disk reliability Tertiary storage Swap space management Linux swap space management Operating Systems - June 28, 2001 Disk Structure Disk drives are

More information

ECE 7650 Scalable and Secure Internet Services and Architecture ---- A Systems Perspective. Part I: Operating system overview: Memory Management

ECE 7650 Scalable and Secure Internet Services and Architecture ---- A Systems Perspective. Part I: Operating system overview: Memory Management ECE 7650 Scalable and Secure Internet Services and Architecture ---- A Systems Perspective Part I: Operating system overview: Memory Management 1 Hardware background The role of primary memory Program

More information

Chapter 9: Virtual Memory. Chapter 9: Virtual Memory. Objectives. Background. Virtual-address address Space

Chapter 9: Virtual Memory. Chapter 9: Virtual Memory. Objectives. Background. Virtual-address address Space Chapter 9: Virtual Memory Chapter 9: Virtual Memory Background Demand Paging Copy-on-Write Page Replacement Allocation of Frames Thrashing Memory-Mapped Files Allocating Kernel Memory Other Considerations

More information

Chapter 8: Memory-Management Strategies

Chapter 8: Memory-Management Strategies Chapter 8: Memory-Management Strategies Chapter 8: Memory Management Strategies Background Swapping Contiguous Memory Allocation Segmentation Paging Structure of the Page Table Example: The Intel 32 and

More information

CS24: INTRODUCTION TO COMPUTING SYSTEMS. Spring 2015 Lecture 23

CS24: 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 information

Main Memory CHAPTER. Exercises. 7.9 Explain the difference between internal and external fragmentation. Answer:

Main Memory CHAPTER. Exercises. 7.9 Explain the difference between internal and external fragmentation. Answer: 7 CHAPTER Main Memory Exercises 7.9 Explain the difference between internal and external fragmentation. a. Internal fragmentation is the area in a region or a page that is not used by the job occupying

More information

Memory Management 3/29/14 21:38

Memory Management 3/29/14 21:38 Presentation for use with the textbook Data Structures and Algorithms in Java, 6 th edition, by M. T. Goodrich, R. Tamassia, and M. H. Goldwasser, Wiley, 2014 Memory Management Diagram of a 4 4 plane of

More information

Chapter 9: Virtual Memory

Chapter 9: Virtual Memory Chapter 9: Virtual Memory Chapter 9: Virtual Memory Background Demand Paging Copy-on-Write Page Replacement Allocation of Frames Thrashing Memory-Mapped Files Allocating Kernel Memory Other Considerations

More information

Introduction to Operating Systems Prof. Chester Rebeiro Department of Computer Science and Engineering Indian Institute of Technology, Madras

Introduction to Operating Systems Prof. Chester Rebeiro Department of Computer Science and Engineering Indian Institute of Technology, Madras Introduction to Operating Systems Prof. Chester Rebeiro Department of Computer Science and Engineering Indian Institute of Technology, Madras Week - 05 Lecture - 21 Scheduling in Linux (O(n) and O(1) Scheduler)

More information

Page Replacement Chap 21, 22. Dongkun Shin, SKKU

Page Replacement Chap 21, 22. Dongkun Shin, SKKU Page Replacement Chap 21, 22 1 Virtual Memory Concept Virtual memory Concept A technique that allows the execution of processes that are not completely in memory Partition each user s program into multiple

More information

Operating systems. Part 1. Module 11 Main memory introduction. Tami Sorgente 1

Operating systems. Part 1. Module 11 Main memory introduction. Tami Sorgente 1 Operating systems Module 11 Main memory introduction Part 1 Tami Sorgente 1 MODULE 11 MAIN MEMORY INTRODUCTION Background Swapping Contiguous Memory Allocation Noncontiguous Memory Allocation o Segmentation

More information

CS370 Operating Systems

CS370 Operating Systems CS370 Operating Systems Colorado State University Yashwant K Malaiya Fall 2017 Lecture 23 Virtual memory Slides based on Text by Silberschatz, Galvin, Gagne Various sources 1 1 FAQ Is a page replaces when

More information

Operating Systems Lecture 6: Memory Management II

Operating Systems Lecture 6: Memory Management II CSCI-GA.2250-001 Operating Systems Lecture 6: Memory Management II Hubertus Franke frankeh@cims.nyu.edu What is the problem? Not enough memory Have enough memory is not possible with current technology

More information

CS420: Operating Systems

CS420: Operating Systems Main Memory James Moscola Department of Engineering & Computer Science York College of Pennsylvania Based on Operating System Concepts, 9th Edition by Silberschatz, Galvin, Gagne Background Program must

More information

CHAPTER 8 - MEMORY MANAGEMENT STRATEGIES

CHAPTER 8 - MEMORY MANAGEMENT STRATEGIES CHAPTER 8 - MEMORY MANAGEMENT STRATEGIES OBJECTIVES Detailed description of various ways of organizing memory hardware Various memory-management techniques, including paging and segmentation To provide

More information

Using Transparent Compression to Improve SSD-based I/O Caches

Using 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 information

Operating System Concepts

Operating System Concepts Chapter 9: Virtual-Memory Management 9.1 Silberschatz, Galvin and Gagne 2005 Chapter 9: Virtual Memory Background Demand Paging Copy-on-Write Page Replacement Allocation of Frames Thrashing Memory-Mapped

More information

CIS Operating Systems Memory Management Address Translation. Professor Qiang Zeng Fall 2017

CIS Operating Systems Memory Management Address Translation. Professor Qiang Zeng Fall 2017 CIS 5512 - Operating Systems Memory Management Address Translation Professor Qiang Zeng Fall 2017 Outline Fixed partitions Dynamic partitions Con$guous alloca$on: Each process occupies a con$guous memory

More information

MEMORY MANAGEMENT/1 CS 409, FALL 2013

MEMORY MANAGEMENT/1 CS 409, FALL 2013 MEMORY MANAGEMENT Requirements: Relocation (to different memory areas) Protection (run time, usually implemented together with relocation) Sharing (and also protection) Logical organization Physical organization

More information

Chapter 8: Main Memory. Operating System Concepts 9 th Edition

Chapter 8: Main Memory. Operating System Concepts 9 th Edition Chapter 8: Main Memory Silberschatz, Galvin and Gagne 2013 Chapter 8: Memory Management Background Swapping Contiguous Memory Allocation Segmentation Paging Structure of the Page Table Example: The Intel

More information

Memory management has always involved tradeoffs between numerous optimization possibilities: Schemes to manage problem fall into roughly two camps

Memory management has always involved tradeoffs between numerous optimization possibilities: Schemes to manage problem fall into roughly two camps Garbage Collection Garbage collection makes memory management easier for programmers by automatically reclaiming unused memory. The garbage collector in the CLR makes tradeoffs to assure reasonable performance

More information

CHAPTER 8: MEMORY MANAGEMENT. By I-Chen Lin Textbook: Operating System Concepts 9th Ed.

CHAPTER 8: MEMORY MANAGEMENT. By I-Chen Lin Textbook: Operating System Concepts 9th Ed. CHAPTER 8: MEMORY MANAGEMENT By I-Chen Lin Textbook: Operating System Concepts 9th Ed. Chapter 8: Memory Management Background Swapping Contiguous Memory Allocation Segmentation Paging Structure of the

More information

File system internals Tanenbaum, Chapter 4. COMP3231 Operating Systems

File 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 information

Flavors 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, 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 information

First-In-First-Out (FIFO) Algorithm

First-In-First-Out (FIFO) Algorithm First-In-First-Out (FIFO) Algorithm Reference string: 7,0,1,2,0,3,0,4,2,3,0,3,0,3,2,1,2,0,1,7,0,1 3 frames (3 pages can be in memory at a time per process) 15 page faults Can vary by reference string:

More information

Swapping and embedded:

Swapping and embedded: Swapping and embedded: compression relieves the pressure? Vitaly Wool Embedded Linux Conference 2016 Intro> Swapping (Paging) Paging: [OS capability of] using a secondary storage to store and retrieve

More information

CIS Operating Systems Memory Management Cache and Demand Paging. Professor Qiang Zeng Spring 2018

CIS Operating Systems Memory Management Cache and Demand Paging. Professor Qiang Zeng Spring 2018 CIS 3207 - Operating Systems Memory Management Cache and Demand Paging Professor Qiang Zeng Spring 2018 Process switch Upon process switch what is updated in order to assist address translation? Contiguous

More information

Princeton University. Computer Science 217: Introduction to Programming Systems. The Memory/Storage Hierarchy and Virtual Memory

Princeton 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 information

UnCovert: Evaluating thermal covert channels on Android systems. Pascal Wild

UnCovert: Evaluating thermal covert channels on Android systems. Pascal Wild UnCovert: Evaluating thermal covert channels on Android systems Pascal Wild August 5, 2016 Contents Introduction v 1: Framework 1 1.1 Source...................................... 1 1.2 Sink.......................................

More information

Chapter 8: Main Memory

Chapter 8: Main Memory Chapter 8: Main Memory Silberschatz, Galvin and Gagne 2013 Chapter 8: Memory Management Background Swapping Contiguous Memory Allocation Segmentation Paging Structure of the Page Table Example: The Intel

More information

Android Internals. Lecture 1. Android and Low-level Optimizations Summer School. 13 July 2015

Android Internals. Lecture 1. Android and Low-level Optimizations Summer School. 13 July 2015 Android Internals Lecture 1 Android and Low-level Optimizations Summer School 13 July 2015 This work is licensed under the Creative Commons Attribution 4.0 International License. To view a copy of this

More information

Effective use of cgroups with HTCondor

Effective use of cgroups with HTCondor Effective use of cgroups with HTCondor Tom Downes Center for Gravitation, Cosmology and Astrophysics University of Wisconsin-Milwaukee LIGO Scientific Collaboration HTCondor Week 2017 What are Control

More information

CS24: INTRODUCTION TO COMPUTING SYSTEMS. Spring 2015 Lecture 25

CS24: INTRODUCTION TO COMPUTING SYSTEMS. Spring 2015 Lecture 25 CS24: INTRODUCTION TO COMPUTING SYSTEMS Spring 2015 Lecture 25 LAST TIME: PROCESS MEMORY LAYOUT! Explored how Linux uses IA32! All processes have a similar layout Each process has its own page table structure

More information

Windows 10: Memory Compression (from insider hub, 20 August 2015)

Windows 10: Memory Compression (from insider hub, 20 August 2015) Windows 10: Memory Compression (from insider hub, 20 August 2015) With the announcement of the Memory compression feature, we have received a lot of queries from the insiders asking for more information.

More information

CS 3733 Operating Systems:

CS 3733 Operating Systems: CS 3733 Operating Systems: Topics: Virtual Memory (SGG, Chapter 09) Instructor: Dr. Dakai Zhu Department of Computer Science @ UTSA 1 Reminders Assignment 3: due March 30, 2018 (mid-night)! Part I: fixed

More information

CIS Operating Systems Memory Management Cache. Professor Qiang Zeng Fall 2017

CIS Operating Systems Memory Management Cache. Professor Qiang Zeng Fall 2017 CIS 5512 - Operating Systems Memory Management Cache Professor Qiang Zeng Fall 2017 Previous class What is logical address? Who use it? Describes a location in the logical memory address space Compiler

More information

RAM, Design Space, Examples. January Winter Term 2008/09 Gerd Liefländer Universität Karlsruhe (TH), System Architecture Group

RAM, Design Space, Examples. January Winter Term 2008/09 Gerd Liefländer Universität Karlsruhe (TH), System Architecture Group System Architecture 16 Memory Management RAM, Design Space, Examples January 12 2009 Winter Term 2008/09 Gerd Liefländer 2009 Universität Karlsruhe (TH), System Architecture Group 1 Recommended Reading

More information

Paging. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University

Paging. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University Paging Jin-Soo Kim (jinsookim@skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu Paging Allows the physical address space of a process to be noncontiguous Divide virtual

More information

Main Memory (Part I)

Main Memory (Part I) Main Memory (Part I) Amir H. Payberah amir@sics.se Amirkabir University of Technology (Tehran Polytechnic) Amir H. Payberah (Tehran Polytechnic) Main Memory 1393/8/5 1 / 47 Motivation and Background Amir

More information

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING UNIT I

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING UNIT I DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING Year and Semester : II / IV Subject Code : CS6401 Subject Name : Operating System Degree and Branch : B.E CSE UNIT I 1. Define system process 2. What is an

More information

Preview. Memory Management

Preview. Memory Management Preview Memory Management With Mono-Process With Multi-Processes Multi-process with Fixed Partitions Modeling Multiprogramming Swapping Memory Management with Bitmaps Memory Management with Free-List Virtual

More information

Chapter 8 Main Memory

Chapter 8 Main Memory COP 4610: Introduction to Operating Systems (Spring 2014) Chapter 8 Main Memory Zhi Wang Florida State University Contents Background Swapping Contiguous memory allocation Paging Segmentation OS examples

More information

CS370 Operating Systems

CS370 Operating Systems CS370 Operating Systems Colorado State University Yashwant K Malaiya Fall 2017 Lecture 24 File Systems Slides based on Text by Silberschatz, Galvin, Gagne Various sources 1 1 Questions from last time How

More information

File. File System Implementation. File Metadata. File System Implementation. Direct Memory Access Cont. Hardware background: Direct Memory Access

File. File System Implementation. File Metadata. File System Implementation. Direct Memory Access Cont. Hardware background: Direct Memory Access File File System Implementation Operating Systems Hebrew University Spring 2009 Sequence of bytes, with no structure as far as the operating system is concerned. The only operations are to read and write

More information