CST334: Week 6 Journal
This week i learned about semaphores. Semaphores are atomic operations that allow processes to synchronize. Semaphores can encounter non-deadlock bugs such as atomicity-violation bugs and order violation bugs. Atomicity can be solved by creating a lock around shared variable references, while order violation bugs can be enforced using condition variables. They can also encounter various deadlock bugs. Circular wait deadlocks can be prevented via a total ordering on lock acquisition. Hold-and-wait deadlocks can be prevented by acquiring all locks at once. Deadlocks can be avoided via scheduling if global knowledge of what multiple threads may grab during their execution.
Comments
Post a Comment