Assignment 3 tips. OS/161 Kernel. Theoretical Typical Address Space Layout. Real R3000 Address Space Layout. Kernel Address Space Layout

Size: px
Start display at page:

Download "Assignment 3 tips. OS/161 Kernel. Theoretical Typical Address Space Layout. Real R3000 Address Space Layout. Kernel Address Space Layout"

Transcription

1 ssignment tips Kernel Stack Virtual ddress Shared Libraries SS (heap) Data Text (Code) 8 0 Theoretical Typical ddress Layout Stack region is at top, and can grow down Heap has free space to grow up Text is typically read-only Kernel is in a reserved, protected, shared region Real R000 ddress Layout : gigabytes TL translated (mapping loaded from page table) Cacheable (depending on N bit) user-mode and kernel mode accessible Page size is K 0xFFFFFFFF kseg Page table per-user address space Switching processes switches the translation (page table) for 0xFFFFFFFF kseg Proc Proc Proc Kernel ddress Layout kseg : megabytes Fixed translation window to physical memory - 0xfffffff virtual = - 0xfffffff physical TL not used Cacheable Only kernel-mode accessible Usually where the kernel is placed Placed in Kseg0 lower part of physical memory meg of physical RM busctl ramsize=, in sys.conf #define PDDR_TO_KVDDR(paddr) ((paddr)+mips_kseg0) void ram_getsize (paddr_t *lo, paddr_t *hi); Physical Memory

2 Implementing alloc_kpage()/free_kpage() The low-level functions that kmalloc()/kfree() use to allocate/free memory in its memory pool. You can assume page at a time ut should return NULL (no memory) if you get a call for more than a page. Consider using an assert() for debugging in case you get such a request ddresses must be in the address range of DUMVM firstpaddr RM/physical memory Memory access 8 Frame Table RM/physical memory How to place my frame table? Memory access struct frame_table_entry *frame_table; location = top_of_ram - (top_of_ram / K * ); /* assume byte entries */ frame_table = (struct frame_table_entry *) location; How can my my allocator work before and after it is intialised? struct frame_table_entry *frame_table = 0; alloc_kpages() { if (ft == 0) { /* use ram_stealmem */ } else { /* use my allocator as frame table is now initialised */ } } Stack Other s? Virtual ddress Data Text (Code) 8 0 KUseg layout Stack region is at top, and can grow down Other regions determined by ELF file see load_elf() number can vary permissions specified also cs-objdump -p testbin/huge

3 thresher% cs-objdump -h../bin/true thresher% cs-objdump -p../bin/true../bin/true: file format elf-tradbigmips../bin/true: file format elf-tradbigmips Sections: Idx Name Size VM LM File off lgn 0.reginfo ** CONTENTS, LLOC, LOD, REDONLY, DT, LINK_ONCE_SME_SIZE.text 00000d b b b0 ** CONTENTS, LLOC, LOD, REDONLY, CODE ** CONTENTS, LLOC, LOD, DT.sbss ** LLOC.bss ** LLOC.comment **0 CONTENTS, REDONLY.pdr 00000a ** CONTENTS, REDONLY.mdebug.abi e0 **0 CONTENTS, REDONLY thresher% Program Header: 0x off 0x vaddr 0x00000 paddr 0x00000 align ** filesz 0x memsz 0x flags r-- LOD off vaddr 0x paddr 0x align ** filesz 0x memsz 0x flags r-x LOD off 0x vaddr 0x paddr 0x align ** filesz memsz 0x flags rwprivate flags = 0: [abi=o] [mips] [not bitmode] thresher% Process Layout Process layout in KUseg regions specified by calls to as_define_() as_define_region() usually implemented as a linked list of region specifications as_prepare_load() make REDONLY regions REDWRITE for loading purposes as_complete_load() enforce REDONLY again 0x other? Process Layout Need to keep translation table for KUSEG Page Table 0x other? 0x x as_create() allocate a structure used to keep track of an address space i.e. regions PT Level proc_getas() used to get access to current address space struct as_destroy() deallocate book keeping and page tables. deallocating frames used as_copy() allocates a new (destination) address space adds all the same regions as source roughly, for each mapped page in source allocate a frame in dest copy contents from source frame to dest frame add PT entry for dest as_activate() flush TL (or set the hardware asid) as_deactivate() flush TL (or flush an asid) 8

4 VM Fault pproximate Flow Chart vm_fault Load TL VM_FULT REDONLY lookup PT Valid Translation Look up region llocate Frame, Zero-fill, Insert PTE Valid EFULT Newly allocated user-level pages are expected to be zero-filled Load TL EFULT kprintf() Do not use it in vm_fault() after the TL write!!!! 0 trace can help with debugging The following additional options control trace's tracing and are ignored by sys: -f tracefile Set the file trace information is logged to. y default, stderr is used. Specifying -f- sends output to stdout instead of stderr. -t traceflags Tell System/ what to trace. The following flags are available: d Trace disk I/O e Trace emufs I/O j Trace jumps and branches k Trace instructions in kernel mode n Trace network I/O t Trace TL/MMU activity u Trace instructions in user mode x Trace exceptions Caution: tracing instructions generates huge amounts of output that may overwhelm smaller host systems. wagner% trace -tt kernel sys: System/ release., compiled Jun 00 ::0 sys: Tracing enabled: tlb trace: tlbp: 800/000 -> : [0] trace: tlbp: 80/000 -> : [] trace: tlbp: 80/000 -> : [] trace: tlbp: 80/000 -> : [] trace: tlbp: 80/000 -> : [] trace: tlbp: 80/000 -> : [] trace: tlbp: 80/000 -> : [] trace: tlbp: 80/000 -> : [] trace: tlbp: 808/000 -> : [8] trace: tlbp: 80/000 -> : [] trace: tlbp: 80a/000 -> : [] trace: tlbp: 80b/000 -> : [] trace: tlbp: 80c/000 -> : [] trace: tlbp: 80d/000 -> : [] trace: tlbp: 80e/000 -> : [] trace: tlbp: 80f/000 -> : [] trace: tlbp: 8/000 -> : [] trace: tlbp: 8/000 -> : [] trace: tlbp: 8/000 -> : [8] trace: tlbp: 8/000 -> : [] trace: tlbp: 8/000 -> : [0] trace: tlbp: 8/000 -> : [].. trace: tlbp: 8c/000 -> : [0] trace: tlbp: 8d/000 -> : [] trace: tlbp: 8e/000 -> : [] trace: tlbp: 8f/000 -> : [] trace: tlbp: 80/000 -> NOT FOUND trace: tlbwi: [ 0] 800/000 -> ==> 80/000 -> trace: tlbp: 8/000 -> NOT FOUND trace: tlbwi: [ ] 80/000 -> ==> 8/000 -> trace: tlbp: 8/000 -> NOT FOUND trace: tlbwi: [ ] 80/000 -> ==> 8/000 -> trace: tlbp: 8/000 -> NOT FOUND trace: tlbwi: [ ] 80/000 -> ==> 8/000 -> trace: tlbp: 8/000 -> NOT FOUND trace: tlbwi: [ ] 80/000 -> ==> 8/000 -> trace: tlbp: 8/000 -> NOT FOUND trace: tlbwi: [ ] 80/000 -> ==> 8/000 -> trace: tlbp: 8/000 -> NOT FOUND trace: tlbwi: [ ] 80/000 -> ==> 8/000 -> trace: tlbp: 8/000 -> NOT FOUND trace: tlbwi: [ ] 80/000 -> ==> 8/000 -> trace: tlbp: 88/000 -> NOT FOUND trace: tlbp: 8/000 -> : [].. trace: tlbp: 8c/000 -> NOT FOUND trace: tlbwi: [0] 8c/000 -> ==> 8c/000 -> trace: tlbp: 8d/000 -> NOT FOUND trace: tlbwi: [] 8d/000 -> ==> 8d/000 -> trace: tlbp: 8e/000 -> NOT FOUND trace: tlbwi: [] 8e/000 -> ==> 8e/000 -> trace: tlbp: 8f/000 -> NOT FOUND trace: tlbwi: [] 8f/000 -> ==> 8f/000 -> OS/ base system version. Copyright (c) 000, 00, 00, 00 President and Fellows of Harvard College. ll rights reserved. Put-your-group-name-here's system version 0 (SST #) Cpu is MIPS r000/r000 k physical memory available Device probe... lamebus0 (system main bus) emu0 at lamebus0

5 dvance ssignment Proc ddress Proc ddress Shared pages and copy-on-write Sbrk() Demand loading and mmap Paging Two (or more) processes running the same program and sharing a section Page Table Physical ddress Page Table sbrk The "break" is the end address of a process's heap region. The sbrk call adjusts the "break" by the amount. It returns the old "break". Thus, to determine the current "break", call sbrk(0). The heap region is initially empty, so at process startup, the beginning of the heap region is the same as the end and may thus be retrieved using sbrk(0). 0x x heap Memorymapped files and paging Memory mapped file K Y X N M L F E D C K L E C X Y F L M N Disk Physical ddress D 8 mmap semantics void *mmap(size_t length, int prot, int fd, off_t offset); int munmap(void *addr);

Typical Address Space Layout

Typical Address Space Layout Assignment 3 tips 1 Kernel Stack Virtual Address Space Shared Libraries BSS (heap) Data Text (Code) 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Typical Address Space Layout Stack region is at top, and can grow

More information

Learning Outcomes. An understanding of page-based virtual memory in depth. Including the R3000 s support for virtual memory.

Learning Outcomes. An understanding of page-based virtual memory in depth. Including the R3000 s support for virtual memory. Virtual Memory 1 Learning Outcomes An understanding of page-based virtual memory in depth. Including the R3000 s support for virtual memory. 2 Memory Management Unit (or TLB) The position and function

More information

Learning Outcomes. An understanding of page-based virtual memory in depth. Including the R3000 s support for virtual memory.

Learning Outcomes. An understanding of page-based virtual memory in depth. Including the R3000 s support for virtual memory. Virtual Memory Learning Outcomes An understanding of page-based virtual memory in depth. Including the R000 s support for virtual memory. Memory Management Unit (or TLB) The position and function of the

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

System Architecture 2008/09 Programming Assignment 3. 2 Overview on System/161 Memory Management Hardware

System Architecture 2008/09 Programming Assignment 3. 2 Overview on System/161 Memory Management Hardware University of Karlsruhe System Architecture Group Gerd Liefländer Teaching Assistant: Philipp Kupferschmied System Architecture 2008/09 Programming Assignment 3 Submission Deadlines: 23.01.2009, 12:00h

More information

This training session will cover the Translation Look aside Buffer or TLB

This training session will cover the Translation Look aside Buffer or TLB This training session will cover the Translation Look aside Buffer or TLB I will cover: What It is How to initialize it And How TLB exceptions are handled 1 First let me explain what we are dealing with:

More information

Virtual Memory 1. Virtual Memory

Virtual Memory 1. Virtual Memory Virtual Memory 1 Virtual Memory key concepts virtual memory, physical memory, address translation, MMU, TLB, relocation, paging, segmentation, executable file, swapping, page fault, locality, page replacement

More information

Virtual Memory 1. Virtual Memory

Virtual Memory 1. Virtual Memory Virtual Memory 1 Virtual Memory key concepts virtual memory, physical memory, address translation, MMU, TLB, relocation, paging, segmentation, executable file, swapping, page fault, locality, page replacement

More information

CS Week 8 Lab Assignment 3. Teaching Assistant Henrique Potter

CS Week 8 Lab Assignment 3. Teaching Assistant Henrique Potter CS 1550 Week 8 Lab Assignment 3 Teaching Assistant Henrique Potter CS 1550 Project 2 is out Due: Monday, October 22, 2018 @11:59pm Late: Wednesday, October 24, 2018 @11:59pm 10% reduction per late day

More information

Process Address Spaces and Binary Formats

Process Address Spaces and Binary Formats Process Address Spaces and Binary Formats Don Porter CSE 506 Binary Formats RCU Memory Management Logical Diagram File System Memory Threads Allocators Today s Lecture System Calls Device Drivers Networking

More information

The UtePC/Yalnix Memory System

The UtePC/Yalnix Memory System The UtePC/Yalnix Memory System This document describes the UtePC memory management hardware subsystem and the operations that your Yalnix kernel must perform to control it. Please refer to Handout 3 for

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

Applications of. Virtual Memory in. OS Design

Applications of. Virtual Memory in. OS Design Applications of Virtual Memory in OS Design Nima Honarmand Introduction Virtual memory is a powerful level of indirection Indirection: IMO, the most powerful concept in Computer Science Fundamental Theorem

More information

Memory Mapping. Sarah Diesburg COP5641

Memory Mapping. Sarah Diesburg COP5641 Memory Mapping Sarah Diesburg COP5641 Memory Mapping Translation of address issued by some device (e.g., CPU or I/O device) to address sent out on memory bus (physical address) Mapping is performed by

More information

Virtual Memory. User memory model so far:! In reality they share the same memory space! Separate Instruction and Data memory!!

Virtual Memory. User memory model so far:! In reality they share the same memory space! Separate Instruction and Data memory!! Virtual Memory User memory model so far:! Separate Instruction and Data memory!! In reality they share the same memory space!!! 0x00000000 User space Instruction memory 0x7fffffff Data memory MicroComuter

More information

Virtual Memory. Alan L. Cox Some slides adapted from CMU slides

Virtual Memory. Alan L. Cox Some slides adapted from CMU slides Alan L. Cox alc@rice.edu Some slides adapted from CMU 5.23 slides Objectives Be able to explain the rationale for VM Be able to explain how VM is implemented Be able to translate virtual addresses to physical

More information

Virtual Memory: Systems

Virtual Memory: Systems Virtual Memory: Systems 5-23: Introduction to Computer Systems 8 th Lecture, March 28, 27 Instructor: Franz Franchetti & Seth Copen Goldstein Recap: Hmmm, How Does This Work?! Process Process 2 Process

More information

Pentium/Linux Memory System March 17, 2005

Pentium/Linux Memory System March 17, 2005 15-213 The course that gives CMU its Zip! Topics Pentium/Linux Memory System March 17, 2005 P6 address translation x86-64 extensions Linux memory management Linux page fault handling Memory mapping 17-linuxmem.ppt

More information

1. Overview This project will help you understand address spaces and virtual memory management.

1. Overview This project will help you understand address spaces and virtual memory management. Project 2--Memory Worth: 12 points Assigned: Due: 1. Overview This project will help you understand address spaces and virtual memory management. In this project, you will implement an external pager,

More information

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

Virtual Memory. Virtual Memory

Virtual Memory. Virtual Memory Virtual Memory Virtual Memory Main memory is cache for secondary storage Secondary storage (disk) holds the complete virtual address space Only a portion of the virtual address space lives in the physical

More information

CS24: INTRODUCTION TO COMPUTING SYSTEMS. Spring 2018 Lecture 23

CS24: INTRODUCTION TO COMPUTING SYSTEMS. Spring 2018 Lecture 23 CS24: INTRODUCTION TO COMPUTING SYSTEMS Spring 208 Lecture 23 LAST TIME: VIRTUAL MEMORY Began to focus on how to virtualize memory Instead of directly addressing physical memory, introduce a level of indirection

More information

Virtual and Physical Addresses

Virtual and Physical Addresses Virtual Memory 1 Virtual and Physical Addresses Physical addresses are provided directly by the machine. one physical address space per machine the size of a physical address determines the maximum amount

More information

Memory management. Johan Montelius KTH

Memory management. Johan Montelius KTH Memory management Johan Montelius KTH 2017 1 / 22 C program # include int global = 42; int main ( int argc, char * argv []) { if( argc < 2) return -1; int n = atoi ( argv [1]); int on_stack

More information

Memory System Case Studies Oct. 13, 2008

Memory System Case Studies Oct. 13, 2008 Topics 15-213 Memory System Case Studies Oct. 13, 2008 P6 address translation x86-64 extensions Linux memory management Linux page fault handling Memory mapping Class15+.ppt Intel P6 (Bob Colwell s Chip,

More information

Virtual and Physical Addresses

Virtual and Physical Addresses Virtual Memory 1 Virtual and Physical Addresses Physical addresses are provided directly by the machine. one physical address space per machine the size of a physical address determines the maximum amount

More information

Process Address Spaces and Binary Formats

Process Address Spaces and Binary Formats Process Address Spaces and Binary Formats Don Porter Background We ve talked some about processes This lecture: discuss overall virtual memory organizafon Key abstracfon: Address space We will learn about

More information

Virtual Memory. CS 3410 Computer System Organization & Programming

Virtual Memory. CS 3410 Computer System Organization & Programming Virtual Memory CS 3410 Computer System Organization & Programming These slides are the product of many rounds of teaching CS 3410 by Professors Weatherspoon, Bala, Bracy, and Sirer. Where are we now and

More information

Processes, Address Spaces, and Memory Management. CS449 Spring 2016

Processes, Address Spaces, and Memory Management. CS449 Spring 2016 Processes, Address Spaces, and Memory Management CS449 Spring 2016 Process A running program and its associated data Process s Address Space 0x7fffffff Stack Data (Heap) Data (Heap) Globals Text (Code)

More information

Outline. 1 Details of paging. 2 The user-level perspective. 3 Case study: 4.4 BSD 1 / 19

Outline. 1 Details of paging. 2 The user-level perspective. 3 Case study: 4.4 BSD 1 / 19 Outline 1 Details of paging 2 The user-level perspective 3 Case study: 4.4 BSD 1 / 19 Some complications of paging What happens to available memory? - Some physical memory tied up by kernel VM structures

More information

Fast access ===> use map to find object. HW == SW ===> map is in HW or SW or combo. Extend range ===> longer, hierarchical names

Fast access ===> use map to find object. HW == SW ===> map is in HW or SW or combo. Extend range ===> longer, hierarchical names Fast access ===> use map to find object HW == SW ===> map is in HW or SW or combo Extend range ===> longer, hierarchical names How is map embodied: --- L1? --- Memory? The Environment ---- Long Latency

More information

Virtual memory - Paging

Virtual memory - Paging Virtual memory - Paging Johan Montelius KTH 2017 1 / 32 The process code (.text) data heap stack kernel 0x00000000 0xC0000000 0xffffffff Memory layout for a 32-bit Linux process 2 / 32 Segments - a could

More information

The process. one problem

The process. one problem The process Virtual memory - Paging Johan Montelius code (.text) data heap stack kernel KTH 0x00000000 0xC0000000 0xffffffff 2017 Memory layout for a 32-bit Linux process Segments - a could be solution

More information

143A: Principles of Operating Systems. Lecture 7: System boot. Anton Burtsev January, 2017

143A: Principles of Operating Systems. Lecture 7: System boot. Anton Burtsev January, 2017 143A: Principles of Operating Systems Lecture 7: System boot Anton Burtsev January, 2017 Bootloader starts Bootloader starts 9111 start: 9112 cli # BIOS enabled interrupts; disable 9113 9114 # Zero data

More information

CS 134: Operating Systems

CS 134: Operating Systems CS 134: Operating Systems More Memory Management CS 134: Operating Systems More Memory Management 1 / 27 2 / 27 Overview Overview Overview Segmentation Recap Segmentation Recap Segmentation Recap Segmentation

More information

ECE 498 Linux Assembly Language Lecture 1

ECE 498 Linux Assembly Language Lecture 1 ECE 498 Linux Assembly Language Lecture 1 Vince Weaver http://www.eece.maine.edu/ vweaver vincent.weaver@maine.edu 13 November 2012 Assembly Language: What s it good for? Understanding at a low-level what

More information

TLB Recap. Fast associative cache of page table entries

TLB Recap. Fast associative cache of page table entries Virtual Memory II 1 TLB Recap Fast associative cache of page table entries Contains a subset of the page table What happens if required entry for translation is not present (a TLB miss)? 2 TLB Recap TLB

More information

238P: Operating Systems. Lecture 7: System boot. Anton Burtsev January, 2017

238P: Operating Systems. Lecture 7: System boot. Anton Burtsev January, 2017 238P: Operating Systems Lecture 7: System boot Anton Burtsev January, 2017 Outline for today Boot operating system Setup segments (data and code) Switch to protected mode Load GDT (turn segmentation on)

More information

CS162 - Operating Systems and Systems Programming. Address Translation => Paging"

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

143A: Principles of Operating Systems. Lecture 7: System boot. Anton Burtsev October, 2017

143A: Principles of Operating Systems. Lecture 7: System boot. Anton Burtsev October, 2017 143A: Principles of Operating Systems Lecture 7: System boot Anton Burtsev October, 2017 Outline for today Boot operating system Setup segments (data and code) Switch to protected mode Load GDT (turn segmentation

More information

CSC C69: OPERATING SYSTEMS. Tutorial Thursday, March 28, 2013 Ioan Stefanovici

CSC C69: OPERATING SYSTEMS. Tutorial Thursday, March 28, 2013 Ioan Stefanovici CSC C69: OPERATING SYSTEMS Tutorial Thursday, March 28, 2013 Ioan Stefanovici (ioan@cs.toronto.edu) PAGING AND SWAPPING In lecture: address translation in a static partitioning scheme known as paging Main

More information

CS24: INTRODUCTION TO COMPUTING SYSTEMS. Spring 2018 Lecture 24

CS24: INTRODUCTION TO COMPUTING SYSTEMS. Spring 2018 Lecture 24 CS24: INTRODUCTION TO COMPUTING SYSTEMS Spring 2018 Lecture 24 LAST TIME Extended virtual memory concept to be a cache of memory stored on disk DRAM becomes L4 cache of data stored on L5 disk Extend page

More information

Princeton University Computer Science 217: Introduction to Programming Systems. Dynamic Memory Management

Princeton University Computer Science 217: Introduction to Programming Systems. Dynamic Memory Management Princeton University Computer Science 217: Introduction to Programming Systems Dynamic Memory Management 1 Goals of this Lecture Help you learn about: The need for dynamic* memory mgmt (DMM) Implementing

More information

Anne Bracy CS 3410 Computer Science Cornell University

Anne Bracy CS 3410 Computer Science Cornell University Anne Bracy CS 3410 Computer Science Cornell University The slides were originally created by Deniz ALTINBUKEN. P&H Chapter 4.9, pages 445 452, appendix A.7 Manages all of the software and hardware on the

More information

Virtual Memory. CS 3410 Computer System Organization & Programming. [K. Bala, A. Bracy, E. Sirer, and H. Weatherspoon]

Virtual Memory. CS 3410 Computer System Organization & Programming. [K. Bala, A. Bracy, E. Sirer, and H. Weatherspoon] Virtual Memory CS 3410 Computer System Organization & Programming [K. Bala, A. Bracy, E. Sirer, and H. Weatherspoon] Click any letter let me know you re here today. Instead of a DJ Clicker Question today,

More information

Main Memory: Address Translation

Main Memory: Address Translation Main Memory: Address Translation (Chapter 8) CS 4410 Operating Systems Can t We All Just Get Along? Physical Reality: different processes/threads share the same hardware à need to multiplex CPU (temporal)

More information

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

Translation Buffers (TLB s)

Translation Buffers (TLB s) Translation Buffers (TLB s) To perform virtual to physical address translation we need to look-up a page table Since page table is in memory, need to access memory Much too time consuming; 20 cycles or

More information

Anne Bracy CS 3410 Computer Science Cornell University

Anne Bracy CS 3410 Computer Science Cornell University Anne Bracy CS 3410 Computer Science Cornell University The slides were originally created by Deniz ALTINBUKEN. P&H Chapter 4.9, pages 445 452, appendix A.7 Manages all of the software and hardware on the

More information

Virtual Memory 2. To do. q Handling bigger address spaces q Speeding translation

Virtual Memory 2. To do. q Handling bigger address spaces q Speeding translation Virtual Memory 2 To do q Handling bigger address spaces q Speeding translation Considerations with page tables Two key issues with page tables Mapping must be fast Done on every memory reference, at least

More information

Pintos Project 3 Virtual Memory. October 26, 2016

Pintos Project 3 Virtual Memory. October 26, 2016 Pintos Project 3 Virtual Memory October 26, 2016 Background Definitions First Virtual Address: Physical Address in the eyes of a procses Page Fault: Process accessing memory not allocated to it Page: A

More information

CMSC 412 Project #4 Virtual Memory Due Friday April 11, 2014, at 5:00pm

CMSC 412 Project #4 Virtual Memory Due Friday April 11, 2014, at 5:00pm CMSC 412 Project #4 Virtual Memory Due Friday April 11, 2014, at 5:00pm Overview Introduction The purpose of this project is to add paging to your GeekOS kernel. This will require many small, but difficult,

More information

Fast access ===> use map to find object. HW == SW ===> map is in HW or SW or combo. Extend range ===> longer, hierarchical names

Fast access ===> use map to find object. HW == SW ===> map is in HW or SW or combo. Extend range ===> longer, hierarchical names Fast access ===> use map to find object HW == SW ===> map is in HW or SW or combo Extend range ===> longer, hierarchical names How is map embodied: --- L1? --- Memory? The Environment ---- Long Latency

More information

Virtual Memory. Today. Handling bigger address spaces Speeding translation

Virtual Memory. Today. Handling bigger address spaces Speeding translation Virtual Memory Today Handling bigger address spaces Speeding translation Considerations with page tables Two key issues with page tables Mapping must be fast Done on every memory reference, at least 1

More information

Multi-level Translation. CS 537 Lecture 9 Paging. Example two-level page table. Multi-level Translation Analysis

Multi-level Translation. CS 537 Lecture 9 Paging. Example two-level page table. Multi-level Translation Analysis Multi-level Translation CS 57 Lecture 9 Paging Michael Swift Problem: what if you have a sparse address space e.g. out of GB, you use MB spread out need one PTE per page in virtual address space bit AS

More information

ECE 471 Embedded Systems Lecture 4

ECE 471 Embedded Systems Lecture 4 ECE 471 Embedded Systems Lecture 4 Vince Weaver http://www.eece.maine.edu/ vweaver vincent.weaver@maine.edu 12 September 2013 Announcements HW#1 will be posted later today For next class, at least skim

More information

Memory 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 Memory Management Disclaimer: some slides are adopted from book authors slides with permission 1 Recap Paged MMU: Two main Issues Translation speed can be slow TLB Table size is big Multi-level page table

More information

Memory Allocation. Copyright : University of Illinois CS 241 Staff 1

Memory Allocation. Copyright : University of Illinois CS 241 Staff 1 Memory Allocation Copyright : University of Illinois CS 241 Staff 1 Recap: Virtual Addresses A virtual address is a memory address that a process uses to access its own memory Virtual address actual physical

More information

Virtual Memory Review. Page faults. Paging system summary (so far)

Virtual Memory Review. Page faults. Paging system summary (so far) Lecture 22 (Wed 11/19/2008) Virtual Memory Review Lab #4 Software Simulation Due Fri Nov 21 at 5pm HW #3 Cache Simulator & code optimization Due Mon Nov 24 at 5pm More Virtual Memory 1 2 Paging system

More information

This is the Memory Map section of the MIPS software training course.

This is the Memory Map section of the MIPS software training course. This is the Memory Map section of the MIPS software training course. 1 The CPU cold boots in Kernel Mode and is in Kernel mode when exception processing starts. In kernel mode everything is allowed, all

More information

CSE 120 Principles of Operating Systems

CSE 120 Principles of Operating Systems CSE 120 Principles of Operating Systems Spring 2018 Lecture 10: Paging Geoffrey M. Voelker Lecture Overview Today we ll cover more paging mechanisms: Optimizations Managing page tables (space) Efficient

More information

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

Modeling Page Replacement: Stack Algorithms. Design Issues for Paging Systems

Modeling Page Replacement: Stack Algorithms. Design Issues for Paging Systems Modeling Page Replacement: Stack Algorithms 7 4 6 5 State of memory array, M, after each item in reference string is processed CS450/550 Memory.45 Design Issues for Paging Systems Local page replacement

More information

Multiprogramming on physical memory

Multiprogramming on physical memory p. 1/15 Multiprogramming on physical memory Makes it hard to allocate space contiguously - Convenient for stack, large data structures, etc. Need fault isolation between processes - (Even Microsoft now

More information

Today: Segmentation. Last Class: Paging. Costs of Using The TLB. The Translation Look-aside Buffer (TLB)

Today: Segmentation. Last Class: Paging. Costs of Using The TLB. The Translation Look-aside Buffer (TLB) Last Class: Paging Process generates virtual addresses from 0 to Max. OS divides the process onto pages; manages a page table for every process; and manages the pages in memory Hardware maps from virtual

More information

CROWDMARK. Examination Midterm. Spring 2017 CS 350. Closed Book. Page 1 of 30. University of Waterloo CS350 Midterm Examination.

CROWDMARK. Examination Midterm. Spring 2017 CS 350. Closed Book. Page 1 of 30. University of Waterloo CS350 Midterm Examination. Times: Thursday 2017-06-22 at 19:00 to 20:50 (7 to 8:50PM) Duration: 1 hour 50 minutes (110 minutes) Exam ID: 3520593 Please print in pen: Waterloo Student ID Number: WatIAM/Quest Login Userid: Sections:

More information

Virtual Memory 2. Today. Handling bigger address spaces Speeding translation

Virtual Memory 2. Today. Handling bigger address spaces Speeding translation Virtual Memory 2 Today Handling bigger address spaces Speeding translation Considerations with page tables Two key issues with page tables Mapping must be fast Done on every memory reference, at least

More information

PROCESS VIRTUAL MEMORY PART 2. CS124 Operating Systems Winter , Lecture 19

PROCESS VIRTUAL MEMORY PART 2. CS124 Operating Systems Winter , Lecture 19 PROCESS VIRTUAL MEMORY PART 2 CS24 Operating Systems Winter 25-26, Lecture 9 2 Virtual Memory Abstraction Last time, officially introduced concept of virtual memory Programs use virtual addresses to refer

More information

Memory Hierarchy Requirements. Three Advantages of Virtual Memory

Memory Hierarchy Requirements. Three Advantages of Virtual Memory CS61C L12 Virtual (1) CS61CL : Machine Structures Lecture #12 Virtual 2009-08-03 Jeremy Huddleston Review!! Cache design choices: "! Size of cache: speed v. capacity "! size (i.e., cache aspect ratio)

More information

Physical memory vs. Logical memory Process address space Addresses assignment to processes Operating system tasks Hardware support CONCEPTS 3.

Physical memory vs. Logical memory Process address space Addresses assignment to processes Operating system tasks Hardware support CONCEPTS 3. T3-Memory Index Memory management concepts Basic Services Program loading in memory Dynamic memory HW support To memory assignment To address translation Services to optimize physical memory usage COW

More information

Administrivia. Lab 1 due Friday 12pm. We give will give short extensions to groups that run into trouble. But us:

Administrivia. Lab 1 due Friday 12pm. We give will give short extensions to groups that run into trouble. But  us: Administrivia Lab 1 due Friday 12pm. We give will give short extensions to groups that run into trouble. But email us: - How much is done & left? - How much longer do you need? Attend section Friday at

More information

Installation Guide for OS/161

Installation Guide for OS/161 Installation Guide for OS/161 Step 1: You will need the following source files. Please sure that you already downloaded them. os161.tar.gz os161-binutils.tar.gz os161-gcc.tar.gz os161-gdb.tar.gz sys161.tar.gz

More information

Princeton University. Computer Science 217: Introduction to Programming Systems. Dynamic Memory Management

Princeton University. Computer Science 217: Introduction to Programming Systems. Dynamic Memory Management Princeton University Computer Science 217: Introduction to Programming Systems Dynamic Memory Management 1 Agenda The need for DMM DMM using the heap section DMMgr 1: Minimal implementation DMMgr 2: Pad

More information

Virtual Memory. Patterson & Hennessey Chapter 5 ELEC 5200/6200 1

Virtual Memory. Patterson & Hennessey Chapter 5 ELEC 5200/6200 1 Virtual Memory Patterson & Hennessey Chapter 5 ELEC 5200/6200 1 Virtual Memory Use main memory as a cache for secondary (disk) storage Managed jointly by CPU hardware and the operating system (OS) Programs

More information

Intel P6 (Bob Colwell s Chip, CMU Alumni) The course that gives CMU its Zip! Memory System Case Studies November 7, 2007.

Intel P6 (Bob Colwell s Chip, CMU Alumni) The course that gives CMU its Zip! Memory System Case Studies November 7, 2007. class.ppt 15-213 The course that gives CMU its Zip! ory System Case Studies November 7, 07 Topics P6 address translation x86-64 extensions Linux memory management Linux fault handling ory mapping Intel

More information

Virtual Memory Overview

Virtual Memory Overview Virtual Memory Overview Virtual address (VA): What your program uses Virtual Page Number Page Offset Physical address (PA): What actually determines where in memory to go Physical Page Number Page Offset

More information

The Process Model (1)

The Process Model (1) The Process Model (1) L41 Lecture 3 Dr Robert N. M. Watson 15 November 2016 Reminder: last time DTrace The probe effect The kernel: Just a C program? A little on kernel dynamics: How work happens L41 Lecture

More information

Intel P The course that gives CMU its Zip! P6/Linux Memory System November 1, P6 memory system. Review of abbreviations

Intel P The course that gives CMU its Zip! P6/Linux Memory System November 1, P6 memory system. Review of abbreviations 15-213 The course that gives CMU its Zip! P6/Linux ory System November 1, 01 Topics P6 address translation Linux memory management Linux fault handling memory mapping Intel P6 Internal Designation for

More information

CSCI 237 Sample Final Exam

CSCI 237 Sample Final Exam Problem 1. (12 points): Multiple choice. Write the correct answer for each question in the following table: 1. What kind of process can be reaped? (a) Exited (b) Running (c) Stopped (d) Both (a) and (c)

More information

Simple idea 1: load-time linking. Our main questions. Some terminology. Simple idea 2: base + bound register. Protection mechanics.

Simple idea 1: load-time linking. Our main questions. Some terminology. Simple idea 2: base + bound register. Protection mechanics. Our main questions! How is protection enforced?! How are processes relocated?! How is ory partitioned? Simple idea 1: load-time linking! Link as usual, but keep the list of references! At load time, determine

More information

Memory 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 Memory Management Disclaimer: some slides are adopted from book authors slides with permission 1 Demand paging Concepts to Learn 2 Abstraction Virtual Memory (VM) 4GB linear address space for each process

More information

Syscalls, exceptions, and interrupts, oh my!

Syscalls, exceptions, and interrupts, oh my! Syscalls, exceptions, and interrupts, oh my! Hakim Weatherspoon CS 3410 Computer Science Cornell University [Altinbuken, Weatherspoon, Bala, Bracy, McKee, and Sirer] Announcements P4-Buffer Overflow is

More information

Virtual Memory 2. Hakim Weatherspoon CS 3410, Spring 2012 Computer Science Cornell University. P & H Chapter 5.4

Virtual Memory 2. Hakim Weatherspoon CS 3410, Spring 2012 Computer Science Cornell University. P & H Chapter 5.4 Virtual Memory 2 Hakim Weatherspoon CS 3410, Spring 2012 Computer Science Cornell University P & H Chapter 5.4 Administrivia Project3 available now Design Doc due next week, Monday, April 16 th Schedule

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

Lab 09 - Virtual Memory

Lab 09 - Virtual Memory Lab 09 - Virtual Memory Due: November 19, 2017 at 4:00pm 1 mmapcopy 1 1.1 Introduction 1 1.1.1 A door predicament 1 1.1.2 Concepts and Functions 2 1.2 Assignment 3 1.2.1 mmap copy 3 1.2.2 Tips 3 1.2.3

More information

Do-While Example. In C++ In assembly language. do { z--; while (a == b); z = b; loop: addi $s2, $s2, -1 beq $s0, $s1, loop or $s2, $s1, $zero

Do-While Example. In C++ In assembly language. do { z--; while (a == b); z = b; loop: addi $s2, $s2, -1 beq $s0, $s1, loop or $s2, $s1, $zero Do-While Example In C++ do { z--; while (a == b); z = b; In assembly language loop: addi $s2, $s2, -1 beq $s0, $s1, loop or $s2, $s1, $zero 25 Comparisons Set on less than (slt) compares its source registers

More information

Recap: Memory Management

Recap: Memory Management , 4/13/2018 EE445M/EE360L.12 Embedded and Real-Time Systems/ Real-Time Operating Systems : Memory Protection, Virtual Memory, Paging References: T. Anderson, M. Dahlin, Operating Systems: Principles and

More information

CS5460: Operating Systems Lecture 14: Memory Management (Chapter 8)

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

CS5460/6460: Operating Systems. Lecture 9: Finishing system boot, and system init. Anton Burtsev January, 2014

CS5460/6460: Operating Systems. Lecture 9: Finishing system boot, and system init. Anton Burtsev January, 2014 CS5460/6460: Operating Systems Lecture 9: Finishing system boot, and system init Anton Burtsev January, 2014 First stack Invoke first C function 9166 movl $start, %esp 9167 call bootmain xv6/bootasm.s

More information

Topics: Memory Management (SGG, Chapter 08) 8.1, 8.2, 8.3, 8.5, 8.6 CS 3733 Operating Systems

Topics: Memory Management (SGG, Chapter 08) 8.1, 8.2, 8.3, 8.5, 8.6 CS 3733 Operating Systems Topics: Memory Management (SGG, Chapter 08) 8.1, 8.2, 8.3, 8.5, 8.6 CS 3733 Operating Systems Instructor: Dr. Turgay Korkmaz Department Computer Science The University of Texas at San Antonio Office: NPB

More information

Recall: 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. 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 information

CPS 310 midterm exam #1, 2/19/2018

CPS 310 midterm exam #1, 2/19/2018 CPS 310 midterm exam #1, 2/19/2018 Your name please: NetID: Sign for your honor: Answer all questions. Please attempt to confine your answers to the boxes provided. If you don t know the answer to a question,

More information

Part I. X86 architecture overview. Secure Operating System Design and Implementation x86 architecture. x86 processor modes. X86 architecture overview

Part I. X86 architecture overview. Secure Operating System Design and Implementation x86 architecture. x86 processor modes. X86 architecture overview X86 architecture overview Overview Secure Operating System Design and Implementation x86 architecture Jon A. Solworth Part I X86 architecture overview Dept. of Computer Science University of Illinois at

More information

CSC 369 Operating Systems

CSC 369 Operating Systems CSC 369 Operating Systems Lecture 6: Memory management Bogdan Simion Memory hierarchy 1 KB Registers Speed Price 32 128 KB L1 cache 2 8 MB L2 cache 4 16 GB DRAM 1 2 TB Disk 2 But that s not all Sequential

More information

P6 memory system P6/Linux Memory System October 31, Overview of P6 address translation. Review of abbreviations. Topics. Symbols: ...

P6 memory system P6/Linux Memory System October 31, Overview of P6 address translation. Review of abbreviations. Topics. Symbols: ... 15-213 P6/Linux ory System October 31, 00 Topics P6 address translation Linux memory management Linux fault handling memory mapping DRAM bus interface unit instruction fetch unit processor package P6 memory

More information

Virtual and Physical Addresses

Virtual and Physical Addresses Virtual Memory 1 Virtual and Physical Addresses Physical addresses are provided directly by the machine. one physical address space per machine the size of a physical address determines the maximum amount

More information

P & H Chapter 5.7 (up to TLBs) Prof. Hakim Weatherspoon CS 3410, Spring 2015 Computer Science Cornell University

P & H Chapter 5.7 (up to TLBs) Prof. Hakim Weatherspoon CS 3410, Spring 2015 Computer Science Cornell University P & H Chapter 5.7 (up to TLBs) Prof. Hakim Weatherspoon CS 3410, Spring 2015 Computer Science Cornell University Where did you go? a) Home b) Caribbean, Hawaii, Florida, California, South America, etc

More information

Memory Management: The process by which memory is shared, allocated, and released. Not applicable to cache memory.

Memory Management: The process by which memory is shared, allocated, and released. Not applicable to cache memory. Memory Management Page 1 Memory Management Wednesday, October 27, 2004 4:54 AM Memory Management: The process by which memory is shared, allocated, and released. Not applicable to cache memory. Two kinds

More information

Virtual Memory 3. Hakim Weatherspoon CS 3410, Spring 2012 Computer Science Cornell University. P & H Chapter 5.4

Virtual Memory 3. Hakim Weatherspoon CS 3410, Spring 2012 Computer Science Cornell University. P & H Chapter 5.4 Virtual Memory 3 Hakim Weatherspoon CS 3410, Spring 2012 Computer Science Cornell University P & H Chapter 5.4 Project3 available now Administrivia Design Doc due next week, Monday, April 16 th Schedule

More information

2 nd Half. Memory management Disk management Network and Security Virtual machine

2 nd Half. Memory management Disk management Network and Security Virtual machine Final Review 1 2 nd Half Memory management Disk management Network and Security Virtual machine 2 Abstraction Virtual Memory (VM) 4GB (32bit) linear address space for each process Reality 1GB of actual

More information