This thread gives a nice visualization on the difference between these two different concepts.
Guide to POSIX Semaphores in C
This might help to better understand the usage of sem_post() and sem_wait() in this week’s assignment.
Knowing when a deadlock might be caused down the line is good to code more preemptively against deadlocks. By identifying the causes of deadlock we can avoid creating one.
A simple explanation on how to handle a deadlock in an operationg system.
Various synchronization problems
These are several synchronization problems that can be resolved using semaphore. However, it is more common in real life implementation to use mutex locks instead.
Differences between mutex and semaphore
The condition which one is preferred over the other varies. There are conditions which using using mutex is considerably more effective and efficient and vice versa. This webpage explains when those certain conditions are met.
This thread elaborates on the possible differences between these two concepts. However, both of these problems are much less common than deadlocks.
When using threads, sometimes you want to synchronize some of them. These are the possible methods to achieve that.
The best synchronization is no synchronization?
The title of this webpage piqued my interest and explains why the less synchronization we have to deal with the better.
Best practices in using mutex lock
This thread shows some examples on how to best implement a mutex lock.