SlideShare uma empresa Scribd logo
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

Mais conteúdo relacionado

Mais procurados

Funcionamiento switches lan
Funcionamiento switches lanFuncionamiento switches lan
Funcionamiento switches lan
jhonatan Espit
 
Organización de un centro de cómputos
Organización de un centro de cómputosOrganización de un centro de cómputos
Organización de un centro de cómputos
berkcornie
 
Protocolo UDP
Protocolo UDPProtocolo UDP
Protocolo UDP
César Augusto Pessôa
 
Linea de tiempo
Linea de tiempoLinea de tiempo
Linea de tiempo
abigail hernandez garcia
 
Tabla comparativa de comandos
Tabla comparativa de comandosTabla comparativa de comandos
Tabla comparativa de comandos
César Manuel García Posadas
 
Llamadas al sistema de archivos y de ficheros
Llamadas al sistema de archivos y de ficherosLlamadas al sistema de archivos y de ficheros
Llamadas al sistema de archivos y de ficheros
Camilo Pacheco
 
Conceitos iniciais de Active Directory
Conceitos iniciais de Active DirectoryConceitos iniciais de Active Directory
Conceitos iniciais de Active Directory
Joeldson Costa Damasceno
 
Dominios y segmentacion
Dominios y segmentacionDominios y segmentacion
Dominios y segmentacion
Betty Ayllon
 
Seminário de Redes: Hub, Switch, Roteador, Modem e Acess Point.
Seminário de Redes: Hub, Switch, Roteador, Modem e Acess Point.Seminário de Redes: Hub, Switch, Roteador, Modem e Acess Point.
Seminário de Redes: Hub, Switch, Roteador, Modem e Acess Point.
Guilherme Santos
 
Árvores Espalhadas Mínimas
Árvores Espalhadas MínimasÁrvores Espalhadas Mínimas
Árvores Espalhadas Mínimas
Diego Cavalca
 
Sessão do Modelo OSI-Camada 5
Sessão do Modelo OSI-Camada 5Sessão do Modelo OSI-Camada 5
Sessão do Modelo OSI-Camada 5
Hélder Batista
 
Topologia em redes
Topologia em redesTopologia em redes
Topologia em redes
Yohana Alves
 
Administración y organización física de centros de computo
Administración y organización física de centros de computoAdministración y organización física de centros de computo
Administración y organización física de centros de computo
Hack '
 
Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)
Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)
Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)
Leinylson Fontinele
 
Projeto final instalação e configuração de redes locais
Projeto final  instalação e configuração de redes locaisProjeto final  instalação e configuração de redes locais
Projeto final instalação e configuração de redes locais
MarcoSoaresGI
 
Desarrollo web
Desarrollo web Desarrollo web
Desarrollo web
Anel García Pumarino
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionais
Samira Magalhaes
 
Administração de servidores Linux
Administração de servidores LinuxAdministração de servidores Linux
Administração de servidores Linux
João Sá
 
Diseño de redes usando simuladores
Diseño de redes usando simuladoresDiseño de redes usando simuladores
Diseño de redes usando simuladores
Instituto Universitario Politécnico Santiago Mariño
 
Topologia de Redes
Topologia de RedesTopologia de Redes
Topologia de Redes
Breno Damasceno
 

Mais procurados (20)

Funcionamiento switches lan
Funcionamiento switches lanFuncionamiento switches lan
Funcionamiento switches lan
 
Organización de un centro de cómputos
Organización de un centro de cómputosOrganización de un centro de cómputos
Organización de un centro de cómputos
 
Protocolo UDP
Protocolo UDPProtocolo UDP
Protocolo UDP
 
Linea de tiempo
Linea de tiempoLinea de tiempo
Linea de tiempo
 
Tabla comparativa de comandos
Tabla comparativa de comandosTabla comparativa de comandos
Tabla comparativa de comandos
 
Llamadas al sistema de archivos y de ficheros
Llamadas al sistema de archivos y de ficherosLlamadas al sistema de archivos y de ficheros
Llamadas al sistema de archivos y de ficheros
 
Conceitos iniciais de Active Directory
Conceitos iniciais de Active DirectoryConceitos iniciais de Active Directory
Conceitos iniciais de Active Directory
 
Dominios y segmentacion
Dominios y segmentacionDominios y segmentacion
Dominios y segmentacion
 
Seminário de Redes: Hub, Switch, Roteador, Modem e Acess Point.
Seminário de Redes: Hub, Switch, Roteador, Modem e Acess Point.Seminário de Redes: Hub, Switch, Roteador, Modem e Acess Point.
Seminário de Redes: Hub, Switch, Roteador, Modem e Acess Point.
 
Árvores Espalhadas Mínimas
Árvores Espalhadas MínimasÁrvores Espalhadas Mínimas
Árvores Espalhadas Mínimas
 
Sessão do Modelo OSI-Camada 5
Sessão do Modelo OSI-Camada 5Sessão do Modelo OSI-Camada 5
Sessão do Modelo OSI-Camada 5
 
Topologia em redes
Topologia em redesTopologia em redes
Topologia em redes
 
Administración y organización física de centros de computo
Administración y organización física de centros de computoAdministración y organización física de centros de computo
Administración y organización física de centros de computo
 
Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)
Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)
Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)
 
Projeto final instalação e configuração de redes locais
Projeto final  instalação e configuração de redes locaisProjeto final  instalação e configuração de redes locais
Projeto final instalação e configuração de redes locais
 
Desarrollo web
Desarrollo web Desarrollo web
Desarrollo web
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionais
 
Administração de servidores Linux
Administração de servidores LinuxAdministração de servidores Linux
Administração de servidores Linux
 
Diseño de redes usando simuladores
Diseño de redes usando simuladoresDiseño de redes usando simuladores
Diseño de redes usando simuladores
 
Topologia de Redes
Topologia de RedesTopologia de Redes
Topologia de Redes
 

Destaque

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
Mauro Duarte
 
Sistemas Distribuídos - Aula 05
Sistemas Distribuídos - Aula 05Sistemas Distribuídos - Aula 05
Sistemas Distribuídos - Aula 05
Arthur Emanuel
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionais
DuFelix02
 
Sockets : Introdução
Sockets : IntroduçãoSockets : Introdução
Sockets : Introdução
ETEC Monsenhor Antonio Magliano
 
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
Eduardo Nicola F. Zagari
 
Sistemas operacionais 5
Sistemas operacionais   5Sistemas operacionais   5
Sistemas operacionais 5
Fernando Vieira
 
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
Windson Viana
 
Sistemas Operacionais Multimidia Cap7 Tanenbaum
Sistemas Operacionais Multimidia   Cap7 TanenbaumSistemas Operacionais Multimidia   Cap7 Tanenbaum
Sistemas Operacionais Multimidia Cap7 Tanenbaum
andfelipe
 
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
 

Destaque (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
 

Semelhante a Sincronização e comunicação entre processos

Estudo sistemas operacionais p2
Estudo sistemas operacionais  p2Estudo sistemas operacionais  p2
Estudo sistemas operacionais p2
Gustavo Souza
 
Gerências de Processos: Sincronização
Gerências de Processos: SincronizaçãoGerências de Processos: Sincronização
Gerências de Processos: Sincronização
Alexandre Duarte
 
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
Lucas Vinícius
 
Apresentação Semáforos, monitores, troca de mensagens, Deadlock
Apresentação Semáforos, monitores, troca de mensagens, DeadlockApresentação Semáforos, monitores, troca de mensagens, Deadlock
Apresentação Semáforos, monitores, troca de mensagens, Deadlock
Williams Gomes da Silva
 
Algoritmo lamport
Algoritmo lamportAlgoritmo lamport
Algoritmo lamport
Verônica Veiga
 
05 - Sincronização de Threads - I
05 - Sincronização de Threads - I05 - Sincronização de Threads - I
05 - Sincronização de Threads - I
Fabio Moura Pereira
 
Hexagonal Rails
Hexagonal RailsHexagonal Rails
Hexagonal Rails
Luiz Costa
 
Estrutura de repetição
Estrutura de repetiçãoEstrutura de repetição
Estrutura de repetição
Jailson Torquato
 
Regiões críticas dos Sistemas Operacionais
Regiões críticas dos Sistemas OperacionaisRegiões críticas dos Sistemas Operacionais
Regiões críticas dos Sistemas Operacionais
Abadia Cardoso
 
Casos de uso
Casos de usoCasos de uso
Casos de uso
carlos_neto
 
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
Charles Fortes
 
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...
Os Fantasmas !
 
Resenha WoSida 2015
Resenha WoSida 2015Resenha WoSida 2015
Resenha WoSida 2015
Deroci Nonato Júnior
 
Redes de computador
Redes de computadorRedes de computador
Redes de computador
tecnicacomputador
 
Rm1150230212 totvs gestao_bibliotecaria
Rm1150230212 totvs gestao_bibliotecariaRm1150230212 totvs gestao_bibliotecaria
Rm1150230212 totvs gestao_bibliotecaria
Tiago Henrique Ribeiro Ferreira
 
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
 
Desenvolvimento Client-Side 2016
Desenvolvimento Client-Side 2016Desenvolvimento Client-Side 2016
Desenvolvimento Client-Side 2016
Huge
 
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
 
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
 
Trabalho individual
Trabalho individualTrabalho individual
Trabalho individual
Alessandra Fraydewoks
 

Semelhante a 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
 
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
 
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
 

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