Please enable JavaScript.
Coggle requires JavaScript to display documents.
Sincronismo de processos e threads, MAPA MENTAL 6 SO 2024/2 ARTHUR…
Sincronismo de processos e threads
Problemas da seção crítica
Processos que podem alterar dados
Região crítica é pequena
Projetar protocolos para processos utilizarem na cooperação
Seção de entrada
Entra na seção crítica
Seção de saída
Sai da seção crítica
Seção remanescente
Código restante
Para solução ser válida
Exclusão mútua
Processos não podem executar ao mesmo tempo
Progresso
Processos que não estão na remanescente podem decidir quem vai executar
Espera limitada
Limite para o número de vezes que podem entrar
Kernel compreempção
Processos interceptados
Kernel sem preempção
Processo não interceptado
Problemas clássicos de sincronismo
Problema dos leitores e escritores
Escritor e outro processo não podem acessar outro banco de dados junto
Leitores tem acesso simultâneo
Escritores tem acesso exclusivo
Problema dos filósofos glutões
Demonstração de problema e controle de concorrência
Solução
semáforo para cada chopstick
Antecedentes
Problema do produto/consumidor
Produzir informações para processo consumidor
Sincronização para que não consuma um item que não foi produzido
Condição de corrida
Processos acessam e manipulam os mesmos dados concorrentemente
Soluções para o problema da seção crítica
Solução de hardware
Instrução TSL
Executada de forma atômica
"Test and set lock"
Bloqueia barramento de memória
Problemas
Busy wait
starvation
Inibição de interrupções
Desativa todas interrupções antes de entrar na RC
DI
Disable interrupt
EI
Enable interrupt
Problemas
Desinteressante o usuário poder desabilitar interrupções
Não funciona em ambiente multicore
Soluções de software com busy wait
Busy wait = Espera ocupada
Algoritmo de Peterson
Dois processos que se alteram na execução
Processo indica que é a vez do outro apenas tendo a intenção de entrar
Solução de software com bloqueio
Primitivas sleep/wake up
Bloquear a execução quando sua entrada não é permitida
sleep()
Suspende execução até que outra acorde
Wakeup()
Acorda o processo bloqueado
Semáforos
Não exige espera ocupada
Acessado por duas operações atômicas
Wait()
Signal()
Semáforo binário
Lock(mutex)
Unlock(mutex)
Semáforo de contagem
Domínio restrito
Problemas
Deadlock
Starvaton
Monitores
Processo só podem acessar os dado por meio de procedimentos
Operações definidas dotadas de exclusão mútua dentro do monitor
Não é suficientemente poderoso
Assegura um processo de cada vez seja para que seja ativo
Mecanismos de sincronização adicional
Condition
MAPA MENTAL 6
SO 2024/2
ARTHUR VALENTIM CALDEIRA