Os monitores são uma construção das linguagens de programação que provêm função equivalente à fornecida pelos semáforos, só que de mais fácil controle. O conceito de monitor foi proposto por Hansen e Hoare na década de 1970 como uma forma de reduzir os erros de programadores na implementação de semáforos.
A solução para exclusão mútua deste método é baseada nas rotinas da própria estrutura do monitor, não sendo necessário esforço de codificação por parte do programador. Como apenas um processo pode executar um determinado procedimento do monitor em um dado momento, se algum outro processo efetuar a chamada, o próprio monitor já identifica e realiza o controle, ordenando os processos em uma lista de espera e mudando o seu estado paulatinamente à medida que o processo atualmente em execução termina a sua tarefa.
É importante ressaltar que um monitor pode possuir diversos procedimentos implementados, sendo que estes podem ser executados simultaneamente, desde que apenas um processo execute cada um dos procedimentos. Isso se dá porque cada procedimento está associado a uma diferente região crítica.
Um monitor é uma estrutura de sincronização que requisita e libera a seção crítica associada a um recurso de forma transparente, sem que o programador tenha de se preocupar com isso. Esse conceito foi proposto em 1972 pelos cientistas Per Brinch Hansen e Charles Hoare.
X