os211

Top 10 List of Week 07

  1. Lock vs Mutex vs Semaphore
    These are type of synchronization objects that we can learn in week 7. This website is interesting as it provides intuitive understanding of how each type works so it’s pretty easy to follow.

  2. POSIX Semaphores
    This little guide can help you understand using semaphores to synchronize threads. With some examples and activities you can follow, it gives more practical understanding.

  3. Race Condition and Its Prevention
    Race condition is a common problem in concurrency. This article gives great informations about what it is more deeply, how to prevent it, and how is it addressed in general which is very useful.

  4. Classical Problems of Synchronization
    This website discusses three main problems for synchronization, which are bounded buffer problem, dining philosophers problem, and the readers writers problem. As one of the main topic this week, it is important to know common problems that could occur from it.

  5. Critical Section Problem
    Critical section problem is basically a problem that a segment where the shared variables can be accessed, can only executed by one process at a time. This simple article gives a nice example and also solution conditions to solve it.

  6. What exactly are spin locks?
    A very informative stackoverflow forum discussing this topic. What I can infer is spin lock works like a lock (mutex, critical section, etc.) in synchronization that is being check repeatedly. (busy waiting)

  7. Deadlock vs Starvation
    A short video explaining how deadlock and starvation occurs conceptually. The illustration described in this video is so simple and actually funny at least for me.

  8. Difference Between Deadlock Prevention and Avoidance
    The main difference between the two is prevention ensures that at least one of the necessary conditions to cause deadlock will never occur, while avoidance ensures that the system won’t enter unsafe state. For more detailed explanation here is the best article I can search of.

  9. Deadlock Prevention and Avoidance
    A list of (algorithms) how to implement deadlock prevention and deadlock avoidance. A practical and relatively easy to follow explanation to eliminating each deadlock characteristics and for deadlock avoidance there is banker’s algorithm!

  10. Deadlock Detection and Recovery
    Difference from deadlock prevention and avoidance, deadlock detection and recovery covers things to know when the system is currently being run. The content in this site is quite simple and to the point in explaining methods to detect and recover the system from deadlock.