18 SO Aula 12 Comunicacao Entre Tarefas
-
Upload
joao-rizzo -
Category
Documents
-
view
76 -
download
1
Transcript of 18 SO Aula 12 Comunicacao Entre Tarefas
![Page 1: 18 SO Aula 12 Comunicacao Entre Tarefas](https://reader034.fdocuments.net/reader034/viewer/2022050805/55721155497959fc0b8ecb45/html5/thumbnails/1.jpg)
13/04/23Sistemas Operacionais
Comunicação entre tarefas1
Sistemas OperacionaisIII – Comunicação entre tarefas
Prof. Elias Carvalho
![Page 2: 18 SO Aula 12 Comunicacao Entre Tarefas](https://reader034.fdocuments.net/reader034/viewer/2022050805/55721155497959fc0b8ecb45/html5/thumbnails/2.jpg)
13/04/23Sistemas Operacionais
Comunicação entre tarefas2
Como vivemos?
• Como são as coisas do mundo natural?
![Page 3: 18 SO Aula 12 Comunicacao Entre Tarefas](https://reader034.fdocuments.net/reader034/viewer/2022050805/55721155497959fc0b8ecb45/html5/thumbnails/3.jpg)
13/04/23Sistemas Operacionais
Comunicação entre tarefas3
Como vivemos?
• Como são as coisas do mundo natural?
Complexas?
![Page 4: 18 SO Aula 12 Comunicacao Entre Tarefas](https://reader034.fdocuments.net/reader034/viewer/2022050805/55721155497959fc0b8ecb45/html5/thumbnails/4.jpg)
13/04/23Sistemas Operacionais
Comunicação entre tarefas4
Como vivemos?
• Como são as coisas do mundo natural?
Complexas?
Inter-relacionadas
?
![Page 5: 18 SO Aula 12 Comunicacao Entre Tarefas](https://reader034.fdocuments.net/reader034/viewer/2022050805/55721155497959fc0b8ecb45/html5/thumbnails/5.jpg)
13/04/23Sistemas Operacionais
Comunicação entre tarefas5
Como vivemos?
• Como são as coisas do mundo natural?
Inter-relacionadas
?
Paralelas
?
Complexas?
![Page 6: 18 SO Aula 12 Comunicacao Entre Tarefas](https://reader034.fdocuments.net/reader034/viewer/2022050805/55721155497959fc0b8ecb45/html5/thumbnails/6.jpg)
13/04/23Sistemas Operacionais
Comunicação entre tarefas6
Computadores x Problemas
• A computação tradicional é seqüencial
Nem sempre é a melhor solução para os problemas
![Page 7: 18 SO Aula 12 Comunicacao Entre Tarefas](https://reader034.fdocuments.net/reader034/viewer/2022050805/55721155497959fc0b8ecb45/html5/thumbnails/7.jpg)
13/04/23Sistemas Operacionais
Comunicação entre tarefas7
Melhor Solução
• Como resolver isso em termos de programa?– Estruturar as
implementações na forma de várias tarefas inter-dependentes que cooperam entre si para atingir os objetivos da aplicação.
![Page 8: 18 SO Aula 12 Comunicacao Entre Tarefas](https://reader034.fdocuments.net/reader034/viewer/2022050805/55721155497959fc0b8ecb45/html5/thumbnails/8.jpg)
13/04/23Sistemas Operacionais
Comunicação entre tarefas8
Justificativa
• Razões para justificar a construção de sistemas baseados em tarefas cooperantes:– Atender vários usuários simultâneos – Uso de computadores multi-processador– Modularidade– Construção de aplicações interativas
![Page 9: 18 SO Aula 12 Comunicacao Entre Tarefas](https://reader034.fdocuments.net/reader034/viewer/2022050805/55721155497959fc0b8ecb45/html5/thumbnails/9.jpg)
13/04/23Sistemas Operacionais
Comunicação entre tarefas9
Solução
• Para que as tarefas presentes em um sistema possam cooperar, elas precisam:– Se comunicar, compartilhando as
informações necessárias à execução de cada tarefa, e coordenando suas atividades, para que os resultados obtidos sejam consistentes (sem erros).
![Page 10: 18 SO Aula 12 Comunicacao Entre Tarefas](https://reader034.fdocuments.net/reader034/viewer/2022050805/55721155497959fc0b8ecb45/html5/thumbnails/10.jpg)
13/04/23Sistemas Operacionais
Comunicação entre tarefas10
Escopo da comunicação• Tarefas cooperantes precisam trocar
informações entre si, por exemplo:
![Page 11: 18 SO Aula 12 Comunicacao Entre Tarefas](https://reader034.fdocuments.net/reader034/viewer/2022050805/55721155497959fc0b8ecb45/html5/thumbnails/11.jpg)
13/04/23Sistemas Operacionais
Comunicação entre tarefas11
Escopo da comunicação• Situações:
Simples: Mesmo Processo (mesma área de memória e variáveis globais comuns)
![Page 12: 18 SO Aula 12 Comunicacao Entre Tarefas](https://reader034.fdocuments.net/reader034/viewer/2022050805/55721155497959fc0b8ecb45/html5/thumbnails/12.jpg)
13/04/23Sistemas Operacionais
Comunicação entre tarefas12
Escopo da comunicação• Situações:
Complexa: Processos distintos(comunicação via kernel e systems calls)
![Page 13: 18 SO Aula 12 Comunicacao Entre Tarefas](https://reader034.fdocuments.net/reader034/viewer/2022050805/55721155497959fc0b8ecb45/html5/thumbnails/13.jpg)
13/04/23Sistemas Operacionais
Comunicação entre tarefas13
Escopo da comunicação• Situações:
Complexa: Computadores diferentes(comunicação via kernel com suporte a rede)
![Page 14: 18 SO Aula 12 Comunicacao Entre Tarefas](https://reader034.fdocuments.net/reader034/viewer/2022050805/55721155497959fc0b8ecb45/html5/thumbnails/14.jpg)
13/04/23Sistemas Operacionais
Comunicação entre tarefas14
Características dos mecanismos de comunicação• A implementação da comunicação
entre tarefas pode ocorrer de várias formas e portanto exige:– formato dos dados a transferir– sincronismo exigido nas comunicações– necessidade de buffers– número de emissores/receptores envolvidos em cada
ação de comunicação
![Page 15: 18 SO Aula 12 Comunicacao Entre Tarefas](https://reader034.fdocuments.net/reader034/viewer/2022050805/55721155497959fc0b8ecb45/html5/thumbnails/15.jpg)
13/04/23Sistemas Operacionais
Comunicação entre tarefas15
Comunicação direta ou indireta
• Comunicação Direta– o emissor identifica claramente o receptor e
vice-versa (pouco utilizada)
Primitivas de Comunicação:• enviar (dados, destino)• receber (dados, origem)
![Page 16: 18 SO Aula 12 Comunicacao Entre Tarefas](https://reader034.fdocuments.net/reader034/viewer/2022050805/55721155497959fc0b8ecb45/html5/thumbnails/16.jpg)
13/04/23Sistemas Operacionais
Comunicação entre tarefas16
Comunicação direta ou indireta
• Comunicação Indireta (flexível)– emissor e receptor não precisam se conhecer– não interagem diretamente entre– se relacionam através de canal de um comunicação
Primitivas de Comunicação:• enviar (dados, canal)• receber (dados, canal)
![Page 17: 18 SO Aula 12 Comunicacao Entre Tarefas](https://reader034.fdocuments.net/reader034/viewer/2022050805/55721155497959fc0b8ecb45/html5/thumbnails/17.jpg)
13/04/23Sistemas Operacionais
Comunicação entre tarefas17
Sincronismo
• Comunicação Síncrona– comunicação bloqueante
![Page 18: 18 SO Aula 12 Comunicacao Entre Tarefas](https://reader034.fdocuments.net/reader034/viewer/2022050805/55721155497959fc0b8ecb45/html5/thumbnails/18.jpg)
13/04/23Sistemas Operacionais
Comunicação entre tarefas18
Sincronismo
• Comunicação Assíncrona– comunicação não-bloqueante e necessidade de
buffer
![Page 19: 18 SO Aula 12 Comunicacao Entre Tarefas](https://reader034.fdocuments.net/reader034/viewer/2022050805/55721155497959fc0b8ecb45/html5/thumbnails/19.jpg)
13/04/23Sistemas Operacionais
Comunicação entre tarefas19
Sincronismo
• Comunicação Semi-síncrona
Primitivas de Comunicação:
• enviar (dados, destino, prazo)
• receber (dados, origem, prazo)
![Page 20: 18 SO Aula 12 Comunicacao Entre Tarefas](https://reader034.fdocuments.net/reader034/viewer/2022050805/55721155497959fc0b8ecb45/html5/thumbnails/20.jpg)
13/04/23Sistemas Operacionais
Comunicação entre tarefas20
Formato de envio
• A informação enviada pelo emissor ao receptor pode ser vista basicamente de duas formas: – sequência de mensagens independentes,
cada uma com seu próprio conteúdo– fluxo sequencial e contínuo de dados,
imitando o comportamento de um arquivo com acesso sequencial.
![Page 21: 18 SO Aula 12 Comunicacao Entre Tarefas](https://reader034.fdocuments.net/reader034/viewer/2022050805/55721155497959fc0b8ecb45/html5/thumbnails/21.jpg)
13/04/23Sistemas Operacionais
Comunicação entre tarefas21
Formato de envio
• Mensagens
![Page 22: 18 SO Aula 12 Comunicacao Entre Tarefas](https://reader034.fdocuments.net/reader034/viewer/2022050805/55721155497959fc0b8ecb45/html5/thumbnails/22.jpg)
13/04/23Sistemas Operacionais
Comunicação entre tarefas22
Formato de envio
• Baseado em fluxo
![Page 23: 18 SO Aula 12 Comunicacao Entre Tarefas](https://reader034.fdocuments.net/reader034/viewer/2022050805/55721155497959fc0b8ecb45/html5/thumbnails/23.jpg)
13/04/23Sistemas Operacionais
Comunicação entre tarefas23
Capacidade dos canais
• Capacidade de buffering – Capacidade nula (n = 0) – Capacidade infinita (n = ∞) – Capacidade finita (0 < n < ∞)
![Page 24: 18 SO Aula 12 Comunicacao Entre Tarefas](https://reader034.fdocuments.net/reader034/viewer/2022050805/55721155497959fc0b8ecb45/html5/thumbnails/24.jpg)
13/04/23Sistemas Operacionais
Comunicação entre tarefas24
Confiabilidade dos canais
• Um canal pode ser confiável o não-confiável
• Erros envolvendo a comunicação:– Perda de dados– Perda de integridade– Perda da ordem (somente o canal FIFO ou
canal ordenado, garante a ordem)
![Page 25: 18 SO Aula 12 Comunicacao Entre Tarefas](https://reader034.fdocuments.net/reader034/viewer/2022050805/55721155497959fc0b8ecb45/html5/thumbnails/25.jpg)
13/04/23Sistemas Operacionais
Comunicação entre tarefas25
Número de participantes
• Situações em que uma tarefa necessita comunicar com várias outras exigem estratégias diferentes:– 1:1 (mailbox): quando exatamente um emissor e um
receptor interagem através do canal de comunicação; é a situação mais frequente, implementada por exemplo nos pipes e no protocolo TCP.
– M:N (difusão (multicast) ou canal de eventos) : quando um ou mais emissores enviam mensagens para um ou mais receptores:
• mensagem é recebida por apenas um receptor • mensagem é recebida por todos os receptores
![Page 26: 18 SO Aula 12 Comunicacao Entre Tarefas](https://reader034.fdocuments.net/reader034/viewer/2022050805/55721155497959fc0b8ecb45/html5/thumbnails/26.jpg)
13/04/23Sistemas Operacionais
Comunicação entre tarefas26
Número de participantes
• M:N – difusão por multicast
![Page 27: 18 SO Aula 12 Comunicacao Entre Tarefas](https://reader034.fdocuments.net/reader034/viewer/2022050805/55721155497959fc0b8ecb45/html5/thumbnails/27.jpg)
13/04/23Sistemas Operacionais
Comunicação entre tarefas27
Número de participantes
• M:N - difusão por canal de eventos
![Page 28: 18 SO Aula 12 Comunicacao Entre Tarefas](https://reader034.fdocuments.net/reader034/viewer/2022050805/55721155497959fc0b8ecb45/html5/thumbnails/28.jpg)
13/04/23Sistemas Operacionais
Comunicação entre tarefas28
Pipes
• o pipe é frequentemente usado para conectar a saída padrão (stdout) de um comando à entrada padrão (stdin) de outro comando, permitindo assim a comunicação entre eles.
![Page 29: 18 SO Aula 12 Comunicacao Entre Tarefas](https://reader034.fdocuments.net/reader034/viewer/2022050805/55721155497959fc0b8ecb45/html5/thumbnails/29.jpg)
13/04/23Sistemas Operacionais
Comunicação entre tarefas29
Pipes
• A linha de comando a seguir traz um exemplo do uso de pipes:
# who | grep marcos | sort > login-marcos.txt
![Page 30: 18 SO Aula 12 Comunicacao Entre Tarefas](https://reader034.fdocuments.net/reader034/viewer/2022050805/55721155497959fc0b8ecb45/html5/thumbnails/30.jpg)
13/04/23Sistemas Operacionais
Comunicação entre tarefas30
Memória compartilhada
• Processos distintos não possuem variáveis comuns
– A comunicação por meio do núcleo e chamadas de sistemas pode não ser adequada se o volume for grande
• Solução:– área de memória comum que possa
ser acessada direta e rapidamente pelos processos interessados (Shared memory access)
• gerenciados pelo núcleo• acesso feito diretamente pelos
processos• sem intermediação ou
coordenação do núcleo
![Page 31: 18 SO Aula 12 Comunicacao Entre Tarefas](https://reader034.fdocuments.net/reader034/viewer/2022050805/55721155497959fc0b8ecb45/html5/thumbnails/31.jpg)
13/04/23Sistemas Operacionais
Comunicação entre tarefas31
Referências
• [Gnome, 2005] Gnome (2005). Gnome: the free software desktop project.http://www.gnome.org.
• [Hart, 2004] Hart, J. (2004). Windows System Programming, 3rd
• edition. Addison-Wesley Professional.
• [KDE, 2005] KDE (2005). KDE desktop project. http://www.kde.org.
• [Petzold, 1998] Petzold, C. (1998). Programming Windows, 5th edition. Microsoft Press.
• [Robbins and Robbins, 2003] Robbins, K. and Robbins, S. (2003). UNIX Systems Pro-gramming. Prentice-Hall.
• [Stevens, 1998] Stevens, R. (1998). UNIX Network Programming. Prentice-Hall.