SlideShare a Scribd company logo
1 of 7
1.SINCRONIZAÇÃO E COMUNICAÇÃO ENTRE PROCESSOS
Na década de 1960, com o surgimento dos sistemas multiprogramáveis, passou a ser possível
estruturar aplicações, Este tipo de aplicação, denominada aplicação concorrente, tem como base a
execução cooperativa de múltiplos processos
Em sistemas multiprogramável com um único processador, os processos alternam sua execução
segundo critérios de escalonamento estabelecidos pelo Sistema Operacional.
O compartilhamento de recursos entre os processos pode ocasionar situações indesejáveis, capazes
até de comprometer a execução das aplicações. Para evitar esse tipo de problema, os processos
concorrentes devem ter suas execuções sincronizadas, a partir de mecanismos oferecidos pelo
sistema operacional, com o objetivo de garantir o processamento correto dos programas.
2.Aplicações Concorrentes
Os mecanismos que garantem a comunicação entre os processos concorrentes e o acesso aos
recursos são chamados de mecanismos de sincronização. Muitas vezes, em uma aplicação
concorrente, é necessário que processos comuniquem-se entre si, e essa comunicação pode ser
implementada de diversos mecanismos, como troca de mensagens. No projeto de sistemas
operacionais multiprogramáveis, é fundamental a implementação destes mecanismos para garantir
a integridade e a confiabilidade na execução de aplicações concorrentes.
Sincronização
Processo de gravação Processo leitura
Buffer
Dados
Aqui estão dois processos concorrentes, a compartilhar um buffer para trocar
informações através do processo de gravação e leitura.
2.1.Problemas de Compartilhamento de Recurso
Na falha na sincronização entre processosconcorrentes podemocorreras seguistes
problemas.
1. Problema do programa Conta_Corrente
Que atualiza o saldo bancário de um cliente após um lançamento de débito ou
crédito no arquivo de contas correntes.
Neste arquivo são armazenados os saldos de todos oscorrentistas do banco. O
programa lê o registro do cliente no arquivo, lê o valor a ser depositado ou retirado
e, em seguida, atualiza o saldo no arquivode contas
Ex:
PROGRAMConta_Corrente;
.
.
READ (Arq_Contas, Reg_Cliente);
READLN (Valor_Dep_Ret);
Reg_Cliente.Saldo := Reg_Cliente.Saldo + Valor_Dep_Ret;
WRITE (Arq_Contas, Reg_Cliente);
.
END.
3. Sincronização Condicional
E uma situação onde o acesso ao recurso compartilhado exige a sincronização de
processos vinculada a uma condição de acesso. Um recurso podenão se encontrar
pronto para uso devido a uma condição específica. Nesse caso, o processoque
deseja acessá-lo deverá permanecer bloqueado (em espera) até que o recurso fique
disponível.
Ex:
Problema do Produtor/Consumidorou Problema do Buffer Limitado. No caso, o
recurso compartilhado é um buffer, sendo controlado por uma variável. Sempre
que a variável for 0, significa que o buffer esta vazio e o processo quelê dados
dessebuffer, chamado de processo consumidordeve permanecer aguardando (fica
no estado de espera) até que se grave um dado. Da mesma forma, quando a
variável for igual ao tamanho do buffer, significa que o buffer está cheio e o
processoprodutordeve aguardar (estado de espera) a leitura de um novo dado.
Nesta solução, a tarefa de ler ou gravar dados no buffer é realizado por dois
procedimentos que executam concorrentemente, de forma mutuamente exclusiva.
4.Semáforo
Um semáforo é uma variável inteira, não negativa, que só podeser manipulada por
duas instruções: DOWN e Up. A instrução UP incrementa uma unidade ao valor
do semáforo, enquanto a DOWN decrementa a variável. Como valores negativos
não podemser atribuídos a um semáforo, a instrução DOWN executada em um
semáforo com valor 0, faz com que o processoentre no estado de espera.
Os semáforos podemser classificados como binários ou contadores. Os semáforos
binários só podem assumir os valores 0 e 1, enquanto os semáforos contadores
podemassumir qualquer valor inteiro positivo, além do 0.
4.1.Exclusão Mútua Utilizando Semáforos
A exclusão mútua podeser implementada através de um semáforo binário
associado ao recurso compartilhado. A principal vantagem desta solução não
ocorrência da espera ocupada.O semáforo fica associado a um recurso
compartilhado, indicando quando o recurso está sendo acessado por um dos
processos concorrentes.Seo semáforo for igual a 1, então o semáforo é
decrementado e o processo consegueexecutar sua região crítica. Caso o semáforo
seja 0, então o processo écolocado em estado de espera, não gerando um overhead
do sistema.
4.2. Sincronização Condicional Utilizando Semáforos
Ocorre quando um processosolicita uma operação de Entrada/Saída. O pedido faz
com que o processo execute uma instrução DOWN no semáforo associado ao
evento e fique no estado de espera, até que a operação seja completada. Quando a
operação termina, a rotina de tratamento da interrupção executa um UP no
semáforo, liberando o processodo estado de espera.
4.3. Problema dos Filósofos
O problema dos filósofos é um exemplo clássico de sincronização de processos.
Nesse problema, há uma mesa com cinco pratos e cinco garfos, onde os filósofos
podemsentar, comer e pensar. Todavez que um filósofo para de pensar e deseja
comer, é necessário que ele utilize dois garfos, posicionados à sua direita e à sua
esquerda.
Existem várias soluções para resolver o problema dos filósofos, entre elas:
1.Permitir que apenas quatro filósofos sentassem à mesa simultaneamente;
2. Permitir que um filósofo pegue um garfo apenas se o outro estiver
disponível;
3. Permitir que um filósofo ímpar pegue primeiro o seu garfo da esquerda e
depois o da direita, enquanto um filósofo par pegue o garfo da direita e, em
seguida, o da esquerda.
1.8 . Problema do Barbeiro
O problema do barbeiro é outro exemplo clássico de sincronização de Processos. Neste
problema, um barbeiro recebe clientes para cortar o cabelo. Na barbearia há uma cadeira de
barbeiro e apenas cinco cadeiras para clientes esperarem. Quando um cliente chega, caso o
barbeiroesteja trabalhando, ele senta se houver uma cadeira vazia ou vai embora se todas as
cadeiras estiverem ocupadas. No caso de o barbeiro não ter nenhum cliente para atender, ela
senta na cadeira e dorme até que um novo cliente apareça.
A solução utiliza um semáforo contador e dois semáforos binários. Quando o barbeiro seleciona
um cliente para atender, é executada uma instrução DOWN no semáforo contador. Caso não exista
nenhum cliente aguardando, o barbeiro continua a espera de um cliente.
Quando o barbeiro recurso associado ao semáforo s

More Related Content

What's hot

What's hot (20)

Conceito de processos
Conceito de processosConceito de processos
Conceito de processos
 
fundamentos de sistema operacional- S.O
fundamentos de sistema operacional- S.Ofundamentos de sistema operacional- S.O
fundamentos de sistema operacional- S.O
 
Advanced mechanisms for dynamic content delivery
Advanced mechanisms for dynamic content deliveryAdvanced mechanisms for dynamic content delivery
Advanced mechanisms for dynamic content delivery
 
Sistemas Operacionais - Aula 8 - Sincronização e Comunicação entre Processos
Sistemas Operacionais - Aula 8 - Sincronização e Comunicação entre ProcessosSistemas Operacionais - Aula 8 - Sincronização e Comunicação entre Processos
Sistemas Operacionais - Aula 8 - Sincronização e Comunicação entre Processos
 
Introdução básica ao JavaScript
Introdução básica ao JavaScriptIntrodução básica ao JavaScript
Introdução básica ao JavaScript
 
UML - Diagrama de Pacotes
UML - Diagrama de PacotesUML - Diagrama de Pacotes
UML - Diagrama de Pacotes
 
Identificar Requisitos Funcionais.pdf
Identificar Requisitos Funcionais.pdfIdentificar Requisitos Funcionais.pdf
Identificar Requisitos Funcionais.pdf
 
Ajax Ppt 1
Ajax Ppt 1Ajax Ppt 1
Ajax Ppt 1
 
Semaphores
SemaphoresSemaphores
Semaphores
 
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
 
Apache Spark Introduction
Apache Spark IntroductionApache Spark Introduction
Apache Spark Introduction
 
Ingesting Data at Blazing Speed Using Apache Orc
Ingesting Data at Blazing Speed Using Apache OrcIngesting Data at Blazing Speed Using Apache Orc
Ingesting Data at Blazing Speed Using Apache Orc
 
Map Reduce
Map ReduceMap Reduce
Map Reduce
 
Php basics
Php basicsPhp basics
Php basics
 
Stored Procedures and Triggers
Stored Procedures and TriggersStored Procedures and Triggers
Stored Procedures and Triggers
 
Web server
Web serverWeb server
Web server
 
Cube rollup slides
Cube rollup slidesCube rollup slides
Cube rollup slides
 
Xml http request
Xml http requestXml http request
Xml http request
 
Swap-space Management
Swap-space ManagementSwap-space Management
Swap-space Management
 
Os Threads
Os ThreadsOs Threads
Os Threads
 

Viewers also liked

Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionais
DuFelix02
 
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
 
Sistemas Distribuídos - Comunicação Distribuída - Socket
Sistemas Distribuídos - Comunicação Distribuída - SocketSistemas Distribuídos - Comunicação Distribuída - Socket
Sistemas Distribuídos - Comunicação Distribuída - Socket
Adriano Teixeira de Souza
 

Viewers also liked (10)

Sistemas Operacionais 10 comunicação entre processos
Sistemas Operacionais 10   comunicação entre processosSistemas Operacionais 10   comunicação entre processos
Sistemas Operacionais 10 comunicação entre processos
 
Sistemas Distribuídos - Aula 05
Sistemas Distribuídos - Aula 05Sistemas Distribuídos - Aula 05
Sistemas Distribuídos - Aula 05
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionais
 
Sockets : Introdução
Sockets : IntroduçãoSockets : Introdução
Sockets : Introdução
 
SO-03 Comunicação e Sincronização de Processos
SO-03 Comunicação e Sincronização de ProcessosSO-03 Comunicação e Sincronização de Processos
SO-03 Comunicação e Sincronização de Processos
 
Sistemas operacionais 5
Sistemas operacionais   5Sistemas operacionais   5
Sistemas operacionais 5
 
Capítulo 2 - Sistemas Distribuídos - Coulouris
Capítulo 2 - Sistemas Distribuídos - CoulourisCapítulo 2 - Sistemas Distribuídos - Coulouris
Capítulo 2 - Sistemas Distribuídos - Coulouris
 
Sistemas Operacionais Multimidia Cap7 Tanenbaum
Sistemas Operacionais Multimidia   Cap7 TanenbaumSistemas Operacionais Multimidia   Cap7 Tanenbaum
Sistemas Operacionais Multimidia Cap7 Tanenbaum
 
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 Distribuídos - Comunicação Distribuída - Socket
Sistemas Distribuídos - Comunicação Distribuída - SocketSistemas Distribuídos - Comunicação Distribuída - Socket
Sistemas Distribuídos - Comunicação Distribuída - Socket
 

Similar to Sincronização e comunicação entre processos

Estudo sistemas operacionais p2
Estudo sistemas operacionais  p2Estudo sistemas operacionais  p2
Estudo sistemas operacionais p2
Gustavo Souza
 
Tópicos - Computacao Paralela Programação (Visão geral)
Tópicos - Computacao Paralela Programação (Visão geral)Tópicos - Computacao Paralela Programação (Visão geral)
Tópicos - Computacao Paralela Programação (Visão geral)
Luiz Arthur
 
Tópicos - Computacao Paralela Programação 3 (Visão geral)
Tópicos - Computacao Paralela Programação 3 (Visão geral)Tópicos - Computacao Paralela Programação 3 (Visão geral)
Tópicos - Computacao Paralela Programação 3 (Visão geral)
Luiz Arthur
 
Gabarito da P1 de PROG
Gabarito da P1 de PROGGabarito da P1 de PROG
Gabarito da P1 de PROG
Marcos de Vita
 

Similar to Sincronização e comunicação entre processos (20)

Estudo sistemas operacionais p2
Estudo sistemas operacionais  p2Estudo sistemas operacionais  p2
Estudo sistemas operacionais p2
 
Gerências de Processos: Sincronização
Gerências de Processos: SincronizaçãoGerências de Processos: Sincronização
Gerências de Processos: Sincronização
 
Problemas clássicos de comunicação interprocessos
Problemas clássicos de comunicação interprocessosProblemas clássicos de comunicação interprocessos
Problemas clássicos de comunicação interprocessos
 
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
 
Algoritmo lamport
Algoritmo lamportAlgoritmo lamport
Algoritmo lamport
 
05 - Sincronização de Threads - I
05 - Sincronização de Threads - I05 - Sincronização de Threads - I
05 - Sincronização de Threads - I
 
Hexagonal Rails
Hexagonal RailsHexagonal Rails
Hexagonal Rails
 
Estrutura de repetição
Estrutura de repetiçãoEstrutura de repetição
Estrutura de repetiçã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
 
Casos de uso
Casos de usoCasos de uso
Casos de uso
 
Capítulo 11 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 11 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Capítulo 11 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 11 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
 
Resenha WoSida 2015
Resenha WoSida 2015Resenha WoSida 2015
Resenha WoSida 2015
 
Redes de computador
Redes de computadorRedes de computador
Redes de computador
 
Rm1150230212 totvs gestao_bibliotecaria
Rm1150230212 totvs gestao_bibliotecariaRm1150230212 totvs gestao_bibliotecaria
Rm1150230212 totvs gestao_bibliotecaria
 
Tópicos - Computacao Paralela Programação (Visão geral)
Tópicos - Computacao Paralela Programação (Visão geral)Tópicos - Computacao Paralela Programação (Visão geral)
Tópicos - Computacao Paralela Programação (Visão geral)
 
Desenvolvimento Client-Side 2016
Desenvolvimento Client-Side 2016Desenvolvimento Client-Side 2016
Desenvolvimento Client-Side 2016
 
Tópicos - Computacao Paralela Programação 3 (Visão geral)
Tópicos - Computacao Paralela Programação 3 (Visão geral)Tópicos - Computacao Paralela Programação 3 (Visão geral)
Tópicos - Computacao Paralela Programação 3 (Visão geral)
 
Sistemas Operacionais - Aula 05 (Concorrência)
Sistemas Operacionais - Aula 05 (Concorrência)Sistemas Operacionais - Aula 05 (Concorrência)
Sistemas Operacionais - Aula 05 (Concorrência)
 
Trabalho individual
Trabalho individualTrabalho individual
Trabalho individual
 
Gabarito da P1 de PROG
Gabarito da P1 de PROGGabarito da P1 de PROG
Gabarito da P1 de PROG
 

Sincronização e comunicação entre processos

  • 1.
  • 2.
  • 3. 1.SINCRONIZAÇÃO E COMUNICAÇÃO ENTRE PROCESSOS Na década de 1960, com o surgimento dos sistemas multiprogramáveis, passou a ser possível estruturar aplicações, Este tipo de aplicação, denominada aplicação concorrente, tem como base a execução cooperativa de múltiplos processos Em sistemas multiprogramável com um único processador, os processos alternam sua execução segundo critérios de escalonamento estabelecidos pelo Sistema Operacional. O compartilhamento de recursos entre os processos pode ocasionar situações indesejáveis, capazes até de comprometer a execução das aplicações. Para evitar esse tipo de problema, os processos concorrentes devem ter suas execuções sincronizadas, a partir de mecanismos oferecidos pelo sistema operacional, com o objetivo de garantir o processamento correto dos programas. 2.Aplicações Concorrentes Os mecanismos que garantem a comunicação entre os processos concorrentes e o acesso aos recursos são chamados de mecanismos de sincronização. Muitas vezes, em uma aplicação concorrente, é necessário que processos comuniquem-se entre si, e essa comunicação pode ser implementada de diversos mecanismos, como troca de mensagens. No projeto de sistemas operacionais multiprogramáveis, é fundamental a implementação destes mecanismos para garantir a integridade e a confiabilidade na execução de aplicações concorrentes. Sincronização Processo de gravação Processo leitura Buffer Dados
  • 4. Aqui estão dois processos concorrentes, a compartilhar um buffer para trocar informações através do processo de gravação e leitura. 2.1.Problemas de Compartilhamento de Recurso Na falha na sincronização entre processosconcorrentes podemocorreras seguistes problemas. 1. Problema do programa Conta_Corrente Que atualiza o saldo bancário de um cliente após um lançamento de débito ou crédito no arquivo de contas correntes. Neste arquivo são armazenados os saldos de todos oscorrentistas do banco. O programa lê o registro do cliente no arquivo, lê o valor a ser depositado ou retirado e, em seguida, atualiza o saldo no arquivode contas Ex: PROGRAMConta_Corrente; . . READ (Arq_Contas, Reg_Cliente); READLN (Valor_Dep_Ret); Reg_Cliente.Saldo := Reg_Cliente.Saldo + Valor_Dep_Ret; WRITE (Arq_Contas, Reg_Cliente); . END. 3. Sincronização Condicional
  • 5. E uma situação onde o acesso ao recurso compartilhado exige a sincronização de processos vinculada a uma condição de acesso. Um recurso podenão se encontrar pronto para uso devido a uma condição específica. Nesse caso, o processoque deseja acessá-lo deverá permanecer bloqueado (em espera) até que o recurso fique disponível. Ex: Problema do Produtor/Consumidorou Problema do Buffer Limitado. No caso, o recurso compartilhado é um buffer, sendo controlado por uma variável. Sempre que a variável for 0, significa que o buffer esta vazio e o processo quelê dados dessebuffer, chamado de processo consumidordeve permanecer aguardando (fica no estado de espera) até que se grave um dado. Da mesma forma, quando a variável for igual ao tamanho do buffer, significa que o buffer está cheio e o processoprodutordeve aguardar (estado de espera) a leitura de um novo dado. Nesta solução, a tarefa de ler ou gravar dados no buffer é realizado por dois procedimentos que executam concorrentemente, de forma mutuamente exclusiva. 4.Semáforo Um semáforo é uma variável inteira, não negativa, que só podeser manipulada por duas instruções: DOWN e Up. A instrução UP incrementa uma unidade ao valor do semáforo, enquanto a DOWN decrementa a variável. Como valores negativos não podemser atribuídos a um semáforo, a instrução DOWN executada em um semáforo com valor 0, faz com que o processoentre no estado de espera.
  • 6. Os semáforos podemser classificados como binários ou contadores. Os semáforos binários só podem assumir os valores 0 e 1, enquanto os semáforos contadores podemassumir qualquer valor inteiro positivo, além do 0. 4.1.Exclusão Mútua Utilizando Semáforos A exclusão mútua podeser implementada através de um semáforo binário associado ao recurso compartilhado. A principal vantagem desta solução não ocorrência da espera ocupada.O semáforo fica associado a um recurso compartilhado, indicando quando o recurso está sendo acessado por um dos processos concorrentes.Seo semáforo for igual a 1, então o semáforo é decrementado e o processo consegueexecutar sua região crítica. Caso o semáforo seja 0, então o processo écolocado em estado de espera, não gerando um overhead do sistema. 4.2. Sincronização Condicional Utilizando Semáforos Ocorre quando um processosolicita uma operação de Entrada/Saída. O pedido faz com que o processo execute uma instrução DOWN no semáforo associado ao evento e fique no estado de espera, até que a operação seja completada. Quando a operação termina, a rotina de tratamento da interrupção executa um UP no semáforo, liberando o processodo estado de espera. 4.3. Problema dos Filósofos O problema dos filósofos é um exemplo clássico de sincronização de processos. Nesse problema, há uma mesa com cinco pratos e cinco garfos, onde os filósofos podemsentar, comer e pensar. Todavez que um filósofo para de pensar e deseja comer, é necessário que ele utilize dois garfos, posicionados à sua direita e à sua esquerda.
  • 7. Existem várias soluções para resolver o problema dos filósofos, entre elas: 1.Permitir que apenas quatro filósofos sentassem à mesa simultaneamente; 2. Permitir que um filósofo pegue um garfo apenas se o outro estiver disponível; 3. Permitir que um filósofo ímpar pegue primeiro o seu garfo da esquerda e depois o da direita, enquanto um filósofo par pegue o garfo da direita e, em seguida, o da esquerda. 1.8 . Problema do Barbeiro O problema do barbeiro é outro exemplo clássico de sincronização de Processos. Neste problema, um barbeiro recebe clientes para cortar o cabelo. Na barbearia há uma cadeira de barbeiro e apenas cinco cadeiras para clientes esperarem. Quando um cliente chega, caso o barbeiroesteja trabalhando, ele senta se houver uma cadeira vazia ou vai embora se todas as cadeiras estiverem ocupadas. No caso de o barbeiro não ter nenhum cliente para atender, ela senta na cadeira e dorme até que um novo cliente apareça. A solução utiliza um semáforo contador e dois semáforos binários. Quando o barbeiro seleciona um cliente para atender, é executada uma instrução DOWN no semáforo contador. Caso não exista nenhum cliente aguardando, o barbeiro continua a espera de um cliente. Quando o barbeiro recurso associado ao semáforo s