Semaphores, Are They Really Like Traffic Signals? - Tobar, Carlos M.; Adán-Coello, Juan M.; Freitas, Ricardo Luís de (Anais do Workshop de Sistemas Operacionais (WSO); 2009: Anais do VI Workshop de Sistemas Operacionais, 2009)
Semaphores are software mechanisms designed to synchronize processes. The name seems to recall a traffic signal but diversely from the original idea behind them, different implementations can be found in popular Operating Systems as well as different definitions in the most adopted introductory books. Due to these differences, care is necessary in knowing if an implementation of semaphores is compatible with the definition found in the adopted book, otherwise could become confused to students. This article presents and compares semaphores definitions and implementations, rescuing three types of them. It is a warning to teachers on semaphore semantics and implementations, considering that they are usually used by applications programmers where kernel mechanisms cannot be used.