Semáforo - Como Funciona
Desenvolver um programa com base no Programa Exemplo de modo a explorar a Sincronização entre Processos utilizando mecanismo de semáforos. Semáforos são geralmente utilizados quando processos necessitam do acesso exclusivo a um dado recurso. Dentre os objetivos deste projeto destacamos:
• perceber como funcionam os mecanismos de sincronização entre processos;
• observar e entender porque um recurso crítico deve ser protegido contra acessos simultâneos (exclusão mútua);
• rever o conceito de exclusão mútua, de maneira a ser capaz de explicá-lo e descrevê-lo;
• entender como e quando usar um dos métodos que possibilitam a sincronização entre processos (semáforos).
Mecanismo de Sincronização
Semáforos
Karine Corrêa
Trabalho da disciplina Sistemas Operacionais, Curso de Bacharelado em Sistemas de Informação da Universidade do Estado de Santa Catarina – UDESC
São Bento do Sul, 20 de Junho/2013
1- Condição de corrida
Seria quando dois processos ou duas threads entram em conconrrencia acessando uma mesma variavel executavel. Podendo ocorrer disputa para qual será a primeira a ser finalizada, então para não ocorrer danificação de nenhuma desses processos, exclusivamente selecionaria um mecanismo conhecido como exclusão mutua para dividilo e decidir qual vai ser o primeiro a ser executavel, enquanto o outro entrará em fila aguardando sua vez. O primeiro thread lê a variável e o segundo thread lê o mesmo valor da variável. O primeiro segmento e o segundo thread executam suas operações no valor e que eles disputem para ver qual thread pode gravar o valor última variável compartilhada.
Cada thread é alocado um período predefinido de tempo para ser executado em um processador. Quando expira o tempo alocado para o segmento, o contexto do thread é salvo até a próxima rodada no processador e o processador começa a execução do próximo segmento. No exemplo a seguir uma condição de corrida