Blog

  • I had mentioned yesterday that I slept horribly, waking up early and starting day off at around 03:45 AM. That wake up time was brutal and as a result, I crashed and burned in the afternoon, leveraging those precious 30 minutes of my lunch to nap in my wife’s / daughter’s bedroom (a room with…

    Crashing and burning during lunch & Daily Review – Day ending in 2020/09/16
  • In part 1 of synchronization, I talked about the more naive spin locks and other naive approaches that offer only marginally better performance by adding delays or reading cached caches (i.e. avoiding bus traffic) and so on. Of all the locks discussed thus far, the array based queuing lock offers low latency, low contention and…

    Synchronization notes (part 2/2) – Linked Based Queuing lock
  • Today is going to be rough. I slept horribly, waking up multiple times throughout the night. Ultimately, I rolled out of my tri-folding foam mattress (a temporary bed while my daughter and wife sleep on the mattress in a separate room as to not wake me up: that parent life) at 03:45 AM this morning.…

    Tired like a zombie & Daily Review – Day ending in 2020/09/15
  • 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)