Please enable JavaScript.
Coggle requires JavaScript to display documents.
Sincronismo de Processos e Threads, Mapa Mental 06 SO 2025/2 Davi Campos…
Sincronismo de Processos e Threads
Introdução
Processos cooperativos
compartilham dados
Acesso simultâneo
inconsistência
Solução
sincronização
Objetivo
execução ordenada e segura
Antecedentes
Execução Concorrente
CPU alterna entre processos
Vários fluxos
risco de conflito
Problema do Produtor/Consumidor
Exemplo de processos cooperativos
Produtor gera itens
coloca em um buffer compartilhado
Consumidor retira os itens
precisa de sincronização
Não consumir item inexistente
Não produzir se o buffer estiver cheio
Problema típico de condição de corrida
depende da ordem de execução concorrente
Necessidade de sincronização para evitar erros
Problema da Seção Crítica
Definição
Trecho do código com dados compartilhados
Necessário controle de acesso
Etapas
Entrada na seção crítica
Execução da seção crítica
Saída e liberação
Requisitos
Exclusão mútua
só um processo
Progresso
sem bloqueios desnecessários
Espera limitada
ninguém espera para sempre
Soluções para o Problema da Seção Crítica
Soluções de Hardware
Inibição de Interrupções
Desativa interrupções na SC
Evita preempção
Ineficiente em multiprocessadores
Instrução TSL (Test and Set Lock)
Testa e trava variável
Operação atômica
Garante exclusão mútua
Problema
espera ocupada
Soluções de Software (Busy Wait)
Algoritmo de Peterson
Dois processos
Variáveis: flag[], turn
Garante
exclusão mútua, progresso e espera limitada
Limitação
apenas 2 processos
Soluções de Software (Bloqueio)
Sleep/Wakeup
Processo dorme
não ocupa CPU
Acordado com wakeup
Evita espera ocupada
Problema
sinais perdidos
deadlock
Semáforos
Variável inteira controlando acesso
Operações
acquire()
wait()
P()
down()
release()
signal()
V()
Up()
Tipos
Binário
mutex
Contador
recursos múltiplos
Problemas
deadlock e starvation
Monitores
Estrutura de alto nível
Agrupa variáveis e métodos
Exclusão automática
Usa variáveis de condição
Presente em linguagens como Java e C#
Problemas Clássicos de Sincronismo
Leitores e Escritores
Vários leitores
acesso simultâneo
Escritor
precisa de acesso exclusivo
Problema
starvation de escritores
Solução
dar prioridade aos escritores
Filósofos Glutões
Cinco filósofos alternam entre pensar e comer
Precisam de dois pauzinhos
recursos compartilhados
Na mesa existem 5 pauzinhos
Todos pegam um
deadlock
Soluções
Limitar a 4 filósofos simultâneos
Usar semáforos
Hierarquia de requisição
Mapa Mental 06
SO 2025/2
Davi Campos Sutil