Modificações nos valores do semáforo devem ser feitas atomicamente. Em um sistema de núcleo único, isso pode ser feito desativando as interrupções para que as operações de leitura / modificação / gravação para alterar o semáforo não possam ser interrompidas.
Em um sistema multicore, desabilitar interrupções não é suficiente; portanto, os processadores com capacidade multicore geralmente têm instruções atômicas para fazer a modificação. Por exemplo, nos processadores Intel / AMD, há um prefixo de bloqueio para executar uma instrução atomicamente.
Se as interrupções do processador pudessem ocorrer durante a modificação do valor de um semáforo, seria possível que esse valor terminasse em um estado inconsistente. Durante uma interrupção, um determinado conjunto de instruções será executado.
Para escrever sua resposta aqui, entre ou crie uma conta.
Compartilhar