SlideShare ist ein Scribd-Unternehmen logo
1 von 42
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:

Weitere ähnliche Inhalte

Was ist angesagt?

Clasificación de los sistemas operativos por sus servicios
Clasificación de los sistemas operativos por sus serviciosClasificación de los sistemas operativos por sus servicios
Clasificación de los sistemas operativos por sus serviciosMarco Antonio
 
Resumo de S.O.
Resumo de S.O.Resumo de S.O.
Resumo de S.O.dannas_06
 
Aula 12 - Escalonamento
Aula 12 - EscalonamentoAula 12 - Escalonamento
Aula 12 - Escalonamentocamila_seixas
 
Arquitetura de-computadores
Arquitetura de-computadoresArquitetura de-computadores
Arquitetura de-computadoresPimentel
 
Sistemas operativos módulo2 - ms dos
Sistemas operativos   módulo2 -  ms dosSistemas operativos   módulo2 -  ms dos
Sistemas operativos módulo2 - ms dosteacherpereira
 
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 OperacionaisAbadia Cardoso
 
Aula 02-processos-e-threads-tanenbaum-parte-1
Aula 02-processos-e-threads-tanenbaum-parte-1Aula 02-processos-e-threads-tanenbaum-parte-1
Aula 02-processos-e-threads-tanenbaum-parte-1Cristiano Pires Martins
 
Sistemas Operativos - Processos e Threads
Sistemas Operativos - Processos e ThreadsSistemas Operativos - Processos e Threads
Sistemas Operativos - Processos e ThreadsPedro De Almeida
 
Sistemas Operacionais Modernos Capítulo 3 Deadlock
Sistemas Operacionais Modernos Capítulo 3 DeadlockSistemas Operacionais Modernos Capítulo 3 Deadlock
Sistemas Operacionais Modernos Capítulo 3 DeadlockWellington Oliveira
 
So gabarito exerciciosescalonamentocpu-2012
So gabarito exerciciosescalonamentocpu-2012So gabarito exerciciosescalonamentocpu-2012
So gabarito exerciciosescalonamentocpu-2012Bill Lima
 
Sistemas operativos 10º
Sistemas operativos 10ºSistemas operativos 10º
Sistemas operativos 10ºteacherpereira
 
Arquitetura de um computador
Arquitetura de um computadorArquitetura de um computador
Arquitetura de um computadorFilipe Duarte
 
Procesos concurrencia
Procesos  concurrenciaProcesos  concurrencia
Procesos concurrenciapuracastillo
 
Sistema de ficheiros mais utilizados
Sistema de ficheiros mais utilizadosSistema de ficheiros mais utilizados
Sistema de ficheiros mais utilizadosLeandro Silva
 
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 OliveiraWellington Oliveira
 
Mutexes, Monitores e Semáforos
Mutexes, Monitores e SemáforosMutexes, Monitores e Semáforos
Mutexes, Monitores e SemáforosThiago Poiani
 
Trabalho do sistemas operativos
Trabalho do sistemas operativosTrabalho do sistemas operativos
Trabalho do sistemas operativosDavid Pereira
 
Arquitectura software.taxonomias.modularidad.001
Arquitectura software.taxonomias.modularidad.001Arquitectura software.taxonomias.modularidad.001
Arquitectura software.taxonomias.modularidad.001Jose Emilio Labra Gayo
 

Was ist angesagt? (20)

Clasificación de los sistemas operativos por sus servicios
Clasificación de los sistemas operativos por sus serviciosClasificación de los sistemas operativos por sus servicios
Clasificación de los sistemas operativos por sus servicios
 
Resumo de S.O.
Resumo de S.O.Resumo de S.O.
Resumo de S.O.
 
Aula 12 - Escalonamento
Aula 12 - EscalonamentoAula 12 - Escalonamento
Aula 12 - Escalonamento
 
Arquitetura de-computadores
Arquitetura de-computadoresArquitetura de-computadores
Arquitetura de-computadores
 
Aula 06-sistemas de-arquivo
Aula 06-sistemas de-arquivoAula 06-sistemas de-arquivo
Aula 06-sistemas de-arquivo
 
Sistemas operativos módulo2 - ms dos
Sistemas operativos   módulo2 -  ms dosSistemas operativos   módulo2 -  ms dos
Sistemas operativos módulo2 - ms dos
 
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
 
Aula 02-processos-e-threads-tanenbaum-parte-1
Aula 02-processos-e-threads-tanenbaum-parte-1Aula 02-processos-e-threads-tanenbaum-parte-1
Aula 02-processos-e-threads-tanenbaum-parte-1
 
Sistemas Operativos - Processos e Threads
Sistemas Operativos - Processos e ThreadsSistemas Operativos - Processos e Threads
Sistemas Operativos - Processos e Threads
 
Sistemas Operacionais Modernos Capítulo 3 Deadlock
Sistemas Operacionais Modernos Capítulo 3 DeadlockSistemas Operacionais Modernos Capítulo 3 Deadlock
Sistemas Operacionais Modernos Capítulo 3 Deadlock
 
So gabarito exerciciosescalonamentocpu-2012
So gabarito exerciciosescalonamentocpu-2012So gabarito exerciciosescalonamentocpu-2012
So gabarito exerciciosescalonamentocpu-2012
 
Sistemas operativos 10º
Sistemas operativos 10ºSistemas operativos 10º
Sistemas operativos 10º
 
Arquitetura de um computador
Arquitetura de um computadorArquitetura de um computador
Arquitetura de um computador
 
Procesos concurrencia
Procesos  concurrenciaProcesos  concurrencia
Procesos concurrencia
 
Sistema de ficheiros mais utilizados
Sistema de ficheiros mais utilizadosSistema de ficheiros mais utilizados
Sistema de ficheiros mais utilizados
 
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
 
Mutexes, Monitores e Semáforos
Mutexes, Monitores e SemáforosMutexes, Monitores e Semáforos
Mutexes, Monitores e Semáforos
 
Trabalho do sistemas operativos
Trabalho do sistemas operativosTrabalho do sistemas operativos
Trabalho do sistemas operativos
 
Cs8493 unit 2
Cs8493 unit 2Cs8493 unit 2
Cs8493 unit 2
 
Arquitectura software.taxonomias.modularidad.001
Arquitectura software.taxonomias.modularidad.001Arquitectura software.taxonomias.modularidad.001
Arquitectura software.taxonomias.modularidad.001
 

Andere mochten auch

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 ArquivosAlexandre 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 MassaAlexandre 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 VirtualAlexandre 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 classicosComputaçã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 ArquivosAlexandre Duarte
 
Gerência de Processos: Deadlocks
Gerência de Processos: DeadlocksGerência de Processos: Deadlocks
Gerência de Processos: DeadlocksAlexandre Duarte
 
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 processosComputação Depressão
 
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íticasBeatriz 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 PrincipalAlexandre Duarte
 

Andere mochten auch (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
 
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
 
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
 

Ähnlich wie Gerências de Processos: Sincronização

Gerência de Processos: Processos
Gerência de Processos: ProcessosGerência de Processos: Processos
Gerência de Processos: ProcessosAlexandre Duarte
 
Sistemas de controle de versão
Sistemas de controle de versãoSistemas de controle de versão
Sistemas de controle de versãoMarcos Pessoa
 
GOTEST-Aula3-Automacao-Processo-Testes.pdf
GOTEST-Aula3-Automacao-Processo-Testes.pdfGOTEST-Aula3-Automacao-Processo-Testes.pdf
GOTEST-Aula3-Automacao-Processo-Testes.pdfRodolphoCesar2
 
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.netRenato Groff
 
Sistemas Operacionais - Aula 05 (Concorrência)
Sistemas Operacionais - Aula 05 (Concorrência)Sistemas Operacionais - Aula 05 (Concorrência)
Sistemas Operacionais - Aula 05 (Concorrência)Leinylson Fontinele
 
Estudo sistemas operacionais p2
Estudo sistemas operacionais  p2Estudo sistemas operacionais  p2
Estudo sistemas operacionais p2Gustavo Souza
 
BDD (Behavior-Driven Development)
BDD (Behavior-Driven Development)BDD (Behavior-Driven Development)
BDD (Behavior-Driven Development)Renato Groff
 
BDD (Behavior-Driven Development) - Setembro/2015
BDD (Behavior-Driven Development) - Setembro/2015BDD (Behavior-Driven Development) - Setembro/2015
BDD (Behavior-Driven Development) - Setembro/2015Renato Groff
 
Controle de versão
Controle de versãoControle de versão
Controle de versãoZé Pereira
 
(ACH2044) Sistemas Operacionais - Aula 10
(ACH2044) Sistemas Operacionais - Aula 10(ACH2044) Sistemas Operacionais - Aula 10
(ACH2044) Sistemas Operacionais - Aula 10Norton Trevisan Roman
 

Ähnlich wie Gerências de Processos: Sincronização (20)

Gerência de Processos: Processos
Gerência de Processos: ProcessosGerência de Processos: Processos
Gerência de Processos: Processos
 
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
 
Sistemas Operacionais - Aula 05 (Concorrência)
Sistemas Operacionais - Aula 05 (Concorrência)Sistemas Operacionais - Aula 05 (Concorrência)
Sistemas Operacionais - Aula 05 (Concorrência)
 
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
 
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
 

Mehr von Alexandre Duarte

Táticas para Projeto de Experimentos
Táticas para Projeto de ExperimentosTáticas para Projeto de Experimentos
Táticas para Projeto de ExperimentosAlexandre Duarte
 
Fazer Ciência é Difícil!
Fazer Ciência é Difícil!Fazer Ciência é Difícil!
Fazer Ciência é Difícil!Alexandre Duarte
 
Escolhendo um Projeto de Pesquisa
Escolhendo um Projeto de PesquisaEscolhendo um Projeto de Pesquisa
Escolhendo um Projeto de PesquisaAlexandre 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ênciaAlexandre 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çãoAlexandre 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 fazerAlexandre 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 UFPBAlexandre 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 NominaisAlexandre Duarte
 
Correlação e Classificação
Correlação e ClassificaçãoCorrelação e Classificação
Correlação e ClassificaçãoAlexandre Duarte
 
Sumarização Estatística 2D
Sumarização Estatística 2DSumarização Estatística 2D
Sumarização Estatística 2DAlexandre Duarte
 
Sumarização Estatística 1D
Sumarização Estatística 1DSumarização Estatística 1D
Sumarização Estatística 1DAlexandre Duarte
 
Preparação e Limpeza de Dados
Preparação e Limpeza de DadosPreparação e Limpeza de Dados
Preparação e Limpeza de DadosAlexandre Duarte
 
Introdução ao Projeto de Experimentos
Introdução ao Projeto de ExperimentosIntrodução ao Projeto de Experimentos
Introdução ao Projeto de ExperimentosAlexandre Duarte
 
Introdução ao Projeto de Surveys
Introdução ao Projeto de SurveysIntrodução ao Projeto de Surveys
Introdução ao Projeto de SurveysAlexandre 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 01Alexandre Duarte
 

Mehr von 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
 

Kürzlich hochgeladen

Caixa jogo da onça. para imprimir e jogar
Caixa jogo da onça. para imprimir e jogarCaixa jogo da onça. para imprimir e jogar
Caixa jogo da onça. para imprimir e jogarIedaGoethe
 
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxOsnilReis1
 
HORA DO CONTO4_BECRE D. CARLOS I_2023_2024
HORA DO CONTO4_BECRE D. CARLOS I_2023_2024HORA DO CONTO4_BECRE D. CARLOS I_2023_2024
HORA DO CONTO4_BECRE D. CARLOS I_2023_2024Sandra Pratas
 
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)Mary Alvarenga
 
cartilha-pdi-plano-de-desenvolvimento-individual-do-estudante.pdf
cartilha-pdi-plano-de-desenvolvimento-individual-do-estudante.pdfcartilha-pdi-plano-de-desenvolvimento-individual-do-estudante.pdf
cartilha-pdi-plano-de-desenvolvimento-individual-do-estudante.pdfIedaGoethe
 
FCEE - Diretrizes - Autismo.pdf para imprimir
FCEE - Diretrizes - Autismo.pdf para imprimirFCEE - Diretrizes - Autismo.pdf para imprimir
FCEE - Diretrizes - Autismo.pdf para imprimirIedaGoethe
 
Habilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasHabilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasCassio Meira Jr.
 
Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Centro Jacques Delors
 
Bullying - Texto e cruzadinha
Bullying        -     Texto e cruzadinhaBullying        -     Texto e cruzadinha
Bullying - Texto e cruzadinhaMary Alvarenga
 
Aula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologia
Aula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologiaAula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologia
Aula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologiaaulasgege
 
A experiência amorosa e a reflexão sobre o Amor.pptx
A experiência amorosa e a reflexão sobre o Amor.pptxA experiência amorosa e a reflexão sobre o Amor.pptx
A experiência amorosa e a reflexão sobre o Amor.pptxfabiolalopesmartins1
 
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024Sandra Pratas
 
Modelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e TaniModelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e TaniCassio Meira Jr.
 
O Universo Cuckold - Compartilhando a Esposas Com Amigo.pdf
O Universo Cuckold - Compartilhando a Esposas Com Amigo.pdfO Universo Cuckold - Compartilhando a Esposas Com Amigo.pdf
O Universo Cuckold - Compartilhando a Esposas Com Amigo.pdfPastor Robson Colaço
 
Simulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdfSimulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdfEditoraEnovus
 
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxSlides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxLuizHenriquedeAlmeid6
 
A Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesA Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesMary Alvarenga
 
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdfBRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdfHenrique Pontes
 
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasCenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasRosalina Simão Nunes
 

Kürzlich hochgeladen (20)

Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
 
Caixa jogo da onça. para imprimir e jogar
Caixa jogo da onça. para imprimir e jogarCaixa jogo da onça. para imprimir e jogar
Caixa jogo da onça. para imprimir e jogar
 
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
 
HORA DO CONTO4_BECRE D. CARLOS I_2023_2024
HORA DO CONTO4_BECRE D. CARLOS I_2023_2024HORA DO CONTO4_BECRE D. CARLOS I_2023_2024
HORA DO CONTO4_BECRE D. CARLOS I_2023_2024
 
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
 
cartilha-pdi-plano-de-desenvolvimento-individual-do-estudante.pdf
cartilha-pdi-plano-de-desenvolvimento-individual-do-estudante.pdfcartilha-pdi-plano-de-desenvolvimento-individual-do-estudante.pdf
cartilha-pdi-plano-de-desenvolvimento-individual-do-estudante.pdf
 
FCEE - Diretrizes - Autismo.pdf para imprimir
FCEE - Diretrizes - Autismo.pdf para imprimirFCEE - Diretrizes - Autismo.pdf para imprimir
FCEE - Diretrizes - Autismo.pdf para imprimir
 
Habilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasHabilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e Específicas
 
Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029
 
Bullying - Texto e cruzadinha
Bullying        -     Texto e cruzadinhaBullying        -     Texto e cruzadinha
Bullying - Texto e cruzadinha
 
Aula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologia
Aula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologiaAula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologia
Aula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologia
 
A experiência amorosa e a reflexão sobre o Amor.pptx
A experiência amorosa e a reflexão sobre o Amor.pptxA experiência amorosa e a reflexão sobre o Amor.pptx
A experiência amorosa e a reflexão sobre o Amor.pptx
 
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
 
Modelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e TaniModelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e Tani
 
O Universo Cuckold - Compartilhando a Esposas Com Amigo.pdf
O Universo Cuckold - Compartilhando a Esposas Com Amigo.pdfO Universo Cuckold - Compartilhando a Esposas Com Amigo.pdf
O Universo Cuckold - Compartilhando a Esposas Com Amigo.pdf
 
Simulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdfSimulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdf
 
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxSlides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
 
A Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesA Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das Mães
 
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdfBRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
 
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasCenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
 

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: