## Semaphore vs Mutex vs AdminDev
### Semaphore - More of a signal than a lock/unlock - Integer value accessed through wait() and signal() - wait() checks if the int is less than or equal to 0, decrements value - signal() increments the integer value
### Semaphore Over Mutex - Mutex locks can have busy waiting. - Semaphore wait() results in busy waiting, but a process can block itself with a wakeup() implementation - Semaphore can still result in syncing issues - Critical-Section: Two processes can be in the same section if the wait() and signal() sequence is not monitored
### Semaphores in OS Dev - Counting semaphore - Value can range dramatically - Control access to a given resource consisting of finite instances - Semaphore is initialized to the given number of resources - Each process that wants to use a resource performs wait() (lowering the value count) - signal() is called when a process is finished utilizing a resource (increasing the value count) - When count == 0, all resources are used - Processes will block until count becomes greater than 0 - Binary semaphore - Value can range between 1 and 0 - Similar to mutex locking - Used in systems lacking mutual exclusion
### Atomics and Atomicity - An atomic action is a group of related operations that execute without interruption or do not execute at all - Operations isolated from other operations occurring at the same time - Observed state is pending or complete, never partially complete. - The Linux kernel - A note on Golang - Package "sync/atomic" - Low-level primitives for synchronization algorithms - "Share memory by communicating, don't communicate by sharing memory." - Emphasis on low-level applications
### Java and C, Sitting in a Red-Black Tree - My education vs my desires - C teachings - What other langs do - Why this costs - What I've learned - Java still in the mix - Shell and Python
### Why C, Again? - OS and kernel development - OS Dev Wiki - Prereqs - Userland tools - Assembly - All the cool kids do it! - The language of operating systems - The language of networking - The language of web and proxy
### New Format - Technical Buzzword Jargon Hell - Stuff like this :D - CompSci, Unix and Linux, computer programming - Off topic - Book reviews (some tech, some not) - M-m-m-mental and physical health - Ranting and raving - NOT Tech News - Linux kernel stuff - Unix-like conventions and meetups (BSD, Linux) - Interesting sites, tips, and tricks - Long segment, short segment, short segment - One long episode, two short episodes - Intro music pending
### Let Me Know! - [email protected] - forum.admindev.tech - iTunes: https://podcasts.apple.com/us/podcast/admindev-labs/id1476478667 - Stitcher: https://www.stitcher.com/podcast/the-rollbak/admindev-labs