On Thread Synchronization : Part 2 - An overview of semaphores
An overview of what semaphores are and how they enable coordinated access to shared resources
On Thread Synchronization : Part 1 - A deep dive into mutexes
A close look at how mutexes work on a fundamental level, and how they are used to prevent race conditions
Exploring x86 ASM : Building my own malloc and free
Implementing memory management at the lowest level using Linux syscalls