apresentação semáforos, monitores, troca de mensagens, deadlock

33
Sincronização e comunicação entre processos SEMÁFOROS, MONITORES, TROCA DE MENSAGENS, DEADLOCK UNIFESO Ciência da Computação - 2º ano Sistemas Operacionais Professora: Flávia Equipe: Rodrigo Rafael Telles Thiago Matheus Williams

Upload: williams-gomes-da-silva

Post on 12-Apr-2017

901 views

Category:

Software


0 download

TRANSCRIPT

Apresentao do PowerPoint

Sincronizao e comunicao entre processosSEMFOROS, MONITORES, TROCA DE MENSAGENS, DEADLOCK

UNIFESOCincia da Computao - 2 anoSistemas OperacionaisProfessora: FlviaEquipe: Rodrigo Rafael Telles Thiago Matheus Williams

Sincronizao e comunicao entre processosINTRODUOCONCEITOS IMPORTANTES:

Os processos podem ser INDEPENDENTES ou COOPERATIVOS. Os primeiros no afetam nem so afetados por outros processos executados pelo sistema. So considerados COOPERATIVOS quando afetam ou so afetados por outros processos em execuo.

Processos PRODUTORES so aqueles que geram itens continuamente e os colocam no BUFFER enquanto CONSUMIDORES usa os itens, lendo-os do BUFFER.

Operaes atmicas (Indivisveis) so operaes que no podem ser interrompidas. Tem a finalidade de evitar as condies de corrida.

Sincronizao e comunicao entre processosINTRODUOCONCEITOS IMPORTANTES:

Condies de corrida Situaes onde diversos processos manipulam variveis e instrues (recursos compartilhados) simultaneamente, onde o resultado vai depender de quem acessou por ltimo a varivel.

Regio crtica uma parte do cdigo que tem o acesso memria ou outro recurso compartilhado que s pode ser acessado por um processo de cada vez.

Excluso mtua Tcnica usada em programao concorrente para evitar que dois processos ou threads tenham acesso simultneo a recurso compartilhado.

Sincronizao e comunicao entre processosSEMFOROS

Mecanismo de sincronizao que permite implementar a excluso mtua e a sincronizao condicional, os SEMFOROS foram propostos por Edsger Wybe Dijkstra em 1965.

SEMFOROS consistem em uma varivel inteira no negativa que s manipulada atravs de duas operaes atmicas: DOWN ou Wait (P - Proberen Testar, decrementar) UP ou Signal (V - Verhogen - Incrementar)

Operados por chamadas de sistema. semget(...) semop(...) semclt(...)

Sincronizao e comunicao entre processosSEMFOROSSEMFOROS CONTADORES (Counting Semaphores)

Associado a um recurso compartilhado, indica quando o recurso est alocado a algum processo.

Varivel inteira que assume valor igual ou maior que zero e representa a alocao de determinado recurso facilitando a sincronizao de suas atividades.

O semforo FULL no permite que um processo PRODUTOR produza enquanto o BUFFER estiver cheio. De modo parecido o semforo EMPTY no permite que um processo CONSUMIDOR consuma se o BUFFER estiver vazio.

Sincronizao e comunicao entre processosSEMFOROSSEMFOROS BINRIOS (Exclusion Semaphores)

Tambm chamados MUTEX , estes semforos gerenciam os processos de excluso mtua, garantindo que certos recursos sejam acessados apenas por um processo.

Este tipo de semforo exerce a funcionalidade de avisar aos demais processos concorrentes se determinado recurso j est sendo utilizado.

Iniciado com valor = 1, informa a disponibilidade do recurso gerenciado (geralmente antes da regio crtica), sendo este valor alterado para 0 quando um processo executar um DOWN voltando ao valor inicial quando for executado um UP aps a REGIO CRTICA.

Sincronizao e comunicao entre processosSEMFOROSwait(S){ while (S