nootnoot
Top 10 List of Week 05
Jonathan Amadeus --- Tangerang

Top 10 List of Week 05

  1. What is a virtual memory?
    Have you ever heard of a virtual memory? I learned that a virtual memory is actually an address mapper, mapping virtual address space to physical address space. You can learn in detail of what a virtual memory is, using some C, gcc, and bss segments. Here, you can also learn the benefits of a virtual memory and the inner workings of a virtual memory.

  2. Demand Paging
    So if a virtual memory doesn’t require any whole process to be present in the main memory at the given time, then how does it decide which one should be in the main memory? This is where demand paging comes in play. It is a technique used to bring in pages only whenrequired by the CPU. You can see how demand paging works and pros and cons of it.

  3. Page Fault
    When a program tries to access a page that is mapped in the virtual address space, but not loaded in the physical memory, what’s gonna happen? This site will explain about what is called a page fault. You can see some steps of the handling and some related terms.

  4. Page Replacement Algorithms
    Page replacement is a process of swapping out an existing page from the frame of a main memory and replacing it with the required page. Is there any algorithms involved in the process? Of course! Two of the algorithms that exist are FIFO, also called “queue” and also LIFO , also called “stack”. Some algorithms are combinations of simpler algorithms. You can also do problems on this site to strengthen your knowledge!

  5. Frame Allocation
    How do we allocate the fixed amount of free memory among the various processes of a virtual memory? We cannot, for example, allocate more than the total number of available frames (unless there is page sharing) or we must have enough frames to hold all the different pages that any single instruction can reference. You can learn how these processes work by knowing the algorithms involved. One formula used is a = Sj/S x m. Also, there are two types of allocation, global and local.

  6. Non Uniform Memory Access (NUMA)
    Some new trends have emerged in multiprocessing architectures development and of them is NUMA. NUMA is used by many manufacturers such as AMD, Intel, and HP. NUMA is a type of shared memory architectures, the other one is UMA. You can see the differences between UMA and NUMA here, also with some cool graphs! OSes that recognize NUMA can run NUMA more optimally than the ones that don’t recognize it. Java and databases are aware of NUMA too.

  7. Thrasing
    Thrasing, not trashing! If page faults described in point (3) occurs frequently at higher rate, then the OS has to spend more time to swap these pages. This is called thrasing. You can learn the effects of thrasing and some techniques to handle thrasing on this site as well.

  8. Top Command in Linux
    What if you wanted to know what processes are running in your Linux? Just use top! Top? You mean bottom? Top is used in UNIX-like systems to report system information such as resource usage and running processes. It’s not that hard to get through, but it takes some time to practice since every action is dome on keyboard.

  9. How to customize top?
    Now that you’re familiarized with top, you wanna change some bits that you’re not satisfied with? Don’t worry! Use this guide to tweak some of the stats like toggling single/separate CPU states, bold/reverse, highlighting columns, toggling color/monochrome, and many more!

  10. Buddy and Slab Allocator in Linux Kernel
    What is the difference between buddy and slab allocator? In buddy allocator, physical memory is divided into big parts of memory where each part is a part is a “page order”. Eventually, a block of memory needs to be halved when its allocation space is not available and these halves are called “buddies”. Yes, they’re not called “buddies” for no reason. On the other hand, the slab allocator sits on top of this buddy allocator and keep caches of frequently used objects ready to be allocated in the kernel. Other things you can learn here are slab caches, SLAB, SLUB, and SLOB.


© 2021-2021 --- Jonathan Amadeus --- File Revision: 9.1--23-May-2021.