1 / 14

Understanding Address Spaces and Memory Management in Operating Systems Design

This overview of Operating Systems Design (CS.423) focuses on key concepts related to address spaces and memory management. It explains the relationship between processes, threads, and memory, emphasizing virtual memory, address translation, and multi-programming. The course material highlights the importance of protecting data between processes and managing memory efficiently through various allocation algorithms. Illustrations of concepts like static and dynamic address translation, process context switching, and memory allocation strategies are included, drawing upon foundational slides by Tanenbaum, Campbell, and King.

olaf
Download Presentation

Understanding Address Spaces and Memory Management in Operating Systems Design

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Operating Systems Design (CS 423) Elsa L Gunter 2112 SC, UIUC http://www.cs.illinois.edu/class/cs423/ Based on slides by Roy Campbell, Sam King, and Andrew S Tanenbaum

  2. Address Spaces and Memory • Process = one or more threads in an address space • Thread: stream of execution • Unit of concurrency • Address space: memory space that threads use • Unit of data

  3. Address Space Abstrac2on • Address space: all the memory data • Program code, stack, data segment • Hardware interface (physical reality) • One memory, small, shared • Application interface (illusion) • Each process has own memory, large

  4. Illusions Provided by Address Apace • Address independence • Same address in different processes not conflicting with each other • Eg Same address for stack • Protection • One process cannot access the data of another • Secret data, protected code • Virtual memory • 64 bit address space, memory many 4 G

  5. Uni‐programming • One process runs at a time • Always load process into the same spot • How do you switch processes? • What abstractions • does this provide? • Problems? Operating System ROM User Memory

  6. Multi‐programming • Multi‐programming: more than one process in memory at a time • Need address translation • Need protection • Address translation • Avoid conflicting addresses • Static: before you execute • Dynamic: during execution, could change

  7. Dynamic translation • Translate every memory reference from virtual address to physical address • Virtual address: an address used by the user process to reference a location in memory • Physical address: an address used by the physical memory

  8. Dynamic Address Translation • Translation enforces protection • One process can’t even refer to another process’s address space • Translation enables virtual memory • A virtual address only needs to be in physical memory when it is being accessed • Change translations on the fly as different virtual addresses occupy physical memory • Do you need hardware support? User Process Translator (MMU) PhysicalMemory Virtual Add Physical Add

  9. Address translation • Lots of ways to implement, remember the big picture • Tradeoffs: • Flexibility (e.g., sharing, growth, virtual memory) • Size of translation data • Speed of translation User Process Translator (MMU) PhysicalMemory Virtual Add Physical Add

  10. Base and Limit virtual mem • Load each process into contiguous regions of physical memory If(virt addr > bound){ trap to kern } else { phys addr = virt addr + base } physical mem lim2 0 base2 + lim2 base2 base1 + lim1 virtual mem base1 lim1 0 0

  11. Base and limit • What must change during a context switch? • Can a process change its own base and limit? • Can you share memory with another process? • How does the kernel handle the address space growing • You are the OS designer, come up with an algorithm for allowing processes to grow

  12. Memory Allocation in the small virtual mem physical mem physical mem physical mem virtual mem ? virtual mem virtual mem virtual mem

  13. Memory Management w/ Linked Lists A B C D E F 8 16 24 32 • Info for each hole • Both ends: • Size of hole • Bit saying free or allocated • Together • Next and Previous pointers to other holes • Info for each allocated “chunk: • Size and allocation bit, together, on each end

  14. Memory Allocation Algorithms A B C D E F • Allocated 2 units: • First fit 8 8 8 8 16 16 16 16 24 24 24 24 32 32 32 32 G A B C D E F • Best fit G A B C D E F • Worst fit G A B C D E F

More Related