Gita's OS202

OS202


Project maintained by gpersable Hosted on GitHub Pages — Theme by mattgraham

HOME


Top 10 List of Week 05

  1. What is Virtual Memory?
    Gary from Android Authority explains about what virtual memory is in a simple and comprehensive way. The 11-minute video is really worth watching if you want to know about virtual memory and how it works.

  2. Virtual Adress Space
    Microsoft explains about virtual address spaces really well and the explanation is also provided with illustrations. When a processor reads or writes to a memory location, it uses a virtual address. As part of the read or write operation, the processor translates the virtual address to a physical address.

  3. Demand Paging
    The website is from Stanford University. It explains about demand paging, including: Page Faults, Page Fetching, and Page Replacement. Demand paging: not all of a process’s virtual address space needs to be loaded in main memory at any given time. Each page can be either: In memory (physical page frame) or On disk (backing store).

  4. Copy on Write
    Copy on Write or simply COW is a resource management technique. One of its main use is in the implementation of the fork system call in which it shares the virtual memory(pages) of the OS.

  5. Page Replacement Algorithms
    The website will introduce you to the concept of page replacement, which is used in memory management. You will understand the definition, need and various algorithms related to page replacement.

  6. Allocation of Frames
    The website explains about Frame Allocation Algorithms and Global vs Local Allocation. Frame allocation algorithms are used if you have multiple processes; it helps decide how many frames to allocate to each process.

  7. Non-Uniform Memory Access (NUMA)
    The slides explains about NUMA in detail. Memory access between processor core to main memory is not uniform. Memory resides in separate regions called “NUMA domains”. For highest performance, cores should only access memory in its nearest NUMA domain.

  8. Techniques to Handle Thrashing
    GFG gives a good explanation about thrashing and the techniques to handle thrashing. Thrashing is a condition or a situation when the system is spending a major portion of its time in servicing the page faults, but the actual processing done is very negligible.

  9. Buddy System
    Static partition schemes suffer from the limitation of having the fixed number of active processes and the usage of space may also not be optimal. The buddy system is a memory allocation and management algorithm that manages memory in power of two increments.

  10. Slab Allocator in Linux Kernel
    The website comprehensively explains about Slab Allocator. The explanations are clear and detail. The explanations are also provided with examples, tables, and illustrations so you can understand better.