Statements (51)
Predicate | Object |
---|---|
gptkbp:instanceOf |
Synchronization primitive
|
gptkbp:advantage |
Flexible
Efficient for certain problems Simple mechanism Widely supported |
gptkbp:alternativeTo |
gptkb:event
gptkb:Barrier Condition variable Spinlock |
gptkbp:canBe |
Blocking
Non-blocking |
gptkbp:cause |
Starvation
Priority inversion |
gptkbp:controls |
Access to shared resources
|
gptkbp:hasProperty |
Atomicity
Non-negative integer value |
gptkbp:hasType |
Binary semaphore
Counting semaphore |
https://www.w3.org/2000/01/rdf-schema#label |
Semaphore
|
gptkbp:implementedIn |
gptkb:Java
gptkb:Python gptkb:POSIX gptkb:Linux Windows API |
gptkbp:introduced |
gptkb:Edsger_Dijkstra
|
gptkbp:introducedIn |
1965
|
gptkbp:limitation |
Complexity in usage
Difficult debugging Potential for deadlock Potential for resource leaks Priority inversion risk |
gptkbp:operator |
Signal (V)
Wait (P) |
gptkbp:prevention |
Race conditions
|
gptkbp:relatedTo |
gptkb:Producer-consumer_problem
gptkb:Readers-writers_problem gptkb:Deadlock Monitor Critical section Mutex |
gptkbp:usedFor |
Controlling concurrency
Process synchronization Resource counting Thread synchronization |
gptkbp:usedIn |
Computer science
Operating systems Concurrent programming Multithreading |
gptkbp:bfsParent |
gptkb:Semaphore_Park
gptkb:Port_Adelaide_Enfield |
gptkbp:bfsLayer |
5
|