SlideShare uma empresa Scribd logo
Sistemas Operacionais I
Gerências de Processos: Sincronização
Prof. Alexandre Duarte : http://alexandrend.com
Centro de Informática | Universidade Federal da Paraíba
Estes slides são baseados no material que acompanha o livro Operating
Systems Concepts de Silberschatz, Galvin and Gagne
Objetivos
 Introduzir o problema da seç ão críticas, cujas
soluç ões podem ser utilizadas para garantir
consistência no acesso a dados compartilhados
 Apresentar soluç ões em software e hardware para
o problema da seç ão crítica
 Introduzir o conceito de transaç ão atô mica e
descrever os mecanismos utilizados para garantir
atomicidade
Antecendentes
 Acesso concorrente a dados compartilhados
pode resultar em inconsistência nos dados
 Para manter a consistência dos dados
precisamos de mecanismos para garantir
ordem na execuç ão de processos
cooperativos
Revisitando o problema do Produtor/
Consumidor
 Suponha que desejamos alterar a soluç ão apresentada
anteriormente para o problema do Produtor/Consumidor
que preencha todas as posiç ões do buffer
 Uma ideia seria utilizar uma variável inteira count para
contar o número de posiç ões ocupadas no buffer.
 Inicialmente count recebe 0 e é incrementado sempre
que o produtor inserir algo no buffer e decrementado
sempre que o consumidor remover algo do buffer.
Produtor
Consumidor
Condição de corrida
count++ poderia ser implementado assim:
count-- poderia ser implementado assim:
Condição de corrida
O problema da seção crítica
 Considere um sistema composto por n processo [P0, P1, ... ,
Pn]
 Cada um desses processos tem um segmento de código
denominado seção crítica em que o processo pode alterar
variáveis compartilhadas
 Para evitar inconsistências nos dados compartilhados é
preciso garantir que dois desses processos jamais
executarão ao mesmo tempo código de suas seções
críticas
 O problema da seção crítica consiste em elaborar um
protocolo que possibilite a cooperação entre os processos
e que garanta a consistência dos dados compartilhados
Estrutura geral de um processo
Requisitos de uma solução para o
problema da seção crítica
 Exclusão mútua: se o processo Pi estáexecutando có digo de sua
seç ão crítica então nenhum outro processo pode estar executando
có digo de suas seç ões críticas
 Progresso: Se nenhum processo estiver executando sua seç ão
crítica e alguns processos quiserem entrar em suas seç ões críticas,
só os processos que não estiverem executando suas seç ões
remanescentes poderão participar da decisão sobre qual processo
seráo pró ximo a entrar em sua seç ão crítica e essa seleç ão não
poderáser adiada indefinidamente
 Espera limitada: Háum limite para o número de vezes que outros
processos podem entrar em suas seç ões críticas apó s um
processo ter feito uma solicitaç ão para entrar na sua seç ão crítica e
ter essa solicitaç ão atendida
 Pode-se presumir que cada processo execute em uma velocidade
diferente de zero mas não se pode fazer qualquer suposiç ão sobre as
velocidades relativas dos n processos
Solução de Peterson
 Utilizada apenas para pares de processos
 Assume que as instruções LOAD e STORE são atô micas.
 Os processos compartilham duas variáveis:
 int turn;
 boolean flag[2]
 A variável turn indica de quem é a vez de entrar na seção
crítica.
 O array flag é utilizado para indicar se um processo está
pronto ou não para entrar em sua seção crítica
 flag[i] = true implica que o processo Pi estápronto!
Algoritmo para o processo Pi
Hardware de sincronização
 Muitos sistemas oferecerem suporte em hardware para
controle de acesso a seções críticas
 Processador único: poderia desabilitar interrupções
 O có digo atualmente em execuç ão não seria interrompido
 Geralmente essa abordagem é muito ineficiente em sistemas
com múltiplos núcleos/processadores
 Um sistema operacional que funciona dessa forma não é escalável
 Máquinas modernas oferecem instruções especiais de
hardware com execução atô mica
 Atô mica = não interrompível
 Testar e modificar o conteúdo de uma palavra de memó ria
 Trocar os conteúdos de duas palavras de memó ria
Solução para o problema da seção crítica
utilizando locks
A instrução TestAndSet
Solução utilizando TestAndSet
Instrução SWAP
Solução utilizando SWAP
Exclusão mútua com espera limitada utilizando a operação
TestAndSet()
Semáforos
 Ferramenta de sincronizaç ão baseada em duas
operaç ões simples
 Semaphore S – variável inteira
 Duas operaç ões para modificar o semáforo S: wait() e signal()
 Originalmente P() e V()
 Só podem ser acessados através de duas operaç ões
indivisíveis (atô micas)
Semáforos como uma ferramenta geral de
sincronização
 Semáforo de contagem: um valor inteiro que pode variar em um domínio irrestrito
 Semáforo binário: valor inteiro que só pode variar entre 0 e 1
 Também conhecido como bloqueio mutex
 Garante exclusão mútua
Implementação de Semáforos
 É preciso garantir que dois processos não possam
executar wait () e signal () em um mesmo semáforo ao
mesmo tempo
 Portanto, o có digo das operações wait e signal se torna
parte da seção crítica
 Poderíamos então ter agora espera ocupada na
implementaç ão da seç ão crítica
 Note que algumas aplicaç ões podem gastar bastante
tempo em suas seç ões críticas portanto estánão é
uma boa soluç ão
Implementação de Semáforos sem espera
ocupada
 Associar uma fila de espera a cada semáforo
 Cada entrada na fila tem dois itens:
 valor (inteiro)
 ponteiro para o pró ximo registro na fila
 Duas operaç ões:
 block: coloca o processo invocando a operaç ão na
fila de espera apropriada.
 wakeup: remove um dos processos da fila de espera
e o coloca na fila de prontos
Implementação de Semáforos sem espera
ocupada
Deadlock e Starvation
 Deadlock: dois ou mais processo esperam indefinidamente
por um evento que só pode ser causado por um dos
processos em espera
 Sejam S e Q dois semáforos inicializados com 1
 Starvation: bloqueio indefinido – um processo pode nunca ser
removido da fila de espera de um semáforo na qual ele está
bloqueado
 Inversão de prioridade: Problema de escalonamento que
ocorre quando um processo de baixa prioridade bloqueia um
processo de prioridade mais alta
Problemas clássicos de sincronização
 Problema do Buffer Limitado
 Problema dos Leitores e Escritos
 Problema do Jantar dos Filó sofos
Problema do buffer limitado
 N buffers, cada um pode armazenar um item
 Semáforo mutex inicializado com 1
 Semáforo full inicializado com 0
 Semáforo empty inicializado com N
Problema do buffer limitado:
Produtor
Problema do buffer limitado:
Consumidor
Problema dos leitores e escritores
 Um conjunto de dados é compartilhado entre um número de
processos concorrentes
 Leitores – apenas leem os dados, não fazem qualquer atualizaç ão
 Escritores – podem tanto ler quanto atualizar os dados
 Problema
 Permitir que múltiplos leitores possam acessar os dados ao mesmo
tempo.
 Permitir que apenas um escrito tenha acesso aos dados compartilhados
em um determinado momento
 Dados compartilhados
 Conjunto de dados
 Semáforo mutex inicializado com 1
 Semáforo wrt inicializado com 1
 Contador inteiro readcount inicializado com 0
Problema dos leitores e escritores:
Escritor
Problema dos leitores e escritores:
Leitor
O problema do jantar dos filósofos
O problema do jantar dos filósofos
Problemas com semáforos
 Uso correto das operaç ões com semáforos
 signal (mutex) …. wait (mutex)
 wait (mutex) … wait (mutex)
 Esquecer um wait (mutex) ou um signal (mutex)
(ou ambos)
Monitores
 Uma abstraç ão de alto
nível que fornece um
mecanismo mais
conveniente para
sincronizaç ão de
processos
 Apenas um processo
pode estar ativo em um
monitor a cada momento
Visão esquemática de um monitor
Variáveis condicionais
 condition x, y;
 Duas operaç ões em uma variável condicional
 x.wait () – um processo que invoca a operaç ão é
suspenso.
 x.signal () – reinicia um processo que tenha
invocado um x.wait ()
Monitor com variáveis condicionais
Solução para o problema do jantar dos filósofos
Solução para o problema do jantar dos
filósofos
 Cada filó sofo invoca as operaç ões pickup()
e putdown() na seguinte ordem:

Mais conteúdo relacionado

Mais procurados

Escalonamento de processos
Escalonamento de processosEscalonamento de processos
Escalonamento de processos
Rodrigo Rodrigues
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas Operacionais
Daniel Paz de Araújo
 
Virtualização
VirtualizaçãoVirtualização
Virtualização
Wellington Oliveira
 
SO-05 Gerenciamento de Memória e Alocação
SO-05 Gerenciamento de Memória e AlocaçãoSO-05 Gerenciamento de Memória e Alocação
SO-05 Gerenciamento de Memória e Alocação
Eduardo Nicola F. Zagari
 
Hierarquia de níveis
Hierarquia de níveisHierarquia de níveis
Hierarquia de níveis
Elaine Cecília Gatto
 
Sistemas Operacionais - Aula 04 - Prática 1 - (SOSim)
Sistemas Operacionais - Aula 04 - Prática 1 - (SOSim)Sistemas Operacionais - Aula 04 - Prática 1 - (SOSim)
Sistemas Operacionais - Aula 04 - Prática 1 - (SOSim)
Leinylson Fontinele
 
Sistemas de Arquivos do Windows
Sistemas de Arquivos do WindowsSistemas de Arquivos do Windows
Sistemas de Arquivos do Windows
Joeldson Costa Damasceno
 
Visão Geral: Estruturas do Sistema Operacional
Visão Geral: Estruturas do Sistema OperacionalVisão Geral: Estruturas do Sistema Operacional
Visão Geral: Estruturas do Sistema Operacional
Alexandre Duarte
 
Sistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
Sistemas Operacionais Processos e Threads - Wellington Pinto de OliveiraSistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
Sistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
Wellington Oliveira
 
SISTEMAS OPERACIOANIS 20.01.2023.pptx
SISTEMAS OPERACIOANIS 20.01.2023.pptxSISTEMAS OPERACIOANIS 20.01.2023.pptx
SISTEMAS OPERACIOANIS 20.01.2023.pptx
ADASVIEIRAArmazmPara
 
Aula 5a - Sistemas Operacionais
Aula 5a - Sistemas OperacionaisAula 5a - Sistemas Operacionais
Aula 5a - Sistemas Operacionais
Jocelma Rios
 
Gerência de Processos: Processos
Gerência de Processos: ProcessosGerência de Processos: Processos
Gerência de Processos: Processos
Alexandre Duarte
 
Sistemas operativos 10º
Sistemas operativos 10ºSistemas operativos 10º
Sistemas operativos 10º
teacherpereira
 
Sistemas Operacionais Modernos - Gerenciamento de Memória
Sistemas Operacionais Modernos - Gerenciamento de MemóriaSistemas Operacionais Modernos - Gerenciamento de Memória
Sistemas Operacionais Modernos - Gerenciamento de Memória
Wellington Oliveira
 
Aula 1: Virtualização
Aula 1: VirtualizaçãoAula 1: Virtualização
Aula 1: Virtualização
camila_seixas
 
Gerência de processos
Gerência de processosGerência de processos
Gerência de processos
Virgínia
 
SO-04 Escalonamento de Processos
SO-04 Escalonamento de ProcessosSO-04 Escalonamento de Processos
SO-04 Escalonamento de Processos
Eduardo Nicola F. Zagari
 
Virtualização - O Futuro é na NUVEM
Virtualização - O Futuro é na NUVEMVirtualização - O Futuro é na NUVEM
Virtualização - O Futuro é na NUVEM
Rodrigo Felipe Betussi
 
2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos
2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos
2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos
Computação Depressão
 
Introdução aos Sistemas Operativos
Introdução aos Sistemas OperativosIntrodução aos Sistemas Operativos
Introdução aos Sistemas Operativos
Jorge Louro
 

Mais procurados (20)

Escalonamento de processos
Escalonamento de processosEscalonamento de processos
Escalonamento de processos
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas Operacionais
 
Virtualização
VirtualizaçãoVirtualização
Virtualização
 
SO-05 Gerenciamento de Memória e Alocação
SO-05 Gerenciamento de Memória e AlocaçãoSO-05 Gerenciamento de Memória e Alocação
SO-05 Gerenciamento de Memória e Alocação
 
Hierarquia de níveis
Hierarquia de níveisHierarquia de níveis
Hierarquia de níveis
 
Sistemas Operacionais - Aula 04 - Prática 1 - (SOSim)
Sistemas Operacionais - Aula 04 - Prática 1 - (SOSim)Sistemas Operacionais - Aula 04 - Prática 1 - (SOSim)
Sistemas Operacionais - Aula 04 - Prática 1 - (SOSim)
 
Sistemas de Arquivos do Windows
Sistemas de Arquivos do WindowsSistemas de Arquivos do Windows
Sistemas de Arquivos do Windows
 
Visão Geral: Estruturas do Sistema Operacional
Visão Geral: Estruturas do Sistema OperacionalVisão Geral: Estruturas do Sistema Operacional
Visão Geral: Estruturas do Sistema Operacional
 
Sistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
Sistemas Operacionais Processos e Threads - Wellington Pinto de OliveiraSistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
Sistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
 
SISTEMAS OPERACIOANIS 20.01.2023.pptx
SISTEMAS OPERACIOANIS 20.01.2023.pptxSISTEMAS OPERACIOANIS 20.01.2023.pptx
SISTEMAS OPERACIOANIS 20.01.2023.pptx
 
Aula 5a - Sistemas Operacionais
Aula 5a - Sistemas OperacionaisAula 5a - Sistemas Operacionais
Aula 5a - Sistemas Operacionais
 
Gerência de Processos: Processos
Gerência de Processos: ProcessosGerência de Processos: Processos
Gerência de Processos: Processos
 
Sistemas operativos 10º
Sistemas operativos 10ºSistemas operativos 10º
Sistemas operativos 10º
 
Sistemas Operacionais Modernos - Gerenciamento de Memória
Sistemas Operacionais Modernos - Gerenciamento de MemóriaSistemas Operacionais Modernos - Gerenciamento de Memória
Sistemas Operacionais Modernos - Gerenciamento de Memória
 
Aula 1: Virtualização
Aula 1: VirtualizaçãoAula 1: Virtualização
Aula 1: Virtualização
 
Gerência de processos
Gerência de processosGerência de processos
Gerência de processos
 
SO-04 Escalonamento de Processos
SO-04 Escalonamento de ProcessosSO-04 Escalonamento de Processos
SO-04 Escalonamento de Processos
 
Virtualização - O Futuro é na NUVEM
Virtualização - O Futuro é na NUVEMVirtualização - O Futuro é na NUVEM
Virtualização - O Futuro é na NUVEM
 
2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos
2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos
2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos
 
Introdução aos Sistemas Operativos
Introdução aos Sistemas OperativosIntrodução aos Sistemas Operativos
Introdução aos Sistemas Operativos
 

Destaque

Gerência de Armazenamento: Interface do Sistema de Arquivos
Gerência de Armazenamento: Interface do Sistema de ArquivosGerência de Armazenamento: Interface do Sistema de Arquivos
Gerência de Armazenamento: Interface do Sistema de Arquivos
Alexandre Duarte
 
Gerência de Armazenamento: Sistemas de Armazenamento em Massa
Gerência de Armazenamento: Sistemas de Armazenamento em MassaGerência de Armazenamento: Sistemas de Armazenamento em Massa
Gerência de Armazenamento: Sistemas de Armazenamento em Massa
Alexandre Duarte
 
Gerência de Memória: Memória Virtual
Gerência de Memória: Memória VirtualGerência de Memória: Memória Virtual
Gerência de Memória: Memória Virtual
Alexandre Duarte
 
2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos
2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos
2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos
Computação Depressão
 
Gerência de Armazenamento: Implementação do Sistema de Arquivos
Gerência de Armazenamento: Implementação do Sistema de ArquivosGerência de Armazenamento: Implementação do Sistema de Arquivos
Gerência de Armazenamento: Implementação do Sistema de Arquivos
Alexandre Duarte
 
Gerência de Processos: Deadlocks
Gerência de Processos: DeadlocksGerência de Processos: Deadlocks
Gerência de Processos: Deadlocks
Alexandre Duarte
 
Processos e threads cap 02 (i unidade)
Processos e threads   cap 02 (i unidade)Processos e threads   cap 02 (i unidade)
Processos e threads cap 02 (i unidade)
Faculdade Mater Christi
 
Condições de corrida e regiões críticas
Condições de corrida e regiões críticasCondições de corrida e regiões críticas
Condições de corrida e regiões críticas
Beatriz Rodrigues
 
Gerência de Memória: Memória Principal
Gerência de Memória: Memória PrincipalGerência de Memória: Memória Principal
Gerência de Memória: Memória Principal
Alexandre Duarte
 

Destaque (9)

Gerência de Armazenamento: Interface do Sistema de Arquivos
Gerência de Armazenamento: Interface do Sistema de ArquivosGerência de Armazenamento: Interface do Sistema de Arquivos
Gerência de Armazenamento: Interface do Sistema de Arquivos
 
Gerência de Armazenamento: Sistemas de Armazenamento em Massa
Gerência de Armazenamento: Sistemas de Armazenamento em MassaGerência de Armazenamento: Sistemas de Armazenamento em Massa
Gerência de Armazenamento: Sistemas de Armazenamento em Massa
 
Gerência de Memória: Memória Virtual
Gerência de Memória: Memória VirtualGerência de Memória: Memória Virtual
Gerência de Memória: Memória Virtual
 
2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos
2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos
2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos
 
Gerência de Armazenamento: Implementação do Sistema de Arquivos
Gerência de Armazenamento: Implementação do Sistema de ArquivosGerência de Armazenamento: Implementação do Sistema de Arquivos
Gerência de Armazenamento: Implementação do Sistema de Arquivos
 
Gerência de Processos: Deadlocks
Gerência de Processos: DeadlocksGerência de Processos: Deadlocks
Gerência de Processos: Deadlocks
 
Processos e threads cap 02 (i unidade)
Processos e threads   cap 02 (i unidade)Processos e threads   cap 02 (i unidade)
Processos e threads cap 02 (i unidade)
 
Condições de corrida e regiões críticas
Condições de corrida e regiões críticasCondições de corrida e regiões críticas
Condições de corrida e regiões críticas
 
Gerência de Memória: Memória Principal
Gerência de Memória: Memória PrincipalGerência de Memória: Memória Principal
Gerência de Memória: Memória Principal
 

Semelhante a Gerências de Processos: Sincronização

Regiões críticas dos Sistemas Operacionais
Regiões críticas dos Sistemas OperacionaisRegiões críticas dos Sistemas Operacionais
Regiões críticas dos Sistemas Operacionais
Abadia Cardoso
 
Introdução a tdd
Introdução a tddIntrodução a tdd
Introdução a tdd
Fabrício Vargas Matos
 
Atps sistemas operacionais
Atps sistemas operacionaisAtps sistemas operacionais
Atps sistemas operacionais
TIAGO SAMPOGNA DE MORAES
 
gabarito.pdf
gabarito.pdfgabarito.pdf
gabarito.pdf
FabioMarian
 
Processos
ProcessosProcessos
Sistemas de controle de versão
Sistemas de controle de versãoSistemas de controle de versão
Sistemas de controle de versão
Marcos Pessoa
 
GOTEST-Aula3-Automacao-Processo-Testes.pdf
GOTEST-Aula3-Automacao-Processo-Testes.pdfGOTEST-Aula3-Automacao-Processo-Testes.pdf
GOTEST-Aula3-Automacao-Processo-Testes.pdf
RodolphoCesar2
 
Unit Testing
Unit TestingUnit Testing
Unit Testing
Robson Agapito Correa
 
Algoritmo lamport
Algoritmo lamportAlgoritmo lamport
Algoritmo lamport
Verônica Veiga
 
Apresentação do artigo THREADS: O PROBLEMA DOS LEITORES E ESCRITORES IMPLEMEN...
Apresentação do artigo THREADS: O PROBLEMA DOS LEITORES E ESCRITORES IMPLEMEN...Apresentação do artigo THREADS: O PROBLEMA DOS LEITORES E ESCRITORES IMPLEMEN...
Apresentação do artigo THREADS: O PROBLEMA DOS LEITORES E ESCRITORES IMPLEMEN...
rafaelov
 
Test-Driven Development (TDD) utilizando o framework xUnit.net
Test-Driven Development (TDD) utilizando o framework xUnit.netTest-Driven Development (TDD) utilizando o framework xUnit.net
Test-Driven Development (TDD) utilizando o framework xUnit.net
Renato Groff
 
S.o aula 1920
S.o aula 1920S.o aula 1920
S.o aula 1920
Armando Rivarola
 
Estudo sistemas operacionais p2
Estudo sistemas operacionais  p2Estudo sistemas operacionais  p2
Estudo sistemas operacionais p2
Gustavo Souza
 
BDD (Behavior-Driven Development)
BDD (Behavior-Driven Development)BDD (Behavior-Driven Development)
BDD (Behavior-Driven Development)
Renato Groff
 
Barbeiro Sonolento
Barbeiro SonolentoBarbeiro Sonolento
Barbeiro Sonolento
Thiago Marinho
 
BDD (Behavior-Driven Development) - Setembro/2015
BDD (Behavior-Driven Development) - Setembro/2015BDD (Behavior-Driven Development) - Setembro/2015
BDD (Behavior-Driven Development) - Setembro/2015
Renato Groff
 
Apresentação Semáforos, monitores, troca de mensagens, Deadlock
Apresentação Semáforos, monitores, troca de mensagens, DeadlockApresentação Semáforos, monitores, troca de mensagens, Deadlock
Apresentação Semáforos, monitores, troca de mensagens, Deadlock
Williams Gomes da Silva
 
Lamport
LamportLamport
Controle de versão
Controle de versãoControle de versão
Controle de versão
Zé Pereira
 
(ACH2044) Sistemas Operacionais - Aula 10
(ACH2044) Sistemas Operacionais - Aula 10(ACH2044) Sistemas Operacionais - Aula 10
(ACH2044) Sistemas Operacionais - Aula 10
Norton Trevisan Roman
 

Semelhante a Gerências de Processos: Sincronização (20)

Regiões críticas dos Sistemas Operacionais
Regiões críticas dos Sistemas OperacionaisRegiões críticas dos Sistemas Operacionais
Regiões críticas dos Sistemas Operacionais
 
Introdução a tdd
Introdução a tddIntrodução a tdd
Introdução a tdd
 
Atps sistemas operacionais
Atps sistemas operacionaisAtps sistemas operacionais
Atps sistemas operacionais
 
gabarito.pdf
gabarito.pdfgabarito.pdf
gabarito.pdf
 
Processos
ProcessosProcessos
Processos
 
Sistemas de controle de versão
Sistemas de controle de versãoSistemas de controle de versão
Sistemas de controle de versão
 
GOTEST-Aula3-Automacao-Processo-Testes.pdf
GOTEST-Aula3-Automacao-Processo-Testes.pdfGOTEST-Aula3-Automacao-Processo-Testes.pdf
GOTEST-Aula3-Automacao-Processo-Testes.pdf
 
Unit Testing
Unit TestingUnit Testing
Unit Testing
 
Algoritmo lamport
Algoritmo lamportAlgoritmo lamport
Algoritmo lamport
 
Apresentação do artigo THREADS: O PROBLEMA DOS LEITORES E ESCRITORES IMPLEMEN...
Apresentação do artigo THREADS: O PROBLEMA DOS LEITORES E ESCRITORES IMPLEMEN...Apresentação do artigo THREADS: O PROBLEMA DOS LEITORES E ESCRITORES IMPLEMEN...
Apresentação do artigo THREADS: O PROBLEMA DOS LEITORES E ESCRITORES IMPLEMEN...
 
Test-Driven Development (TDD) utilizando o framework xUnit.net
Test-Driven Development (TDD) utilizando o framework xUnit.netTest-Driven Development (TDD) utilizando o framework xUnit.net
Test-Driven Development (TDD) utilizando o framework xUnit.net
 
S.o aula 1920
S.o aula 1920S.o aula 1920
S.o aula 1920
 
Estudo sistemas operacionais p2
Estudo sistemas operacionais  p2Estudo sistemas operacionais  p2
Estudo sistemas operacionais p2
 
BDD (Behavior-Driven Development)
BDD (Behavior-Driven Development)BDD (Behavior-Driven Development)
BDD (Behavior-Driven Development)
 
Barbeiro Sonolento
Barbeiro SonolentoBarbeiro Sonolento
Barbeiro Sonolento
 
BDD (Behavior-Driven Development) - Setembro/2015
BDD (Behavior-Driven Development) - Setembro/2015BDD (Behavior-Driven Development) - Setembro/2015
BDD (Behavior-Driven Development) - Setembro/2015
 
Apresentação Semáforos, monitores, troca de mensagens, Deadlock
Apresentação Semáforos, monitores, troca de mensagens, DeadlockApresentação Semáforos, monitores, troca de mensagens, Deadlock
Apresentação Semáforos, monitores, troca de mensagens, Deadlock
 
Lamport
LamportLamport
Lamport
 
Controle de versão
Controle de versãoControle de versão
Controle de versão
 
(ACH2044) Sistemas Operacionais - Aula 10
(ACH2044) Sistemas Operacionais - Aula 10(ACH2044) Sistemas Operacionais - Aula 10
(ACH2044) Sistemas Operacionais - Aula 10
 

Mais de Alexandre Duarte

Projeto de Experimentos
Projeto de ExperimentosProjeto de Experimentos
Projeto de Experimentos
Alexandre Duarte
 
Táticas para Projeto de Experimentos
Táticas para Projeto de ExperimentosTáticas para Projeto de Experimentos
Táticas para Projeto de Experimentos
Alexandre Duarte
 
Causalidade e Abdução
Causalidade e AbduçãoCausalidade e Abdução
Causalidade e Abdução
Alexandre Duarte
 
Fazer Ciência é Difícil!
Fazer Ciência é Difícil!Fazer Ciência é Difícil!
Fazer Ciência é Difícil!
Alexandre Duarte
 
Atividades Científica
Atividades CientíficaAtividades Científica
Atividades Científica
Alexandre Duarte
 
Escolhendo um Projeto de Pesquisa
Escolhendo um Projeto de PesquisaEscolhendo um Projeto de Pesquisa
Escolhendo um Projeto de Pesquisa
Alexandre Duarte
 
Ciência da Computação como Ciência
Ciência da Computação como CiênciaCiência da Computação como Ciência
Ciência da Computação como Ciência
Alexandre Duarte
 
Metodologia da Pesquisa Científica: Introdução
Metodologia da Pesquisa Científica:  IntroduçãoMetodologia da Pesquisa Científica:  Introdução
Metodologia da Pesquisa Científica: Introdução
Alexandre Duarte
 
Gráficos: 10 dicas sobre o que fazer e sobre o que não fazer
Gráficos: 10 dicas sobre o que fazer e sobre o que não fazerGráficos: 10 dicas sobre o que fazer e sobre o que não fazer
Gráficos: 10 dicas sobre o que fazer e sobre o que não fazer
Alexandre Duarte
 
Panorama de Pesquisas em Análise de Dados na UFPB
Panorama de Pesquisas em Análise de Dados na UFPBPanorama de Pesquisas em Análise de Dados na UFPB
Panorama de Pesquisas em Análise de Dados na UFPB
Alexandre Duarte
 
Agrupamento com K-Means
Agrupamento com K-MeansAgrupamento com K-Means
Agrupamento com K-Means
Alexandre Duarte
 
Sumarização Estatística 2D: Variáveis Nominais
Sumarização Estatística 2D: Variáveis NominaisSumarização Estatística 2D: Variáveis Nominais
Sumarização Estatística 2D: Variáveis Nominais
Alexandre Duarte
 
Correlação e Classificação
Correlação e ClassificaçãoCorrelação e Classificação
Correlação e Classificação
Alexandre Duarte
 
Sumarização Estatística 2D
Sumarização Estatística 2DSumarização Estatística 2D
Sumarização Estatística 2D
Alexandre Duarte
 
Sumarização Estatística 1D
Sumarização Estatística 1DSumarização Estatística 1D
Sumarização Estatística 1D
Alexandre Duarte
 
Transformação de Dados
Transformação de DadosTransformação de Dados
Transformação de Dados
Alexandre Duarte
 
Preparação e Limpeza de Dados
Preparação e Limpeza de DadosPreparação e Limpeza de Dados
Preparação e Limpeza de Dados
Alexandre Duarte
 
Introdução ao Projeto de Experimentos
Introdução ao Projeto de ExperimentosIntrodução ao Projeto de Experimentos
Introdução ao Projeto de Experimentos
Alexandre Duarte
 
Introdução ao Projeto de Surveys
Introdução ao Projeto de SurveysIntrodução ao Projeto de Surveys
Introdução ao Projeto de Surveys
Alexandre Duarte
 
Introdução à Análise de Dados - Aula 01
Introdução à Análise de Dados - Aula 01Introdução à Análise de Dados - Aula 01
Introdução à Análise de Dados - Aula 01
Alexandre Duarte
 

Mais de Alexandre Duarte (20)

Projeto de Experimentos
Projeto de ExperimentosProjeto de Experimentos
Projeto de Experimentos
 
Táticas para Projeto de Experimentos
Táticas para Projeto de ExperimentosTáticas para Projeto de Experimentos
Táticas para Projeto de Experimentos
 
Causalidade e Abdução
Causalidade e AbduçãoCausalidade e Abdução
Causalidade e Abdução
 
Fazer Ciência é Difícil!
Fazer Ciência é Difícil!Fazer Ciência é Difícil!
Fazer Ciência é Difícil!
 
Atividades Científica
Atividades CientíficaAtividades Científica
Atividades Científica
 
Escolhendo um Projeto de Pesquisa
Escolhendo um Projeto de PesquisaEscolhendo um Projeto de Pesquisa
Escolhendo um Projeto de Pesquisa
 
Ciência da Computação como Ciência
Ciência da Computação como CiênciaCiência da Computação como Ciência
Ciência da Computação como Ciência
 
Metodologia da Pesquisa Científica: Introdução
Metodologia da Pesquisa Científica:  IntroduçãoMetodologia da Pesquisa Científica:  Introdução
Metodologia da Pesquisa Científica: Introdução
 
Gráficos: 10 dicas sobre o que fazer e sobre o que não fazer
Gráficos: 10 dicas sobre o que fazer e sobre o que não fazerGráficos: 10 dicas sobre o que fazer e sobre o que não fazer
Gráficos: 10 dicas sobre o que fazer e sobre o que não fazer
 
Panorama de Pesquisas em Análise de Dados na UFPB
Panorama de Pesquisas em Análise de Dados na UFPBPanorama de Pesquisas em Análise de Dados na UFPB
Panorama de Pesquisas em Análise de Dados na UFPB
 
Agrupamento com K-Means
Agrupamento com K-MeansAgrupamento com K-Means
Agrupamento com K-Means
 
Sumarização Estatística 2D: Variáveis Nominais
Sumarização Estatística 2D: Variáveis NominaisSumarização Estatística 2D: Variáveis Nominais
Sumarização Estatística 2D: Variáveis Nominais
 
Correlação e Classificação
Correlação e ClassificaçãoCorrelação e Classificação
Correlação e Classificação
 
Sumarização Estatística 2D
Sumarização Estatística 2DSumarização Estatística 2D
Sumarização Estatística 2D
 
Sumarização Estatística 1D
Sumarização Estatística 1DSumarização Estatística 1D
Sumarização Estatística 1D
 
Transformação de Dados
Transformação de DadosTransformação de Dados
Transformação de Dados
 
Preparação e Limpeza de Dados
Preparação e Limpeza de DadosPreparação e Limpeza de Dados
Preparação e Limpeza de Dados
 
Introdução ao Projeto de Experimentos
Introdução ao Projeto de ExperimentosIntrodução ao Projeto de Experimentos
Introdução ao Projeto de Experimentos
 
Introdução ao Projeto de Surveys
Introdução ao Projeto de SurveysIntrodução ao Projeto de Surveys
Introdução ao Projeto de Surveys
 
Introdução à Análise de Dados - Aula 01
Introdução à Análise de Dados - Aula 01Introdução à Análise de Dados - Aula 01
Introdução à Análise de Dados - Aula 01
 

Último

PowerPoint Newton gostava de Ler - Saber em Gel.pdf
PowerPoint Newton gostava de Ler - Saber em Gel.pdfPowerPoint Newton gostava de Ler - Saber em Gel.pdf
PowerPoint Newton gostava de Ler - Saber em Gel.pdf
1000a
 
Estrutura Pedagógica - Laboratório de Educação a Distância.ppt
Estrutura Pedagógica - Laboratório de Educação a Distância.pptEstrutura Pedagógica - Laboratório de Educação a Distância.ppt
Estrutura Pedagógica - Laboratório de Educação a Distância.ppt
livrosjovert
 
“A classe operária vai ao paraíso os modos de produzir e trabalhar ao longo ...
“A classe operária vai ao paraíso  os modos de produzir e trabalhar ao longo ...“A classe operária vai ao paraíso  os modos de produzir e trabalhar ao longo ...
“A classe operária vai ao paraíso os modos de produzir e trabalhar ao longo ...
AdrianoMontagna1
 
Caça-palavras - ortografia S, SS, X, C e Z
Caça-palavras - ortografia  S, SS, X, C e ZCaça-palavras - ortografia  S, SS, X, C e Z
Caça-palavras - ortografia S, SS, X, C e Z
Mary Alvarenga
 
Especialidade - Animais Ameaçados de Extinção(1).pdf
Especialidade - Animais Ameaçados de Extinção(1).pdfEspecialidade - Animais Ameaçados de Extinção(1).pdf
Especialidade - Animais Ameaçados de Extinção(1).pdf
DanielCastro80471
 
Atividades de Inglês e Espanhol para Imprimir - Alfabetinho
Atividades de Inglês e Espanhol para Imprimir - AlfabetinhoAtividades de Inglês e Espanhol para Imprimir - Alfabetinho
Atividades de Inglês e Espanhol para Imprimir - Alfabetinho
MateusTavares54
 
Pintura Romana .pptx
Pintura Romana                     .pptxPintura Romana                     .pptx
Pintura Romana .pptx
TomasSousa7
 
educação inclusiva na atualidade como ela se estabelece atualmente
educação inclusiva na atualidade como ela se estabelece atualmenteeducação inclusiva na atualidade como ela se estabelece atualmente
educação inclusiva na atualidade como ela se estabelece atualmente
DeuzinhaAzevedo
 
Folheto | Centro de Informação Europeia Jacques Delors (junho/2024)
Folheto | Centro de Informação Europeia Jacques Delors (junho/2024)Folheto | Centro de Informação Europeia Jacques Delors (junho/2024)
Folheto | Centro de Informação Europeia Jacques Delors (junho/2024)
Centro Jacques Delors
 
Slides Lição 10, Central Gospel, A Batalha Do Armagedom, 1Tr24.pptx
Slides Lição 10, Central Gospel, A Batalha Do Armagedom, 1Tr24.pptxSlides Lição 10, Central Gospel, A Batalha Do Armagedom, 1Tr24.pptx
Slides Lição 10, Central Gospel, A Batalha Do Armagedom, 1Tr24.pptx
LuizHenriquedeAlmeid6
 
Famílias Que Contribuíram Para O Crescimento Do Assaré
Famílias Que Contribuíram Para O Crescimento Do AssaréFamílias Que Contribuíram Para O Crescimento Do Assaré
Famílias Que Contribuíram Para O Crescimento Do Assaré
profesfrancleite
 
.Template .padrao .slides .TCC .2024 ppt
.Template .padrao .slides .TCC .2024 ppt.Template .padrao .slides .TCC .2024 ppt
.Template .padrao .slides .TCC .2024 ppt
IslanderAndrade
 
Funções e Progressões - Livro completo prisma
Funções e Progressões - Livro completo prismaFunções e Progressões - Livro completo prisma
Funções e Progressões - Livro completo prisma
djincognito
 
347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf
347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf
347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf
AntnioManuelAgdoma
 
Rimas, Luís Vaz de Camões. pptx
Rimas, Luís Vaz de Camões.          pptxRimas, Luís Vaz de Camões.          pptx
Rimas, Luís Vaz de Camões. pptx
TomasSousa7
 
Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...
Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...
Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...
Biblioteca UCS
 
0002_matematica_6ano livro de matemática
0002_matematica_6ano livro de matemática0002_matematica_6ano livro de matemática
0002_matematica_6ano livro de matemática
Giovana Gomes da Silva
 
Leonardo da Vinci .pptx
Leonardo da Vinci                  .pptxLeonardo da Vinci                  .pptx
Leonardo da Vinci .pptx
TomasSousa7
 
Egito antigo resumo - aula de história.pdf
Egito antigo resumo - aula de história.pdfEgito antigo resumo - aula de história.pdf
Egito antigo resumo - aula de história.pdf
sthefanydesr
 
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdfAPOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
RenanSilva991968
 

Último (20)

PowerPoint Newton gostava de Ler - Saber em Gel.pdf
PowerPoint Newton gostava de Ler - Saber em Gel.pdfPowerPoint Newton gostava de Ler - Saber em Gel.pdf
PowerPoint Newton gostava de Ler - Saber em Gel.pdf
 
Estrutura Pedagógica - Laboratório de Educação a Distância.ppt
Estrutura Pedagógica - Laboratório de Educação a Distância.pptEstrutura Pedagógica - Laboratório de Educação a Distância.ppt
Estrutura Pedagógica - Laboratório de Educação a Distância.ppt
 
“A classe operária vai ao paraíso os modos de produzir e trabalhar ao longo ...
“A classe operária vai ao paraíso  os modos de produzir e trabalhar ao longo ...“A classe operária vai ao paraíso  os modos de produzir e trabalhar ao longo ...
“A classe operária vai ao paraíso os modos de produzir e trabalhar ao longo ...
 
Caça-palavras - ortografia S, SS, X, C e Z
Caça-palavras - ortografia  S, SS, X, C e ZCaça-palavras - ortografia  S, SS, X, C e Z
Caça-palavras - ortografia S, SS, X, C e Z
 
Especialidade - Animais Ameaçados de Extinção(1).pdf
Especialidade - Animais Ameaçados de Extinção(1).pdfEspecialidade - Animais Ameaçados de Extinção(1).pdf
Especialidade - Animais Ameaçados de Extinção(1).pdf
 
Atividades de Inglês e Espanhol para Imprimir - Alfabetinho
Atividades de Inglês e Espanhol para Imprimir - AlfabetinhoAtividades de Inglês e Espanhol para Imprimir - Alfabetinho
Atividades de Inglês e Espanhol para Imprimir - Alfabetinho
 
Pintura Romana .pptx
Pintura Romana                     .pptxPintura Romana                     .pptx
Pintura Romana .pptx
 
educação inclusiva na atualidade como ela se estabelece atualmente
educação inclusiva na atualidade como ela se estabelece atualmenteeducação inclusiva na atualidade como ela se estabelece atualmente
educação inclusiva na atualidade como ela se estabelece atualmente
 
Folheto | Centro de Informação Europeia Jacques Delors (junho/2024)
Folheto | Centro de Informação Europeia Jacques Delors (junho/2024)Folheto | Centro de Informação Europeia Jacques Delors (junho/2024)
Folheto | Centro de Informação Europeia Jacques Delors (junho/2024)
 
Slides Lição 10, Central Gospel, A Batalha Do Armagedom, 1Tr24.pptx
Slides Lição 10, Central Gospel, A Batalha Do Armagedom, 1Tr24.pptxSlides Lição 10, Central Gospel, A Batalha Do Armagedom, 1Tr24.pptx
Slides Lição 10, Central Gospel, A Batalha Do Armagedom, 1Tr24.pptx
 
Famílias Que Contribuíram Para O Crescimento Do Assaré
Famílias Que Contribuíram Para O Crescimento Do AssaréFamílias Que Contribuíram Para O Crescimento Do Assaré
Famílias Que Contribuíram Para O Crescimento Do Assaré
 
.Template .padrao .slides .TCC .2024 ppt
.Template .padrao .slides .TCC .2024 ppt.Template .padrao .slides .TCC .2024 ppt
.Template .padrao .slides .TCC .2024 ppt
 
Funções e Progressões - Livro completo prisma
Funções e Progressões - Livro completo prismaFunções e Progressões - Livro completo prisma
Funções e Progressões - Livro completo prisma
 
347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf
347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf
347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf
 
Rimas, Luís Vaz de Camões. pptx
Rimas, Luís Vaz de Camões.          pptxRimas, Luís Vaz de Camões.          pptx
Rimas, Luís Vaz de Camões. pptx
 
Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...
Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...
Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...
 
0002_matematica_6ano livro de matemática
0002_matematica_6ano livro de matemática0002_matematica_6ano livro de matemática
0002_matematica_6ano livro de matemática
 
Leonardo da Vinci .pptx
Leonardo da Vinci                  .pptxLeonardo da Vinci                  .pptx
Leonardo da Vinci .pptx
 
Egito antigo resumo - aula de história.pdf
Egito antigo resumo - aula de história.pdfEgito antigo resumo - aula de história.pdf
Egito antigo resumo - aula de história.pdf
 
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdfAPOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
 

Gerências de Processos: Sincronização

  • 1. Sistemas Operacionais I Gerências de Processos: Sincronização Prof. Alexandre Duarte : http://alexandrend.com Centro de Informática | Universidade Federal da Paraíba Estes slides são baseados no material que acompanha o livro Operating Systems Concepts de Silberschatz, Galvin and Gagne
  • 2. Objetivos  Introduzir o problema da seç ão críticas, cujas soluç ões podem ser utilizadas para garantir consistência no acesso a dados compartilhados  Apresentar soluç ões em software e hardware para o problema da seç ão crítica  Introduzir o conceito de transaç ão atô mica e descrever os mecanismos utilizados para garantir atomicidade
  • 3. Antecendentes  Acesso concorrente a dados compartilhados pode resultar em inconsistência nos dados  Para manter a consistência dos dados precisamos de mecanismos para garantir ordem na execuç ão de processos cooperativos
  • 4. Revisitando o problema do Produtor/ Consumidor  Suponha que desejamos alterar a soluç ão apresentada anteriormente para o problema do Produtor/Consumidor que preencha todas as posiç ões do buffer  Uma ideia seria utilizar uma variável inteira count para contar o número de posiç ões ocupadas no buffer.  Inicialmente count recebe 0 e é incrementado sempre que o produtor inserir algo no buffer e decrementado sempre que o consumidor remover algo do buffer.
  • 7. Condição de corrida count++ poderia ser implementado assim: count-- poderia ser implementado assim:
  • 9. O problema da seção crítica  Considere um sistema composto por n processo [P0, P1, ... , Pn]  Cada um desses processos tem um segmento de código denominado seção crítica em que o processo pode alterar variáveis compartilhadas  Para evitar inconsistências nos dados compartilhados é preciso garantir que dois desses processos jamais executarão ao mesmo tempo código de suas seções críticas  O problema da seção crítica consiste em elaborar um protocolo que possibilite a cooperação entre os processos e que garanta a consistência dos dados compartilhados
  • 10. Estrutura geral de um processo
  • 11. Requisitos de uma solução para o problema da seção crítica  Exclusão mútua: se o processo Pi estáexecutando có digo de sua seç ão crítica então nenhum outro processo pode estar executando có digo de suas seç ões críticas  Progresso: Se nenhum processo estiver executando sua seç ão crítica e alguns processos quiserem entrar em suas seç ões críticas, só os processos que não estiverem executando suas seç ões remanescentes poderão participar da decisão sobre qual processo seráo pró ximo a entrar em sua seç ão crítica e essa seleç ão não poderáser adiada indefinidamente  Espera limitada: Háum limite para o número de vezes que outros processos podem entrar em suas seç ões críticas apó s um processo ter feito uma solicitaç ão para entrar na sua seç ão crítica e ter essa solicitaç ão atendida  Pode-se presumir que cada processo execute em uma velocidade diferente de zero mas não se pode fazer qualquer suposiç ão sobre as velocidades relativas dos n processos
  • 12. Solução de Peterson  Utilizada apenas para pares de processos  Assume que as instruções LOAD e STORE são atô micas.  Os processos compartilham duas variáveis:  int turn;  boolean flag[2]  A variável turn indica de quem é a vez de entrar na seção crítica.  O array flag é utilizado para indicar se um processo está pronto ou não para entrar em sua seção crítica  flag[i] = true implica que o processo Pi estápronto!
  • 13. Algoritmo para o processo Pi
  • 14. Hardware de sincronização  Muitos sistemas oferecerem suporte em hardware para controle de acesso a seções críticas  Processador único: poderia desabilitar interrupções  O có digo atualmente em execuç ão não seria interrompido  Geralmente essa abordagem é muito ineficiente em sistemas com múltiplos núcleos/processadores  Um sistema operacional que funciona dessa forma não é escalável  Máquinas modernas oferecem instruções especiais de hardware com execução atô mica  Atô mica = não interrompível  Testar e modificar o conteúdo de uma palavra de memó ria  Trocar os conteúdos de duas palavras de memó ria
  • 15. Solução para o problema da seção crítica utilizando locks
  • 20. Exclusão mútua com espera limitada utilizando a operação TestAndSet()
  • 21. Semáforos  Ferramenta de sincronizaç ão baseada em duas operaç ões simples  Semaphore S – variável inteira  Duas operaç ões para modificar o semáforo S: wait() e signal()  Originalmente P() e V()  Só podem ser acessados através de duas operaç ões indivisíveis (atô micas)
  • 22. Semáforos como uma ferramenta geral de sincronização  Semáforo de contagem: um valor inteiro que pode variar em um domínio irrestrito  Semáforo binário: valor inteiro que só pode variar entre 0 e 1  Também conhecido como bloqueio mutex  Garante exclusão mútua
  • 23. Implementação de Semáforos  É preciso garantir que dois processos não possam executar wait () e signal () em um mesmo semáforo ao mesmo tempo  Portanto, o có digo das operações wait e signal se torna parte da seção crítica  Poderíamos então ter agora espera ocupada na implementaç ão da seç ão crítica  Note que algumas aplicaç ões podem gastar bastante tempo em suas seç ões críticas portanto estánão é uma boa soluç ão
  • 24. Implementação de Semáforos sem espera ocupada  Associar uma fila de espera a cada semáforo  Cada entrada na fila tem dois itens:  valor (inteiro)  ponteiro para o pró ximo registro na fila  Duas operaç ões:  block: coloca o processo invocando a operaç ão na fila de espera apropriada.  wakeup: remove um dos processos da fila de espera e o coloca na fila de prontos
  • 25. Implementação de Semáforos sem espera ocupada
  • 26. Deadlock e Starvation  Deadlock: dois ou mais processo esperam indefinidamente por um evento que só pode ser causado por um dos processos em espera  Sejam S e Q dois semáforos inicializados com 1  Starvation: bloqueio indefinido – um processo pode nunca ser removido da fila de espera de um semáforo na qual ele está bloqueado  Inversão de prioridade: Problema de escalonamento que ocorre quando um processo de baixa prioridade bloqueia um processo de prioridade mais alta
  • 27. Problemas clássicos de sincronização  Problema do Buffer Limitado  Problema dos Leitores e Escritos  Problema do Jantar dos Filó sofos
  • 28. Problema do buffer limitado  N buffers, cada um pode armazenar um item  Semáforo mutex inicializado com 1  Semáforo full inicializado com 0  Semáforo empty inicializado com N
  • 29. Problema do buffer limitado: Produtor
  • 30. Problema do buffer limitado: Consumidor
  • 31. Problema dos leitores e escritores  Um conjunto de dados é compartilhado entre um número de processos concorrentes  Leitores – apenas leem os dados, não fazem qualquer atualizaç ão  Escritores – podem tanto ler quanto atualizar os dados  Problema  Permitir que múltiplos leitores possam acessar os dados ao mesmo tempo.  Permitir que apenas um escrito tenha acesso aos dados compartilhados em um determinado momento  Dados compartilhados  Conjunto de dados  Semáforo mutex inicializado com 1  Semáforo wrt inicializado com 1  Contador inteiro readcount inicializado com 0
  • 32. Problema dos leitores e escritores: Escritor
  • 33. Problema dos leitores e escritores: Leitor
  • 34. O problema do jantar dos filósofos
  • 35. O problema do jantar dos filósofos
  • 36. Problemas com semáforos  Uso correto das operaç ões com semáforos  signal (mutex) …. wait (mutex)  wait (mutex) … wait (mutex)  Esquecer um wait (mutex) ou um signal (mutex) (ou ambos)
  • 37. Monitores  Uma abstraç ão de alto nível que fornece um mecanismo mais conveniente para sincronizaç ão de processos  Apenas um processo pode estar ativo em um monitor a cada momento
  • 39. Variáveis condicionais  condition x, y;  Duas operaç ões em uma variável condicional  x.wait () – um processo que invoca a operaç ão é suspenso.  x.signal () – reinicia um processo que tenha invocado um x.wait ()
  • 40. Monitor com variáveis condicionais
  • 41. Solução para o problema do jantar dos filósofos
  • 42. Solução para o problema do jantar dos filósofos  Cada filó sofo invoca as operaç ões pickup() e putdown() na seguinte ordem: