Professional Documents
Culture Documents
10/11/2012
Como vivemos?
Como so as coisas do mundo natural?
10/11/2012
Como vivemos?
Como so as coisas do mundo natural?
Complexas ?
10/11/2012
Como vivemos?
Como so as coisas do mundo natural?
Complexas ?
Interrelacionadas ?
10/11/2012
Como vivemos?
Como so as coisas do mundo natural?
Complexas ?
Interrelacionadas ?
Paralelas ?
10/11/2012 Sistemas Operacionais Comunicao entre tarefas 5
Computadores x Problemas
A computao tradicional seqencial
Melhor Soluo
Como resolver isso em termos de programa?
Estruturar as implementaes na forma de vrias tarefas interdependentes que cooperam entre si para atingir os objetivos da aplicao.
10/11/2012
Justificativa
Razes para justificar a construo de sistemas baseados em tarefas cooperantes: Atender vrios usurios simultneos Uso de computadores multi-processador Modularidade Construo de aplicaes interativas
10/11/2012
Soluo
Para que as tarefas presentes em um sistema possam cooperar, elas precisam: Se comunicar, compartilhando as informaes necessrias execuo de cada tarefa, e coordenando suas atividades, para que os resultados obtidos sejam consistentes (sem erros).
10/11/2012
Escopo da comunicao
Tarefas cooperantes precisam trocar informaes entre si, por exemplo:
10/11/2012
10
Escopo da comunicao
Situaes:
Simples: Mesmo Processo
(mesma rea de memria e variveis globais comuns)
10/11/2012
11
Escopo da comunicao
Situaes:
Complexa: Processos distintos
(comunicao via kernel e systems calls)
10/11/2012
12
Escopo da comunicao
Situaes:
Complexa: Computadores diferentes
(comunicao via kernel com suporte a rede)
10/11/2012
13
10/11/2012
14
10/11/2012
15
10/11/2012
16
Sincronismo
Comunicao Sncrona
comunicao bloqueante
10/11/2012
17
Sincronismo
Comunicao Assncrona
comunicao no-bloqueante e necessidade de buffer
10/11/2012
18
Sincronismo
Comunicao Semi-sncrona
Primitivas de Comunicao: enviar (dados, destino, prazo) receber (dados, origem, prazo)
10/11/2012
19
Formato de envio
A informao enviada pelo emissor ao receptor pode ser vista basicamente de duas formas:
sequncia de mensagens independentes, cada uma com seu prprio contedo fluxo sequencial e contnuo de dados, imitando o comportamento de um arquivo com acesso sequencial.
10/11/2012
20
Formato de envio
Mensagens
10/11/2012
21
Formato de envio
Baseado em fluxo
10/11/2012
22
10/11/2012
23
10/11/2012
24
Nmero de participantes
Situaes em que uma tarefa necessita comunicar com vrias outras exigem estratgias diferentes:
1:1 (mailbox): quando exatamente um emissor e um receptor interagem atravs do canal de comunicao; a situao mais frequente, implementada por exemplo nos pipes e no protocolo TCP. M:N (difuso (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
10/11/2012 Sistemas Operacionais Comunicao entre tarefas 25
Nmero de participantes
M:N difuso por multicast
10/11/2012
26
Nmero de participantes
M:N - difuso por canal de eventos
10/11/2012
27
Pipes
o pipe frequentemente usado para conectar a sada padro (stdout) de um comando entrada padro (stdin) de outro comando, permitindo assim a comunicao entre eles.
10/11/2012
28
Pipes
A linha de comando a seguir traz um exemplo do uso de pipes:
# who | grep marcos | sort > login-marcos.txt
10/11/2012
29
Memria compartilhada
Processos distintos no possuem variveis comuns
A comunicao por meio do ncleo e chamadas de sistemas pode no ser adequada se o volume for grande
Soluo:
rea de memria comum que possa ser acessada direta e rapidamente pelos processos interessados (Shared memory access) gerenciados pelo ncleo acesso feito diretamente pelos processos sem intermediao ou coordenao do ncleo
10/11/2012
30
Referncias
[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.