In this lecture, we look at the complexities of concurrency management by exploring the Dining Philosophers problem, thread throttling techniques, and the educational framework of Zemaphores. Starting with the Dining Philosophers, we unravel a classic concurrency puzzle that highlights the risks of deadlock and starvation, illustrating semaphore-based strategies for managing shared resources. We then shift our focus to thread throttling, a vital method for optimizing system performance and stability by regulating the flow of concurrent thread execution, demonstrating the use of semaphores and our custom Zemaphores for effective load management. The segment on Zemaphores, a bespoke semaphore implementation using basic synchronization primitives like mutexes and condition variables, further deepens our understanding of the mechanics behind concurrency control.
FA 24 version:
https://docs.google.com/presentation/d/17WJkNW_xTXIsVbz5hRvQLU60yDDtbp4zVNEOzaaqMBc/edit?usp=sharing
Original slides:
https://docs.google.com/presentation/d/1IP3HtBX3PRkJ0Wz9unDZyjoMO5xiEHfr-40-u7PWHfQ/edit?usp=sharing
Take a look at the associated code for this chapter on GitHub.
No additional references or resources at this time.