Semaphore

GPTKB entity

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