Blog

  • I broke down the synchronization topic into two parts and this will cover material up to and including the array based queuing lock. I’ll follow up with part 2 tomorrow, which will include the linked list based queuing lock. There a couple different types of synchronization primitives: mutual exclusion and barrier synchronization. Mutual exclusion ensures…

    Synchronization (Notes) – Part 1
  • This morning my body woke me up later than usual. After a few blinks, I squeezed the corner of my Casio G-Shock watch, the green background lighting up and shining the time: 05:55 AM. Ugh. About an hour later than I wanted to wake up. On one hand, I’m bummed because I won’t be able…

    Honoring my body’s internal alarm clock & Daily Review – Day ending in 2020/09/14
  • 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