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

Weitere ähnliche Inhalte

Was ist angesagt?

Estrutura de Dados em Algoritmo C
Estrutura de Dados em Algoritmo CEstrutura de Dados em Algoritmo C
Estrutura de Dados em Algoritmo CVinícius Moraes
 
Informática Básica - Introdução ao Microsoft Word 2010
Informática Básica - Introdução ao Microsoft Word 2010Informática Básica - Introdução ao Microsoft Word 2010
Informática Básica - Introdução ao Microsoft Word 2010Joeldson Costa Damasceno
 
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)Gercélia Ramos
 
Aula 9 - Resultado Operandos Matemáticos, Operadores Aritmeticos, Relacionais...
Aula 9 - Resultado Operandos Matemáticos, Operadores Aritmeticos, Relacionais...Aula 9 - Resultado Operandos Matemáticos, Operadores Aritmeticos, Relacionais...
Aula 9 - Resultado Operandos Matemáticos, Operadores Aritmeticos, Relacionais...André Constantino da Silva
 
Sistema De GestãO De ClíNica VeterináRia
Sistema De GestãO De ClíNica VeterináRiaSistema De GestãO De ClíNica VeterináRia
Sistema De GestãO De ClíNica VeterináRiaguest4f7dd23
 
Modelagem Aplicações Web com UML
Modelagem Aplicações Web com UMLModelagem Aplicações Web com UML
Modelagem Aplicações Web com UMLClaudio Martins
 
5 – Desenvolvimento de Páginas Web Dinâmicas PHP: introdução
5 – Desenvolvimento de Páginas Web Dinâmicas PHP: introdução5 – Desenvolvimento de Páginas Web Dinâmicas PHP: introdução
5 – Desenvolvimento de Páginas Web Dinâmicas PHP: introduçãoAgrupamento de Escolas da Batalha
 
Banco de Dados Distribuídos - MySql
Banco de Dados Distribuídos - MySqlBanco de Dados Distribuídos - MySql
Banco de Dados Distribuídos - MySqlAdail Viana Neto
 
Tutorial - Criando Banco com MySQL Workbench
Tutorial - Criando Banco com MySQL WorkbenchTutorial - Criando Banco com MySQL Workbench
Tutorial - Criando Banco com MySQL WorkbenchDaniel Brandão
 
تفسير الجلالين الجزء الاول
تفسير الجلالين الجزء الاولتفسير الجلالين الجزء الاول
تفسير الجلالين الجزء الاولNoor Al Islam
 
A1 - Sql Injection na Prática Parte 01
A1 - Sql Injection na Prática Parte 01A1 - Sql Injection na Prática Parte 01
A1 - Sql Injection na Prática Parte 01Reinaldo Junior
 
Algoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigoAlgoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigoMauro Pereira
 
Apresentação Excel
Apresentação ExcelApresentação Excel
Apresentação ExcelTic Eslc
 
Java básico - Módulo 04: Estruturas de controle
Java   básico - Módulo 04:  Estruturas de controleJava   básico - Módulo 04:  Estruturas de controle
Java básico - Módulo 04: Estruturas de controleProfessor Samuel Ribeiro
 

Was ist angesagt? (20)

Servidor Proxy Squid
Servidor Proxy SquidServidor Proxy Squid
Servidor Proxy Squid
 
Estrutura de Dados em Algoritmo C
Estrutura de Dados em Algoritmo CEstrutura de Dados em Algoritmo C
Estrutura de Dados em Algoritmo C
 
Informática Básica - Introdução ao Microsoft Word 2010
Informática Básica - Introdução ao Microsoft Word 2010Informática Básica - Introdução ao Microsoft Word 2010
Informática Básica - Introdução ao Microsoft Word 2010
 
Sd01 (si) sistemas de arquivos
Sd01 (si)   sistemas de arquivosSd01 (si)   sistemas de arquivos
Sd01 (si) sistemas de arquivos
 
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
 
Aula 9 - Resultado Operandos Matemáticos, Operadores Aritmeticos, Relacionais...
Aula 9 - Resultado Operandos Matemáticos, Operadores Aritmeticos, Relacionais...Aula 9 - Resultado Operandos Matemáticos, Operadores Aritmeticos, Relacionais...
Aula 9 - Resultado Operandos Matemáticos, Operadores Aritmeticos, Relacionais...
 
Apostila Introdução à Farmácia
Apostila Introdução à FarmáciaApostila Introdução à Farmácia
Apostila Introdução à Farmácia
 
Sistema De GestãO De ClíNica VeterináRia
Sistema De GestãO De ClíNica VeterináRiaSistema De GestãO De ClíNica VeterináRia
Sistema De GestãO De ClíNica VeterináRia
 
Modelagem Aplicações Web com UML
Modelagem Aplicações Web com UMLModelagem Aplicações Web com UML
Modelagem Aplicações Web com UML
 
5 – Desenvolvimento de Páginas Web Dinâmicas PHP: introdução
5 – Desenvolvimento de Páginas Web Dinâmicas PHP: introdução5 – Desenvolvimento de Páginas Web Dinâmicas PHP: introdução
5 – Desenvolvimento de Páginas Web Dinâmicas PHP: introdução
 
Banco de Dados Distribuídos - MySql
Banco de Dados Distribuídos - MySqlBanco de Dados Distribuídos - MySql
Banco de Dados Distribuídos - MySql
 
Tutorial - Criando Banco com MySQL Workbench
Tutorial - Criando Banco com MySQL WorkbenchTutorial - Criando Banco com MySQL Workbench
Tutorial - Criando Banco com MySQL Workbench
 
Historia da homeopatia
Historia da homeopatiaHistoria da homeopatia
Historia da homeopatia
 
Javascript aula 01 - visão geral
Javascript   aula 01 - visão geralJavascript   aula 01 - visão geral
Javascript aula 01 - visão geral
 
تفسير الجلالين الجزء الاول
تفسير الجلالين الجزء الاولتفسير الجلالين الجزء الاول
تفسير الجلالين الجزء الاول
 
A1 - Sql Injection na Prática Parte 01
A1 - Sql Injection na Prática Parte 01A1 - Sql Injection na Prática Parte 01
A1 - Sql Injection na Prática Parte 01
 
Algoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigoAlgoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigo
 
Apresentação Excel
Apresentação ExcelApresentação Excel
Apresentação Excel
 
Java básico - Módulo 04: Estruturas de controle
Java   básico - Módulo 04:  Estruturas de controleJava   básico - Módulo 04:  Estruturas de controle
Java básico - Módulo 04: Estruturas de controle
 
Curso balconista farmacia
Curso balconista farmaciaCurso balconista farmacia
Curso balconista farmacia
 

Andere mochten auch

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 processosMauro Duarte
 
Sistemas Distribuídos - Aula 05
Sistemas Distribuídos - Aula 05Sistemas Distribuídos - Aula 05
Sistemas Distribuídos - Aula 05Arthur Emanuel
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionaisDuFelix02
 
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 ProcessosEduardo Nicola F. Zagari
 
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 - CoulourisWindson Viana
 
Sistemas Operacionais Multimidia Cap7 Tanenbaum
Sistemas Operacionais Multimidia   Cap7 TanenbaumSistemas Operacionais Multimidia   Cap7 Tanenbaum
Sistemas Operacionais Multimidia Cap7 Tanenbaumandfelipe
 
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 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 - SocketAdriano Teixeira de Souza
 

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

Ähnlich wie Sincronização de Processos Concorrentes e Solução de Problemas Clássicos

Estudo sistemas operacionais p2
Estudo sistemas operacionais  p2Estudo sistemas operacionais  p2
Estudo sistemas operacionais p2Gustavo Souza
 
Gerências de Processos: Sincronização
Gerências de Processos: SincronizaçãoGerências de Processos: Sincronização
Gerências de Processos: SincronizaçãoAlexandre 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 interprocessosLucas 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, DeadlockWilliams Gomes da Silva
 
05 - Sincronização de Threads - I
05 - Sincronização de Threads - I05 - Sincronização de Threads - I
05 - Sincronização de Threads - IFabio Moura Pereira
 
Hexagonal Rails
Hexagonal RailsHexagonal Rails
Hexagonal RailsLuiz Costa
 
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
 
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 ProcessosCharles 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 !
 
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 2016Huge
 
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
 

Ähnlich wie Sincronização de Processos Concorrentes e Solução de Problemas Clássicos (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 de Processos Concorrentes e Solução de Problemas Clássicos

  • 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