Blog

  • You need to take away the following two themes for shared memory machine model: Difference and relationship between cache coherence (dealt with in hardware) and cache consistency (handled by the operating system) The different memory machine models (e.g. dance hall, symmetric multiprocessing, and distributed shared memory architecture) Cache coherence is the promise delivered by the…

    Shared Memory Machine Model (notes)
  • My weekly review that normally takes place first thing in the morning on Sundays was completely derailed this time around, all because I could find the URL to a website that I had sworn I bookmarked for my wife’s birthday present. I ended up coughing up two hours of searching: searching directly on Reddit’s website…

    Losing 2 hours searching for a website bookmark & Weekly Review: week ending in 2020/09/06
  • Yesterday was September 11. On this day, every year, Americans grieve and we are all reminded of the unforgettable day back in 2001 when the New York twin towers collapsed to the ground after being struck by the hijacked planes. I sure remember the day. I was about 12 years old at the time and…

    Remembering September 11 & Daily Review (day ending on 09/11/2020)
  • This post is a continuation of virtualization. In the previous post, I talked about memory virtualization. This post instead discusses CPU and device virtualization. Ultimately, as system designers, one of our chief aims is to provide an illusion to the underlying guest operating systems that they each individually won the underlying hardware, the CPU and…

    CPU and Device Virtualization (notes)
  • I’m getting ready to begin developing a memory coordinator for project 1 but before I write a single line of (C) code, I want to run the provided test cases and read the output of the tests so that a get a better grip of the memory coordinator’s actual objective. I’ll refer back to these…

    Memory coordinator test cases (and expected outcome)
  • We often talk about work life balance, separating the two major parts of our lives. On some level, I agree with the philosophy, believe that work is work and life is life. But at least for me, what happens at work bleeds into my personal life, and vice versa. When I have a shitty day…

    Daily Review – Day ending in 2020/09/10
  • The operating system maintains a per process data structure called a page table, creating a protection domain and hardware address space: another virtualization technique. This page table maps the virtual address space to physical frame number (PFN). The same virtualization technique is adopted by hypervisors (e.g. VMWare). They too have the responsibility of mapping the…

    Memory Virtualization (notes)
  • After freeing a spider into the front yard, I noticed that the coffee mug (in which I trapped the spider in) was decorated with a beautiful web that the spider must’ve spun overnight. Almost every other day, I spot a spider dancing across the white walls of my bedroom. Instead of squishing them to death…

    Daily Review – Day ending in 2020/09/09
  • Below are some memory management research papers that my classmate shared with the rest of us on Piazza1. Quickly scanning over the papers, I think the material will point me in the right direction and will paint a clearer picture of how I might want to approach writing my memory coordinator. I do wonder if…

    Papers to read for designing and writing up the C memory coordinator
  • Up to ‘nr_stats’ elements of ‘stats’ will be populated with memory statistics from the domain. Only statistics supported by the domain, the driver, and this version of libvirt will be returned. What does the above API description even mean by nr_stats? How do you determine the number of elements that need to be populated? For…

    How to obtain the length of the memory statistics array when calling virDomainMemoryStats