18 SO Aula 12 Comunicacao Entre Tarefas

31
07/05/22 Sistemas Operacionais Comunicação entre tarefas 1 Sistemas Operacionais III – Comunicação entre tarefas Prof. Elias Carvalho [email protected]

Transcript of 18 SO Aula 12 Comunicacao Entre Tarefas

Page 1: 18 SO Aula 12 Comunicacao Entre Tarefas

13/04/23Sistemas Operacionais

Comunicação entre tarefas1

Sistemas OperacionaisIII – Comunicação entre tarefas

Prof. Elias Carvalho

[email protected]

Page 2: 18 SO Aula 12 Comunicacao Entre Tarefas

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

13/04/23Sistemas Operacionais

Comunicação entre tarefas21

Formato de envio

• Mensagens

Page 22: 18 SO Aula 12 Comunicacao Entre Tarefas

13/04/23Sistemas Operacionais

Comunicação entre tarefas22

Formato de envio

• Baseado em fluxo

Page 23: 18 SO Aula 12 Comunicacao Entre Tarefas

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

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

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

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

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

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

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

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

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.