SlideShare ist ein Scribd-Unternehmen logo
1 von 22
Comunicação entre processos
Sistemas Operacionais
Prof. Mauro DuarteProf. Mauro Duarte
15/07/14
Comunicação entre processos
● Introdução
● Problemas inerentes à comunicação
● Proposta para exclusão mútua
15/07/14
Introdução:
● Os processos que cooperam entre si para executar uma
tarefa precisam se comunicar uns com os outros.
● A comunicação entre os processos deve ser feita de tal
modo que seja estruturada e independente de
interrupções.
● Devemos evitar que os processos interfiram uns com os
outros, um problema chamado de exclusão mútua.
15/07/14
Problema:
● Um processo A alocou uma determinada área da
memória pra si.
● O que aconteceria se outro processo pudesse
alocar a mesma área da memória que o processo A
esta ocupando?
15/07/14
Sincronização:
● Na comunicação entre processos cooperantes, a
sincronização destes processos é importante:
15/07/14
Condições de corrida:
● Ocorre quando os processos
cooperantes precisam
compartilhar um recurso, que
ambos podem ler e gravar:
Um exemplo de recurso compartilhado, um
diretório de spooler, usado por um daemon
de impressão. Este diretório contém várias
entradas, numeradas por 1 e 2, …, sendo
que cada uma pode armazenar o nome de
um arquivo. O daemon percorre cada uma
das entradas sequencialmente, voltando para
a primeira entrada após a impressão do
arquivo da última entrada.
15/07/14
●
Vimos um exemplo que é chamado de condição
de corrida (race condition):
– Ocorre quando dois ou mais processos acessam
um recurso compartilhado.
– O resultado das execuções dos processos
dependem da ordem em que os processos
executam no processador.
– Somente algumas ordens de execuções do
processo não geram os resultados corretos.
Condições de corrida:
15/07/14
● A detecção da existência de uma condição de
corrida em um conjunto de processos
cooperantes é complicada.
● Para solucionar o problema de condição de
corrida, deveremos usar o conceito de exclusão
mútua através do uso de seções críticas.
Condições de corrida:
15/07/14
Seções críticas:
● Podemos também ver o problema da condição de
corrida a partir da seguinte visão abstrata:
– Ou o processo está executando um código que
não acessa nenhum dos recursos compartilhados
com outros processos.
– Ou processo está executando um código que lê
e/ou altera um dos recursos compartilhados com
outros processos.
15/07/14
● O código do processo que acessa um recurso
compartilhado com outros processos é chamado
de seção crítica ou região crítica.
● As condições de corrida serão evitadas somente se
cada processo executar a sua seção crítica em um
intervalo de tempo diferente.
Seções críticas:
15/07/14
● Para que a cooperação entre os processos seja eficiente, além de
correta, devemos garantir as seguintes condições:
– Dois ou mais processos não podem executar ao mesmo tempo
as suas seções críticas.
– Não podemos fazer nenhuma suposição sobre a velocidade de
execução ou do número de processadores.
– Um processo que não está executando sua seção crítica não
pode bloquear outro processo.
– Um processo deve ser sempre capaz de executar a sua seção
crítica em um intervalo de tempo finito.
Seções críticas:
15/07/14
● Para que somente um processo possa entrar na sua seção crítica
devemos usar as primitivas de exclusão mútua.
● Um meio de obtermos a exclusão mútua é através do uso das
propostas baseadas em espera ocupada.
– O processo fica esperando até que possa acessar a seção crítica.
– A grande desvantagem desse método pode ser o desperdício de
tempo do processador.
– Estratégias:
● Desabilitar interrupções.
● InstruçãoTSL.
Exclusão Mútua:
15/07/14
●
O processo desabilita as interrupções ao entrar
na seção crítica, e as reabilita ao sair da seção
crítica.
●
Como as interrupções estão desabilitadas, o
escalonador não será capaz de parar a execução
do processo.
●
A proposta não é adequada, pois se o processo
não reabilitar as interrupções, o sistema irá parar
de funcionar.
Desabilitando interrupções:
15/07/14
Desabilitando interrupções:
● A proposta não funciona se existe mais de um
processador (ou núcleos), pois o processo
somente afeta o processador que o está
executando.
● A conclusão é que esta proposta não é adequada
para a exclusão mútua, devendo somente ser
usada dentro do núcleo do sistema.
15/07/14
InstruçãoTSL*:
● Comum em computadores com multiprocessadores.
● A instrução, cujo formato geral éTSL RX, lock, onde
RX é um registrador e lock uma posição da memória:
– Lê o conteúdo da posição lock, e o coloca no
registrador RX.
– Depois grava, na posição lock, um valor diferente de
zero.
* TSL – Test and Set Lock
15/07/14
● A execução da instrução é atômica, ou seja,
indivisível:
– O processador bloqueia o barramento da memória
até executar as duas operações.
– Nenhum outro processador poderá acessar a posição
lock, até que o barramento seja desbloqueado
● Como a posição de ler a memória e armazenar um
valor não nulo é atômica, a exclusão mútua é
garantida.
InstruçãoTSL:
15/07/14
Exclusão Mútua:
● Vamos agora estudar a seguinte proposta
alternativa, que irá bloquear o processo, em
vez de utilizar espera ocupada, se este não
puder acessar a sua seção crítica:
– Semáforos.
15/07/14
Produtor x Consumidor:
● Neste problema dois processos, o produtor e o consumidor,
compartilham o buffer:
– O processo produtor deposita novas informações no buffer, a
não ser que este esteja cheio.
– O processo consumidor retira as informações do buffer, a não
ser que este esteja vazio.
15/07/14
Semáforo:
● Em 1965, o matemático holandês Edsger Dijkstra
propôs um mecanismo de coordenação eficiente e
flexível para o controle da exclusão mútua entre n
tarefas: o semáforo.
● Apesar de antigo, o semáforo continua sendo o
mecanismo de sincronização mais utilizado na
construção de aplicações concorrentes, sendo usado de
forma explícita ou implícita.
15/07/14
Semáforos:
● Esta proposta usa uma variável inteira chamada
semáforo, e uma fila associada a esta variável:
– O valor do semáforo indica quantas vezes ele pode
ser decrementado sem que o processo seja
bloqueado.
– A fila contém os processos que foram bloqueados
ao tentar decrementar o semáforo.
● São definidas duas operações sobre um
semáforo: P eV ( waint and signal; up and down;
etc ):
15/07/14
Semáforo:
● Para mais detalhes sobre semáforos, leia
a página 77 do livro:
– Sistemas Operacionais Modernos; 3ª edição –
Andrew S.Tanenbaum.
15/07/14
Para saber mais:
págs 70-81

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (19)

Estudo sistemas operacionais p2
Estudo sistemas operacionais  p2Estudo sistemas operacionais  p2
Estudo sistemas operacionais p2
 
So 01 - processos
So   01 - processosSo   01 - processos
So 01 - processos
 
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
 
Gerência de Processos: Deadlocks
Gerência de Processos: DeadlocksGerência de Processos: Deadlocks
Gerência de Processos: Deadlocks
 
Robótica avançada II
Robótica avançada IIRobótica avançada II
Robótica avançada II
 
Padrão de Projeto Observer
Padrão de Projeto ObserverPadrão de Projeto Observer
Padrão de Projeto Observer
 
Padrões de Projeto - Observer
Padrões de Projeto - ObserverPadrões de Projeto - Observer
Padrões de Projeto - Observer
 
Padrões de Projeto - Observer e Strategy
Padrões de Projeto - Observer e StrategyPadrões de Projeto - Observer e Strategy
Padrões de Projeto - Observer e Strategy
 
Sistemas operacionais - aula12
Sistemas operacionais - aula12Sistemas operacionais - aula12
Sistemas operacionais - aula12
 
Padrão Observer (Java)
Padrão Observer (Java)Padrão Observer (Java)
Padrão Observer (Java)
 
Aula java[1]
Aula java[1]Aula java[1]
Aula java[1]
 
Impasses cap 06 (ii unidade)
Impasses cap 06 (ii unidade)Impasses cap 06 (ii unidade)
Impasses cap 06 (ii unidade)
 
Deadlocks (Resumo)
Deadlocks (Resumo)Deadlocks (Resumo)
Deadlocks (Resumo)
 
Sap – stablility and abstract principle
Sap – stablility and abstract principleSap – stablility and abstract principle
Sap – stablility and abstract principle
 
Threads
ThreadsThreads
Threads
 
Impasses S.O
Impasses S.OImpasses S.O
Impasses S.O
 
3 e 4_-_comandos_de_leitura_e_escrita_identacao
3 e 4_-_comandos_de_leitura_e_escrita_identacao3 e 4_-_comandos_de_leitura_e_escrita_identacao
3 e 4_-_comandos_de_leitura_e_escrita_identacao
 
Automação industrial em grafcet
Automação industrial em grafcetAutomação industrial em grafcet
Automação industrial em grafcet
 
Workshop React Hooks
Workshop React HooksWorkshop React Hooks
Workshop React Hooks
 

Andere mochten auch

Sistemas operacionais escalonamento de processos
Sistemas operacionais  escalonamento de processosSistemas operacionais  escalonamento de processos
Sistemas operacionais escalonamento de processosTalles Nascimento Rodrigues
 
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
 
Tipos de Sistemas Operacionais
Tipos de Sistemas OperacionaisTipos de Sistemas Operacionais
Tipos de Sistemas OperacionaisLuciano Crecente
 
Fundamentos de Sistemas Operacionais - Aula 2 - Conceitos Iniciais
Fundamentos de Sistemas Operacionais - Aula 2 - Conceitos IniciaisFundamentos de Sistemas Operacionais - Aula 2 - Conceitos Iniciais
Fundamentos de Sistemas Operacionais - Aula 2 - Conceitos IniciaisHelder Lopes
 
Fundamentos de Sistemas Operacionais - Aula 3 - Arquiteturas de Sistemas Oper...
Fundamentos de Sistemas Operacionais - Aula 3 - Arquiteturas de Sistemas Oper...Fundamentos de Sistemas Operacionais - Aula 3 - Arquiteturas de Sistemas Oper...
Fundamentos de Sistemas Operacionais - Aula 3 - Arquiteturas de Sistemas Oper...Helder Lopes
 
Gerência de Processos: Processos
Gerência de Processos: ProcessosGerência de Processos: Processos
Gerência de Processos: ProcessosAlexandre Duarte
 
Aula 02-processos-e-threads-tanenbaum-parte-2
Aula 02-processos-e-threads-tanenbaum-parte-2Aula 02-processos-e-threads-tanenbaum-parte-2
Aula 02-processos-e-threads-tanenbaum-parte-2Cristiano Pires Martins
 
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
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionaisvini_campos
 
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
 
Sistemas Operacionais - 04 - Processos
Sistemas Operacionais - 04 - ProcessosSistemas Operacionais - 04 - Processos
Sistemas Operacionais - 04 - ProcessosMauro Duarte
 
Sistemas Operacionais 12 gerenciamento de memória
Sistemas Operacionais 12   gerenciamento de memóriaSistemas Operacionais 12   gerenciamento de memória
Sistemas Operacionais 12 gerenciamento de memóriaMauro Duarte
 
Resumo: Oportunidade de Negocio Herbalife
Resumo: Oportunidade de Negocio HerbalifeResumo: Oportunidade de Negocio Herbalife
Resumo: Oportunidade de Negocio HerbalifeHelder Lopes
 
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
 
Sistemas operacionais pronatec- prof. manoel
Sistemas operacionais   pronatec- prof. manoelSistemas operacionais   pronatec- prof. manoel
Sistemas operacionais pronatec- prof. manoelManoel Rufino Neto
 
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 OperacionalAlexandre Duarte
 
Estrutura de Processos em Sistemas Operacionais
Estrutura de Processos em Sistemas OperacionaisEstrutura de Processos em Sistemas Operacionais
Estrutura de Processos em Sistemas OperacionaisSuliane Carneiro
 
Fundamentos de Sistemas Operacionais - Aula 1 - Introdução à disciplina
Fundamentos de Sistemas Operacionais - Aula 1 - Introdução à disciplinaFundamentos de Sistemas Operacionais - Aula 1 - Introdução à disciplina
Fundamentos de Sistemas Operacionais - Aula 1 - Introdução à disciplinaHelder Lopes
 

Andere mochten auch (20)

Sistemas operacionais escalonamento de processos
Sistemas operacionais  escalonamento de processosSistemas operacionais  escalonamento de processos
Sistemas operacionais escalonamento de processos
 
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
 
Tipos de Sistemas Operacionais
Tipos de Sistemas OperacionaisTipos de Sistemas Operacionais
Tipos de Sistemas Operacionais
 
Processamento paralelo
Processamento paraleloProcessamento paralelo
Processamento paralelo
 
Fundamentos de Sistemas Operacionais - Aula 2 - Conceitos Iniciais
Fundamentos de Sistemas Operacionais - Aula 2 - Conceitos IniciaisFundamentos de Sistemas Operacionais - Aula 2 - Conceitos Iniciais
Fundamentos de Sistemas Operacionais - Aula 2 - Conceitos Iniciais
 
Fundamentos de Sistemas Operacionais - Aula 3 - Arquiteturas de Sistemas Oper...
Fundamentos de Sistemas Operacionais - Aula 3 - Arquiteturas de Sistemas Oper...Fundamentos de Sistemas Operacionais - Aula 3 - Arquiteturas de Sistemas Oper...
Fundamentos de Sistemas Operacionais - Aula 3 - Arquiteturas de Sistemas Oper...
 
Gerência de Processos: Processos
Gerência de Processos: ProcessosGerência de Processos: Processos
Gerência de Processos: Processos
 
Aula 02-processos-e-threads-tanenbaum-parte-2
Aula 02-processos-e-threads-tanenbaum-parte-2Aula 02-processos-e-threads-tanenbaum-parte-2
Aula 02-processos-e-threads-tanenbaum-parte-2
 
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
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionais
 
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 Operacionais - 04 - Processos
Sistemas Operacionais - 04 - ProcessosSistemas Operacionais - 04 - Processos
Sistemas Operacionais - 04 - Processos
 
Sistemas Operacionais 12 gerenciamento de memória
Sistemas Operacionais 12   gerenciamento de memóriaSistemas Operacionais 12   gerenciamento de memória
Sistemas Operacionais 12 gerenciamento de memória
 
Requsitos
RequsitosRequsitos
Requsitos
 
Resumo: Oportunidade de Negocio Herbalife
Resumo: Oportunidade de Negocio HerbalifeResumo: Oportunidade de Negocio Herbalife
Resumo: Oportunidade de Negocio Herbalife
 
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
 
Sistemas operacionais pronatec- prof. manoel
Sistemas operacionais   pronatec- prof. manoelSistemas operacionais   pronatec- prof. manoel
Sistemas operacionais pronatec- prof. manoel
 
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
 
Estrutura de Processos em Sistemas Operacionais
Estrutura de Processos em Sistemas OperacionaisEstrutura de Processos em Sistemas Operacionais
Estrutura de Processos em Sistemas Operacionais
 
Fundamentos de Sistemas Operacionais - Aula 1 - Introdução à disciplina
Fundamentos de Sistemas Operacionais - Aula 1 - Introdução à disciplinaFundamentos de Sistemas Operacionais - Aula 1 - Introdução à disciplina
Fundamentos de Sistemas Operacionais - Aula 1 - Introdução à disciplina
 

Ähnlich wie Sistemas Operacionais 10 comunicação entre processos

Gerências de Processos: Sincronização
Gerências de Processos: SincronizaçãoGerências de Processos: Sincronização
Gerências de Processos: SincronizaçãoAlexandre Duarte
 
Apostila 3 concorrência
Apostila 3   concorrênciaApostila 3   concorrência
Apostila 3 concorrênciaPaulo Fonseca
 
Categorias de escalonamento e objetivos do algoritmo de escalonamento
Categorias de escalonamento e objetivos do algoritmo de escalonamentoCategorias de escalonamento e objetivos do algoritmo de escalonamento
Categorias de escalonamento e objetivos do algoritmo de escalonamentoThaís Favore
 
Categorias de Escalonamento e Objetivos do Algorítmo Escalonador
Categorias de Escalonamento e Objetivos do Algorítmo EscalonadorCategorias de Escalonamento e Objetivos do Algorítmo Escalonador
Categorias de Escalonamento e Objetivos do Algorítmo EscalonadorSofia Trindade
 
Apostila 6 gerência de memória
Apostila 6   gerência de memóriaApostila 6   gerência de memória
Apostila 6 gerência de memóriaPaulo Fonseca
 
SO02 - Sistemas-Operacionais - Gerencia de Processos.pdf
SO02 - Sistemas-Operacionais - Gerencia de Processos.pdfSO02 - Sistemas-Operacionais - Gerencia de Processos.pdf
SO02 - Sistemas-Operacionais - Gerencia de Processos.pdfSilvano Oliveira
 
Gerenciamento de memoria
Gerenciamento de memoriaGerenciamento de memoria
Gerenciamento de memoriaJailson Silva
 
12 objetivos de banco de dados distribuídos
12 objetivos de banco de dados distribuídos12 objetivos de banco de dados distribuídos
12 objetivos de banco de dados distribuídosBruno Felipe
 
Resolvido Prova Tecnico da Marinha 2013
Resolvido Prova Tecnico da Marinha 2013 Resolvido Prova Tecnico da Marinha 2013
Resolvido Prova Tecnico da Marinha 2013 Déborah Luzia
 
Comunicacao entre Processos
Comunicacao entre ProcessosComunicacao entre Processos
Comunicacao entre ProcessosRafaelPessoa22
 
SO03 - Sistemas-Operacionais - Gerencia de Memoria.pdf
SO03 - Sistemas-Operacionais - Gerencia de Memoria.pdfSO03 - Sistemas-Operacionais - Gerencia de Memoria.pdf
SO03 - Sistemas-Operacionais - Gerencia de Memoria.pdfSilvano Oliveira
 

Ähnlich wie Sistemas Operacionais 10 comunicação entre processos (20)

Aula revisão ok
Aula revisão       okAula revisão       ok
Aula revisão ok
 
Gerências de Processos: Sincronização
Gerências de Processos: SincronizaçãoGerências de Processos: Sincronização
Gerências de Processos: Sincronização
 
Apostila 3 concorrência
Apostila 3   concorrênciaApostila 3   concorrência
Apostila 3 concorrência
 
Categorias de escalonamento e objetivos do algoritmo de escalonamento
Categorias de escalonamento e objetivos do algoritmo de escalonamentoCategorias de escalonamento e objetivos do algoritmo de escalonamento
Categorias de escalonamento e objetivos do algoritmo de escalonamento
 
Codigo limpo
Codigo limpoCodigo limpo
Codigo limpo
 
Clean code part 2
Clean code   part 2Clean code   part 2
Clean code part 2
 
gabarito.pdf
gabarito.pdfgabarito.pdf
gabarito.pdf
 
Threads
ThreadsThreads
Threads
 
10.concurrency
10.concurrency10.concurrency
10.concurrency
 
Categorias de Escalonamento e Objetivos do Algorítmo Escalonador
Categorias de Escalonamento e Objetivos do Algorítmo EscalonadorCategorias de Escalonamento e Objetivos do Algorítmo Escalonador
Categorias de Escalonamento e Objetivos do Algorítmo Escalonador
 
Apostila 6 gerência de memória
Apostila 6   gerência de memóriaApostila 6   gerência de memória
Apostila 6 gerência de memória
 
SO02 - Sistemas-Operacionais - Gerencia de Processos.pdf
SO02 - Sistemas-Operacionais - Gerencia de Processos.pdfSO02 - Sistemas-Operacionais - Gerencia de Processos.pdf
SO02 - Sistemas-Operacionais - Gerencia de Processos.pdf
 
Overview de QA
Overview de QA Overview de QA
Overview de QA
 
Escalonamento de processos
Escalonamento de processosEscalonamento de processos
Escalonamento de processos
 
Curso openmp
Curso openmpCurso openmp
Curso openmp
 
Gerenciamento de memoria
Gerenciamento de memoriaGerenciamento de memoria
Gerenciamento de memoria
 
12 objetivos de banco de dados distribuídos
12 objetivos de banco de dados distribuídos12 objetivos de banco de dados distribuídos
12 objetivos de banco de dados distribuídos
 
Resolvido Prova Tecnico da Marinha 2013
Resolvido Prova Tecnico da Marinha 2013 Resolvido Prova Tecnico da Marinha 2013
Resolvido Prova Tecnico da Marinha 2013
 
Comunicacao entre Processos
Comunicacao entre ProcessosComunicacao entre Processos
Comunicacao entre Processos
 
SO03 - Sistemas-Operacionais - Gerencia de Memoria.pdf
SO03 - Sistemas-Operacionais - Gerencia de Memoria.pdfSO03 - Sistemas-Operacionais - Gerencia de Memoria.pdf
SO03 - Sistemas-Operacionais - Gerencia de Memoria.pdf
 

Mehr von Mauro Duarte

CSS - Folhas de Estilo em Cascata
CSS - Folhas de Estilo em Cascata CSS - Folhas de Estilo em Cascata
CSS - Folhas de Estilo em Cascata Mauro Duarte
 
7 - Introdução ao desenvolvimento web - mídias
7 - Introdução ao desenvolvimento web - mídias7 - Introdução ao desenvolvimento web - mídias
7 - Introdução ao desenvolvimento web - mídiasMauro Duarte
 
01 Desenvolvimento em Redes de Computadores - Comandos Básicos
01   Desenvolvimento em Redes de Computadores - Comandos Básicos01   Desenvolvimento em Redes de Computadores - Comandos Básicos
01 Desenvolvimento em Redes de Computadores - Comandos BásicosMauro Duarte
 
00 apresentação desenvolvimento em redes de computadores
00   apresentação desenvolvimento em redes de computadores00   apresentação desenvolvimento em redes de computadores
00 apresentação desenvolvimento em redes de computadoresMauro Duarte
 
Porque tanta pressa - Caril Borges
Porque tanta pressa - Caril BorgesPorque tanta pressa - Caril Borges
Porque tanta pressa - Caril BorgesMauro Duarte
 
Perdoando como José perdoou - Caril Borges
Perdoando como José perdoou - Caril BorgesPerdoando como José perdoou - Caril Borges
Perdoando como José perdoou - Caril BorgesMauro Duarte
 
Otimistas ou pessimistas - Caril Borges
Otimistas ou pessimistas - Caril BorgesOtimistas ou pessimistas - Caril Borges
Otimistas ou pessimistas - Caril BorgesMauro Duarte
 
Nos importando com o próximo
Nos importando com o próximoNos importando com o próximo
Nos importando com o próximoMauro Duarte
 
Noé não deu desculpas para nao servir a deus
Noé não deu desculpas para nao servir a deusNoé não deu desculpas para nao servir a deus
Noé não deu desculpas para nao servir a deusMauro Duarte
 
Construindo muros ou pontes
Construindo muros ou pontesConstruindo muros ou pontes
Construindo muros ou pontesMauro Duarte
 
A tragédia que virou triunfo
A tragédia que virou triunfoA tragédia que virou triunfo
A tragédia que virou triunfoMauro Duarte
 
Atitudes para os problemas de 2015 - Caril Borges
Atitudes para os problemas de 2015  - Caril BorgesAtitudes para os problemas de 2015  - Caril Borges
Atitudes para os problemas de 2015 - Caril BorgesMauro Duarte
 
As armadilhas de satanás - Caril Borges
As armadilhas de satanás - Caril BorgesAs armadilhas de satanás - Caril Borges
As armadilhas de satanás - Caril BorgesMauro Duarte
 
Otimizando a Produção de WebSites com Joomla
Otimizando a Produção de WebSites com JoomlaOtimizando a Produção de WebSites com Joomla
Otimizando a Produção de WebSites com JoomlaMauro Duarte
 
Ataques de Dicionário com CUPP
Ataques de Dicionário com CUPPAtaques de Dicionário com CUPP
Ataques de Dicionário com CUPPMauro Duarte
 
Automação de Testes Selenium IDE
Automação de Testes Selenium IDEAutomação de Testes Selenium IDE
Automação de Testes Selenium IDEMauro Duarte
 
História Logo Flisol
História Logo Flisol História Logo Flisol
História Logo Flisol Mauro Duarte
 

Mehr von Mauro Duarte (20)

CSS - Folhas de Estilo em Cascata
CSS - Folhas de Estilo em Cascata CSS - Folhas de Estilo em Cascata
CSS - Folhas de Estilo em Cascata
 
7 - Introdução ao desenvolvimento web - mídias
7 - Introdução ao desenvolvimento web - mídias7 - Introdução ao desenvolvimento web - mídias
7 - Introdução ao desenvolvimento web - mídias
 
Os pássaros
Os pássarosOs pássaros
Os pássaros
 
01 Desenvolvimento em Redes de Computadores - Comandos Básicos
01   Desenvolvimento em Redes de Computadores - Comandos Básicos01   Desenvolvimento em Redes de Computadores - Comandos Básicos
01 Desenvolvimento em Redes de Computadores - Comandos Básicos
 
00 apresentação desenvolvimento em redes de computadores
00   apresentação desenvolvimento em redes de computadores00   apresentação desenvolvimento em redes de computadores
00 apresentação desenvolvimento em redes de computadores
 
Porque tanta pressa - Caril Borges
Porque tanta pressa - Caril BorgesPorque tanta pressa - Caril Borges
Porque tanta pressa - Caril Borges
 
Perdoando como José perdoou - Caril Borges
Perdoando como José perdoou - Caril BorgesPerdoando como José perdoou - Caril Borges
Perdoando como José perdoou - Caril Borges
 
Otimistas ou pessimistas - Caril Borges
Otimistas ou pessimistas - Caril BorgesOtimistas ou pessimistas - Caril Borges
Otimistas ou pessimistas - Caril Borges
 
Nos importando com o próximo
Nos importando com o próximoNos importando com o próximo
Nos importando com o próximo
 
Noé não deu desculpas para nao servir a deus
Noé não deu desculpas para nao servir a deusNoé não deu desculpas para nao servir a deus
Noé não deu desculpas para nao servir a deus
 
Construindo muros ou pontes
Construindo muros ou pontesConstruindo muros ou pontes
Construindo muros ou pontes
 
A tragédia que virou triunfo
A tragédia que virou triunfoA tragédia que virou triunfo
A tragédia que virou triunfo
 
Atitudes para os problemas de 2015 - Caril Borges
Atitudes para os problemas de 2015  - Caril BorgesAtitudes para os problemas de 2015  - Caril Borges
Atitudes para os problemas de 2015 - Caril Borges
 
As armadilhas de satanás - Caril Borges
As armadilhas de satanás - Caril BorgesAs armadilhas de satanás - Caril Borges
As armadilhas de satanás - Caril Borges
 
Otimizando a Produção de WebSites com Joomla
Otimizando a Produção de WebSites com JoomlaOtimizando a Produção de WebSites com Joomla
Otimizando a Produção de WebSites com Joomla
 
Ataques de Dicionário com CUPP
Ataques de Dicionário com CUPPAtaques de Dicionário com CUPP
Ataques de Dicionário com CUPP
 
Automação de Testes Selenium IDE
Automação de Testes Selenium IDEAutomação de Testes Selenium IDE
Automação de Testes Selenium IDE
 
História Logo Flisol
História Logo Flisol História Logo Flisol
História Logo Flisol
 
Web Design Hacker
Web Design HackerWeb Design Hacker
Web Design Hacker
 
6 link tag aa
6   link tag aa6   link tag aa
6 link tag aa
 

Sistemas Operacionais 10 comunicação entre processos

  • 1. Comunicação entre processos Sistemas Operacionais Prof. Mauro DuarteProf. Mauro Duarte
  • 2. 15/07/14 Comunicação entre processos ● Introdução ● Problemas inerentes à comunicação ● Proposta para exclusão mútua
  • 3. 15/07/14 Introdução: ● Os processos que cooperam entre si para executar uma tarefa precisam se comunicar uns com os outros. ● A comunicação entre os processos deve ser feita de tal modo que seja estruturada e independente de interrupções. ● Devemos evitar que os processos interfiram uns com os outros, um problema chamado de exclusão mútua.
  • 4. 15/07/14 Problema: ● Um processo A alocou uma determinada área da memória pra si. ● O que aconteceria se outro processo pudesse alocar a mesma área da memória que o processo A esta ocupando?
  • 5. 15/07/14 Sincronização: ● Na comunicação entre processos cooperantes, a sincronização destes processos é importante:
  • 6. 15/07/14 Condições de corrida: ● Ocorre quando os processos cooperantes precisam compartilhar um recurso, que ambos podem ler e gravar: Um exemplo de recurso compartilhado, um diretório de spooler, usado por um daemon de impressão. Este diretório contém várias entradas, numeradas por 1 e 2, …, sendo que cada uma pode armazenar o nome de um arquivo. O daemon percorre cada uma das entradas sequencialmente, voltando para a primeira entrada após a impressão do arquivo da última entrada.
  • 7. 15/07/14 ● Vimos um exemplo que é chamado de condição de corrida (race condition): – Ocorre quando dois ou mais processos acessam um recurso compartilhado. – O resultado das execuções dos processos dependem da ordem em que os processos executam no processador. – Somente algumas ordens de execuções do processo não geram os resultados corretos. Condições de corrida:
  • 8. 15/07/14 ● A detecção da existência de uma condição de corrida em um conjunto de processos cooperantes é complicada. ● Para solucionar o problema de condição de corrida, deveremos usar o conceito de exclusão mútua através do uso de seções críticas. Condições de corrida:
  • 9. 15/07/14 Seções críticas: ● Podemos também ver o problema da condição de corrida a partir da seguinte visão abstrata: – Ou o processo está executando um código que não acessa nenhum dos recursos compartilhados com outros processos. – Ou processo está executando um código que lê e/ou altera um dos recursos compartilhados com outros processos.
  • 10. 15/07/14 ● O código do processo que acessa um recurso compartilhado com outros processos é chamado de seção crítica ou região crítica. ● As condições de corrida serão evitadas somente se cada processo executar a sua seção crítica em um intervalo de tempo diferente. Seções críticas:
  • 11. 15/07/14 ● Para que a cooperação entre os processos seja eficiente, além de correta, devemos garantir as seguintes condições: – Dois ou mais processos não podem executar ao mesmo tempo as suas seções críticas. – Não podemos fazer nenhuma suposição sobre a velocidade de execução ou do número de processadores. – Um processo que não está executando sua seção crítica não pode bloquear outro processo. – Um processo deve ser sempre capaz de executar a sua seção crítica em um intervalo de tempo finito. Seções críticas:
  • 12. 15/07/14 ● Para que somente um processo possa entrar na sua seção crítica devemos usar as primitivas de exclusão mútua. ● Um meio de obtermos a exclusão mútua é através do uso das propostas baseadas em espera ocupada. – O processo fica esperando até que possa acessar a seção crítica. – A grande desvantagem desse método pode ser o desperdício de tempo do processador. – Estratégias: ● Desabilitar interrupções. ● InstruçãoTSL. Exclusão Mútua:
  • 13. 15/07/14 ● O processo desabilita as interrupções ao entrar na seção crítica, e as reabilita ao sair da seção crítica. ● Como as interrupções estão desabilitadas, o escalonador não será capaz de parar a execução do processo. ● A proposta não é adequada, pois se o processo não reabilitar as interrupções, o sistema irá parar de funcionar. Desabilitando interrupções:
  • 14. 15/07/14 Desabilitando interrupções: ● A proposta não funciona se existe mais de um processador (ou núcleos), pois o processo somente afeta o processador que o está executando. ● A conclusão é que esta proposta não é adequada para a exclusão mútua, devendo somente ser usada dentro do núcleo do sistema.
  • 15. 15/07/14 InstruçãoTSL*: ● Comum em computadores com multiprocessadores. ● A instrução, cujo formato geral éTSL RX, lock, onde RX é um registrador e lock uma posição da memória: – Lê o conteúdo da posição lock, e o coloca no registrador RX. – Depois grava, na posição lock, um valor diferente de zero. * TSL – Test and Set Lock
  • 16. 15/07/14 ● A execução da instrução é atômica, ou seja, indivisível: – O processador bloqueia o barramento da memória até executar as duas operações. – Nenhum outro processador poderá acessar a posição lock, até que o barramento seja desbloqueado ● Como a posição de ler a memória e armazenar um valor não nulo é atômica, a exclusão mútua é garantida. InstruçãoTSL:
  • 17. 15/07/14 Exclusão Mútua: ● Vamos agora estudar a seguinte proposta alternativa, que irá bloquear o processo, em vez de utilizar espera ocupada, se este não puder acessar a sua seção crítica: – Semáforos.
  • 18. 15/07/14 Produtor x Consumidor: ● Neste problema dois processos, o produtor e o consumidor, compartilham o buffer: – O processo produtor deposita novas informações no buffer, a não ser que este esteja cheio. – O processo consumidor retira as informações do buffer, a não ser que este esteja vazio.
  • 19. 15/07/14 Semáforo: ● Em 1965, o matemático holandês Edsger Dijkstra propôs um mecanismo de coordenação eficiente e flexível para o controle da exclusão mútua entre n tarefas: o semáforo. ● Apesar de antigo, o semáforo continua sendo o mecanismo de sincronização mais utilizado na construção de aplicações concorrentes, sendo usado de forma explícita ou implícita.
  • 20. 15/07/14 Semáforos: ● Esta proposta usa uma variável inteira chamada semáforo, e uma fila associada a esta variável: – O valor do semáforo indica quantas vezes ele pode ser decrementado sem que o processo seja bloqueado. – A fila contém os processos que foram bloqueados ao tentar decrementar o semáforo. ● São definidas duas operações sobre um semáforo: P eV ( waint and signal; up and down; etc ):
  • 21. 15/07/14 Semáforo: ● Para mais detalhes sobre semáforos, leia a página 77 do livro: – Sistemas Operacionais Modernos; 3ª edição – Andrew S.Tanenbaum.