Curso de Programação Concorrente. Notas de aula

Tamanho: px
Começar a partir da página:

Download "Curso de Programação Concorrente. Notas de aula"

Transcrição

1 Curso de Programação Concorrente Notas de aula Cláudio Geyer. Programação concorrente (C. Geyer) Troca de Mensagens 1

2 Autores Autores Local C. Geyer Instituto de Informática disciplina: Sistemas Operacionais II ano: 2002/2 revisões 2004/2 2005/2 Programação concorrente (C. Geyer) Troca de Mensagens 2

3 Súmula Súmula conceitos básicos troca de mensagens, características, mensagem, primitivas, nomeação direta, direta simétrica e assimétrica, indireta identificação de processos buferização situações de erro Programação concorrente (C. Geyer) Troca de Mensagens 3

4 Bibliografia Bibliografia Andrews, G. Concurrent Programming - Principles and Practice. The Benjamin/Cummings, Redwood, Andrews, G. Foundations of Multithreaded, Parallel, and Distributed. Addison-Wesley, Silberschatz, A. and Galvin, P. Operating Systems Concepts. (Fith edition), Reading, MA, Addison-Wesley, Usado na preparação inicial desses slides (seção 4.6 da 4a edição, 1994) Tanenbaum, A.S. Modern Operating Systems. Englewood Clifss, NJ, Prentice-Hall, Programação concorrente (C. Geyer) Troca de Mensagens 4

5 Biblografia Bibliografia relacionada Lynch, N. Distributed Algorithms. Morgan Kaufmann Publishers, Inc., San Francisco, CA, Barbosa, V. C. An Introduction to Distributed Algorithms. MIT Press, Raynal, M. Distributed algorithms and protocols. Wiley, Chichester, Programação concorrente (C. Geyer) Troca de Mensagens 5

6 Conceitos Básicos Conceitos básicos definição: modelo de comunicação para processos que não compartilham variáveis modelo de comunicação onde dados privados de um processo são enviados (comunicados, copiados) a outro processo através de mecanismos (primitivas) especiais Programação concorrente (C. Geyer) Troca de Mensagens 6

7 Conceitos Básicos Conceitos básicos motivação modelo de processos, como o Unix, onde não há compartilhamento de variáveis mesmo sobre memória fisicamente compartilhada (mesma máquina) processos executando em máquinas distintas, sem memória fisicamente compartilhada outros nomes redes de computadores: processos em 2 estações diferentes IPC: interprocess communication alguns autores incluem também nesse nome a comunicação por variáveis compartilhadas Programação concorrente (C. Geyer) Troca de Mensagens 7

8 Conceitos Básicos Conceitos básicos (cont.) características gerais comunicação e sincronização na mesmas primitivas diferentes sintaxes e semânticas pode ser usado conjuntamente com variáveis compartilhadas Programação concorrente (C. Geyer) Troca de Mensagens 8

9 Conceitos Básicos Conceitos básicos (cont.) primitivas mínimas send(mensagem) processo A envia dados contidos em mensagem a outro processo receive(mensagem) processo B recebe dados contidos em mensagem send mensagem receive A B Programação concorrente (C. Geyer) Troca de Mensagens 9

10 Conceitos Básicos Conceitos básicos (cont.) tamanho da mensagem fixo variável implementação da primitiva é mais simples programação mais complexa quando as mensagens da aplicação tem tamanho variável eventualmente, o programador precisa explicitar o tamanho de cada mensagem canal de comunicação também chamado de ligação (link) suporte abstrato (lógico, de programação) pelo qual as mensagens são transferidas de um processo a outro Programação concorrente (C. Geyer) Troca de Mensagens 10

11 Conceitos Básicos Conceitos básicos (cont.) propriedades dos canais de comunicação como o canal é estabelecido (criado)? quantos processos (2 ou mais) podem estar associados a um canal? quantos canais distintos podem existir entre 2 processos? qual é a capacidade em mensagens (ou bytes) de um canal? tamanho das mensagens: fixo, variável, limite canal unidirecional ou bidirecional? mensagens somente em um sentido ou nos dois? se um canal está associado a somente 2 processos: unidirecional: somente um processo pode enviar e o outro somente receber Programação concorrente (C. Geyer) Troca de Mensagens 11

12 Conceitos Básicos Conceitos básicos (cont.) propriedades dos canais de comunicação outros tipos comunicação direta ou indireta comunicação simétrica ou assimétrica buferização automática ou explícita envio por cópia ou por referência Programação concorrente (C. Geyer) Troca de Mensagens 12

13 Nomeação Nomeação conceito como os processos se designam durante a comunicação comunicação direta cada processo deve explicitar a identificação do outro processo send(p, mensagem) processo envia mensagem ao processo P receive(q, mensagem) processo recebe mensagem enviada por Q somente de Q! Programação concorrente (C. Geyer) Troca de Mensagens 13

14 Nomeação Nomeação comunicação direta usualmente o canal é estabelecido automaticamente entre os dois processos basta que eles se conheçam um canal liga somente dois processos entre dois processos existe somente 1 canal bidirecional Programação concorrente (C. Geyer) Troca de Mensagens 14

15 Nomeação Nomeação(cont.) comunicação direta (cont.) exemplo produtor-consumidor produtor gera elemento e envia ao consumidor por um send consumidor recebe elemento por um receive e o consome observações variáveis elemento distintas nos dois processos Programação concorrente (C. Geyer) Troca de Mensagens 15

16 Nomeação(cont.) comunicação direta (cont.) exemplo produtor-consumidor diagrama Nomeação Elemento Produtor Consumidor Programação concorrente (C. Geyer) Troca de Mensagens 16

17 Nomeação Nomeação(cont.) comunicação direta (cont.) exemplo produtor-consumidor Código produtor repeat... produz(elemento);... send(consumidor, elemento);... until false; Programação concorrente (C. Geyer) Troca de Mensagens 17

18 Nomeação Nomeação(cont.) comunicação direta (cont.) exemplo produtor-consumidor código consumidor repeat... receive(produtor, elemento);... consome(elemento);... until false; Programação concorrente (C. Geyer) Troca de Mensagens 18

19 Nomeação(cont.) comunicação direta simétrica Nomeação tanto emissor quanto o receptor devem conhecer (ou explicitar) o parceiro comunicação direta assimétrica somente o emissor conhece o receptor receptor não nomeia o emissor recebe de qualquer outro processo emissor usualmente se usa a constante any ou null receive(any, mensagem) desvantagens da comunicação direta caso os nomes de processos sejam alterados, é necessário alterar todas as primitivas send/receive Programação concorrente (C. Geyer) Troca de Mensagens 19

20 Nomeação Nomeação(cont.) tipos de identificação de processos estática usualmente strings definidos pelo programador e passados ao sistema de troca de mensagens (implementação) durante a criação do processo exemplo: kernel HetNOS; mw proposto em projeto de pesquisa do II/ seqüência de inteiros atribuída pelo sistema no início da execução exemplo: MPI Programação concorrente (C. Geyer) Troca de Mensagens 20

21 Nomeação Nomeação(cont.) tipos de identificação de processos dinâmica identificadores criados pelo sistema no momento da criação de cada processo exemplo: Unix (fork), PVM, linguagens orientadas a objetos Programação concorrente (C. Geyer) Troca de Mensagens 21

22 Nomeação indireta conceitos uso de caixas postais onde Nomeação Indireta processos emissores colocam suas mensagens processos receptores retiram suas mensagens usualmente conceitualmente uma caixa postal pode ser compartilhada por vários processos emissores e receptores em alguns casos, somente um processo compartilha em recepção motivo: dificuldade de implementação exemplo: canais da linguagem SR Programação concorrente (C. Geyer) Troca de Mensagens 22

23 Nomeação Indireta Nomeação indireta conceitos primitivas send(c, mensagem) receive(c, mensagem) onde C é o nome da caixa postal Programação concorrente (C. Geyer) Troca de Mensagens 23

24 Nomeação Indireta Nomeação indireta caixas postais de processo um processo é responsável pela criação da caixa postal caixa postal pertence ao processo ela é destruída automaticamente quando o processo é destruído exige eventualmente um aviso aos outros processos usualmente somente ele pode receber pela caixa Programação concorrente (C. Geyer) Troca de Mensagens 24

25 Nomeação indireta caixas postais de processo para o uso por outros processos Nomeação Indireta o identificador da caixa postal deve ser enviado aos outros processos usualmente por troca de mensagens como desbloquear a primeira troca? o processo proprietário cria o processo emissor e nesse momento passa a caixa como argumento da primitiva de criação fork(caixa_postal_1,...) através de primitivas especiais Programação concorrente (C. Geyer) Troca de Mensagens 25

26 Nomeção Indireta Nomeação indireta caixas postais de processo (cont.) criação de caixas postais de processo diversos modos por exemplo: por variáveis de tipo predefinido exemplo: os channel em SR Programação concorrente (C. Geyer) Troca de Mensagens 26

27 Nomeação indireta Nomeação indireta caixas postais de sistema pertence ao sistema e não a um processo sistema oferece primitivas para criação de caixas postais envio e recepção de mensagens destruição de caixas postais Programação concorrente (C. Geyer) Troca de Mensagens 27

28 Nomeação indireta Nomeação indireta caixas postais de sistema proprietário da caixa postal inicialmente o processo que solicitou a criação eventualmente existem primitivas para alteração de privilégios como troca de proprietário quem pode enviar ou receber destruição automática em caso de nenhum processo solicitar a destruição similar a um coletor de lixo (garbage collector) Programação concorrente (C. Geyer) Troca de Mensagens 28

29 Estática Direta Exemplo de nomeação estática, direta MPI ambiente de programação paralela padrão definido por várias instituições: universidades, órgãos governamentais, empresas várias implementações: universidades, empresas modelo MPI código único executado em conjunto de n cpus criação de processos: implícita mapeamento usual: 1 processo por cpu nomes de processos: 0, 1, 2, 3, ; dados automaticamente Programação concorrente (C. Geyer) Troca de Mensagens 29

30 Estática Direta Exemplo: envio de Ola Mundo do processo 0 ao 1 int id, tam; char message[12]; % 3 chamadas a primitivas de controle de MPI % inicialização % nome (id) desse processo % quantidade de processos MPI_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD, &id); MPI_Comm_size(MPI_COMM_WORLD, &tam); Programação concorrente (C. Geyer) Troca de Mensagens 30

31 Estática Direta Exemplo: envio de Ola Mundo do processo 0 ao 1 if (id == 0) { strcpy(mensagem, Ola mundo ); % p0: envia 12 caracteres em mensagem ao processo 1 MPI_Send($mensagem, 12, MPI_CHAR, 1, 100, MPI_COMM_WORLD); } else { % p1 (não 0) : recebe 12 caracteres em mensagem do p0 MPI_Recv($mensagem, 12, MPI_CHAR, 0, 100, MPI_COMM_WORLD, $status); }; Programação concorrente (C. Geyer) Troca de Mensagens 31

32 Exemplo de nomeação estática, indireta sockets TCP modelo Estática Indireta biblioteca de comunicação com protocolo TCP/IP usualmente encontrada em sistemas Unix, Linux, cliente/servidor cliente requisita conexão ao servidor cliente conhece servidor: IP e porta (processo) servidor aceita conexão cliente (ou servidor) envia mensagem ao servidor (ou cliente) pela conexão nomeação em dois níveis estático, explícito: conexão Programação concorrente (C. Geyer) Troca de Mensagens 32

33 Estática Indireta Exemplo de nomeação estática, indireta: Java sockets TCP SERVIDOR (...) ServerSocket s = new ServerSocket(8189); while (true){ } Socket conexao = s.accept(); /* Disparar uma thread que faça algo, passando conexão como parâmetro */ (...) CLIENTE (...)Socket s; try{ s =new Socket( poncho,8189); }catch(exception e) {/*Erro*/ System.exit(0); Programação concorrente (C. Geyer) Troca de Mensagens 33 } /* Socket conectado */

34 RECEBER (...)InputStream input; try { input = s.getinputstream(); } catch (IOException e) {(...)} ObjectInputStream objinput; try { objinput = new ObjectInputStream(input); String line = (String) objinput.readobject( ); }catch (Exception e){(...)} ENVIAR (...) OutputStream output; try { output = s.getoutputstream(); } catch (IOException e) {(...)} ObjectOutputStream objoutput; try { Estática Indireta objoutput = new ObjectOutputStream(output); objoutput.writeobject( Olá! ); }catch (Exception e){(...)} Programação concorrente (C. Geyer) Troca de Mensagens 34

35 Exemplo com C e TCP sockets Código em C: /* server */ #include <stdlib.h> #include <stdio.h> #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <string.h> Exemplo C TCP Sockets #define PORT int server_sock; struct sockaddr_in server_addr; /* * create the socket file descriptor */ if (( server_sock = socket(pf_inet, SOCK_STREAM, IPPROTO_TCP)) < 0 ) { exit(-1); /* exit with error, would print a descrition */ } Programação concorrente (C. Geyer) Troca de Mensagens 35

36 Exemplo com C e TCP sockets (cont.) Exemplo C TCP Sockets /* * assign an address to server socket */ bzero(&server_addr, sizeof(server_addr)); /* initialize with 0's */ server_addr.sin_family = AF_INET; /* internet address family */ server_addr.sin_addr.s_addr = htonl(inaddr_any); /* any local ip */ server_addr.sin_port = htons(port); /* fixed local port */ if ( bind(server_sock, (struct sockaddr*) &server_addr,sizeof(server_addr)) < 0 ) { exit(-1); /* exit with error */ } /* * start to listen for incoming connections, with a pending * queue of size 5 */ if ( listen(server_socket, 5) < 0 ) { exit(-1); } Programação concorrente (C. Geyer) Troca de Mensagens 36

37 Exemplo C TCP Sockets Exemplo em C e TCP sockets (cont.) /* loop accepting connections and delegating them to separate threads */ while (1) { int sock; struct sockaddr_in client_addr; /* address of the remote-side */ if ( (sock = accept(server_socket, &client_addr, sizeof(client_addr))) < 0 ) { exit(-1); /* do some error handling */ } else { /* do something with the newly accepted connection, e.g.launch a thread to handle it */ /*... */ } } Programação concorrente (C. Geyer) Troca de Mensagens 37

38 Exemplo C TCP Sockets Exemplo em C e TCP sockets (cont.) /* cliente em C */ #include <stdio.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <netdb.h> #define PORT int sock; struct sockaddr_in serv_addr; struct hostent *server; Programação concorrente (C. Geyer) Troca de Mensagens 38

39 Exemplo C TCP Sockets Exemplo em C e TCP sockets (cont.) if ( (sock = socket(af_inet, SOCK_STREAM, 0)) < 0) { exit(-1); /* error handling */ } /* DNS lookup of server's name*/ if ((server = gethostbyname("poncho") ) == NULL) { exit(-1); /* error handling */ } /* convert the result to the address format expected by connect */ bzero((char *) &serv_addr, sizeof(serv_addr)); serv_addr.sin_family = AF_INET; bcopy((char *)server->h_addr, (char *)&serv_addr.sin_addr.s_addr, server->h_length); serv_addr.sin_port = htons(port); Programação concorrente (C. Geyer) Troca de Mensagens 39

40 Exemplo em C e TCP sockets (cont.) Exemplo C TCP Sockets /* receber em C */ int MAXMSG = 1024; int BUFSIZE = MAXMSG+1; char buff[bufsize]; /* should be big enough to hold the largest message */ bzero(buff, BUFSIZE); int n; char* p = buff; for (int remaining = MAXMSG; remaining <0; remaining-=n) { n = read(sock, p, remaing); if ( n <= 0 ) { /* EOF or error */ break; } else p+=n; /* update buffer pointer */ } printf("%s", buff); Programação concorrente (C. Geyer) Troca de Mensagens 40

41 Exemplo C TCP Sockets Exemplo em C e TCP sockets (cont.) /* enviar em C */ char* msg = "Olá!"; char* buff = msg; for (int remaining=strlen(msg); remaing 0;) { n = write(sock, buff, remaining); if ( n < 0 ) { /* error */ } else { buff +=n ; /* add offset to the buffer pointer */ remaining -= n; } } close(sock); Programação concorrente (C. Geyer) Troca de Mensagens 41

42 Exemplo de nomeação dinâmica direta PVM biblioteca de programaçao distribuída (paralela) fornecedor único predecessora de MPI modelo PVM nomeação dinâmica pelo sistema Dinâmica Direta modelo de ID de processos Unix estendido a redes spawn primitiva para criação de processos em rede retorna ID do filho ao processo pai send: indica ID do processo receptor receive: pode indicar ID do emissor ou any Programação concorrente (C. Geyer) Troca de Mensagens 42

43 Indireta Estática Exemplo de nomeação estática indireta SR em livro modelo linguagem criada por G. Andrews usada no livro [Andrews, 1991] canais declarados por programa semântica global: automaticamente conhecidos por todos os processos processos declarados estaticamente Programação concorrente (C. Geyer) Troca de Mensagens 43

44 Indireta Estática Exemplo código: channel mensagem (string D); // canal global process emissor:: string A = Ola mundo ; send mensagem (A); end process; process receptor:: string B; receive mensagem (B); end process; // informação a enviar // envia A pelo canal // área para receber // recebe em B pelo canal Programação concorrente (C. Geyer) Troca de Mensagens 44

45 Buferização Buferização e sincronização buffer local onde são colocadas mensagens enviadas e (ainda) não recebidas similar a uma fila de espera Programação concorrente (C. Geyer) Troca de Mensagens 45

46 Buferização Buferização e sincronização capacidade zero: maior eficiência pois não há cópia local dos dados (em memória) caso o processo emissor (em nível de aplicação) seja liberado durante a transmissão, deve-se evitar a alteração da área de dados no emissor isto poderia ser feito pela própria aplicação Programação concorrente (C. Geyer) Troca de Mensagens 46

47 Buferização e sincronização capacidade limitada capacidade máxima de n mensagens ou bytes enquanto o buffer está com espaço livre, Buferização a primitiva de envio coloca (copia) a mensagem no buffer e, após, libera o processo emissor quando o buffer esgota: alternativas retorno de erro alguma mensagem é perdida bloqueio do emissor até a recepção liberar posições no buffer Programação concorrente (C. Geyer) Troca de Mensagens 47

48 Buferização Buferização e sincronização capacidade ilimitada teoricamente não existe na prática n pode ser muito superior aos casos produzidos pela aplicação programador codifica como se fosse infinita, sem verificar exceções Programação concorrente (C. Geyer) Troca de Mensagens 48

49 Buferização Buferização e sincronização comunicação síncrona send espera que processo receptor (em nível da aplicação) execute o receive transferência completa em nível de aplicação não exige buffer (ou de tamanho 1) preferida por alguns autores exemplo: modelo CSP do Hoare; linguagem Occam importantes efeitos semânticos e nas técnicas de programação programação mais segura Programação concorrente (C. Geyer) Troca de Mensagens 49

50 Buferização Buferização e sincronização considerações ( técnicas de programação ) capacidade limitada (ou ilimitada pelo programador) comunicação dita assíncrona emissor não sabe se a mensagem foi recebida se necessário envio pelo receptor, após recepção, de um aviso de recepção (ACK) protocolo de comunicação se torna parecido ao síncrono Programação concorrente (C. Geyer) Troca de Mensagens 50

51 Buferização Buferização e sincronização considerações ( técnicas de programação ) capacidade limitada programador deve prever o caso de buffer esgotado e contorná-lo conforme diferentes efeitos da primitiva em uso (erro, bloqueio,...) Programação concorrente (C. Geyer) Troca de Mensagens 51

52 Buferização Buferização e sincronização casos especiais comunicação assíncrona não bloqueante emissor (aplicação) nunca é bloqueado é liberado logo após algum procedimento inicial caso ele seja muito rápido, em caso de buffer esgotado (por exemplo, capacidade zero), mensagens podem ser perdidas em caso de capacidade zero: mensagem não precisa ser buferizada (copiada): maior eficiência programador deve verificar (contornar) as exceções Programação concorrente (C. Geyer) Troca de Mensagens 52

53 Buferização Buferização e sincronização casos especiais a comunicação assíncrona bloqueante (Tanenbaum) quando o emissor é bloqueado até que a mensagem seja copiada da área da aplicação (usuário) ao buffer (sistema) similar à semântica de um printf Programação concorrente (C. Geyer) Troca de Mensagens 53

54 Ordenação Ordenação das mensagens entre 2 pontos 1 processo emissor e 1 processo receptor garantia de ordem única se mensagem m1 foi enviada antes de m2, m1 será recebida antes de m2 Programação concorrente (C. Geyer) Troca de Mensagens 54

55 Confiabilidade Confiabilidade do canal (protocolo) garante (ou não) não perda de mensagem não duplicação de mensagem não alteração do conteúdo Programação concorrente (C. Geyer) Troca de Mensagens 55

56 Sincronização especial Caso especial de TM síncrona Rendezvous bidirecional (em cada troca de mensagem) proposta na linguagem Ada existente na linguagem SR (Andrews 91) bloqueio do emissor até recepção (implícita) de resposta vinda do receptor obs.: o receive não é feito por procedure como no RPC (mais adiante) mas por um comando receive o receive pode estar em qualquer ponto do código (usual) receive seguido de um bloco de código até o return (bidirecional) call receive {...; return } Programação concorrente (C. Geyer) Troca de Mensagens 56

57 Outras Questões Outras questões tipo da mensagem vetor de bytes tipada e estruturada expressão da concorrência em redes nem sempre existem primitivas de criação de tarefas remotas fork, create_thread,... sempre locais ID s tem validade local sincronização construções como mutex, semáforos,... usualmente são locais Programação concorrente (C. Geyer) Troca de Mensagens 57

58 Situações de erro Situações de erro em sistemas distribuídos diferentes erros podem ocorrer por exemplo somente a máquina receptora (sistema) bloqueia-se erro (ou pane total) na linha de comunicação caso término de processo se processo receptor emissor pode enviar mensagens até esgotar buffer emissor pode ficar bloqueado (comunicação síncrona) se processo emissor receptor pode ficar bloqueado eternamente Programação concorrente (C. Geyer) Troca de Mensagens 58

59 Situações de erro (cont.) caso mensagem perdida Situações de erro alternativa A: sistema detecta erro e reenvia a mensagem implica overhead alternativa B: programador (processo emissor) deve detectar e reenviar a mensagem implica programação mais complexa alternativa C: sistema detecta e avisa processo emissor, que deve providenciar uma solução (reenvio se necessário) detecção usualmente por temporização sistema deve enviar aviso de recepção após certo tempo (timeout) Programação concorrente (C. Geyer) Troca de Mensagens 59

60 TM X VC Troca de mensagens X variáveis compartilhadas eficiência memória compartilhada redes programação segura programação simples (intuitiva) modelo único sincronização Programação concorrente (C. Geyer) Troca de Mensagens 60

61 Revisao Revisão motivações para TM uso combinado VC + TM primitivas básicas Programação concorrente (C. Geyer) Troca de Mensagens 61

62 Revisão Revisão send: semântica e argumentos sincronização receive: semântica e argumentos sincronização conceito de canal propriedades de canais Programação concorrente (C. Geyer) Troca de Mensagens 62

63 Revisão Revisão tamanho da mensagem nomeação conceito direta direta assimétrica indireta estática x dinâmica conceitos vantagens problema na dinâmica: conhecimento dos nomes solução comum Programação concorrente (C. Geyer) Troca de Mensagens 63

64 Revisão Revisão produtor - consumidor com TM exclusão mútua canal buffer cheio buffer vazio caixa postal conceito diferenças entre do programa e do sistema problema de referência entre criador e usuários solução comum? Programação concorrente (C. Geyer) Troca de Mensagens 64

65 Revisão Revisão comunicação síncrona send receive vantagem? comunicação assíncrona (bloqueante) comunicação (assíncrona) não bloqueante qual o risco? como transformar a assíncrona em síncrona? Programação concorrente (C. Geyer) Troca de Mensagens 65

66 Revisão Revisão buffer de tamanho zero efeitos vantagem buffer limitado alternativas de semânticas tratamento de erros se processo (máquina) receptor falha? se processo emissor falha? se buffer esgota? Programação concorrente (C. Geyer) Troca de Mensagens 66

67 Revisão Revisão garantias ordenação outras? Programação concorrente (C. Geyer) Troca de Mensagens 67

68 Revisão Revisão tipos de dados da mensagem? TM X VC? eficiência redes memória compartilhada simplicidade das APIs programação segura algoritmos mais simples e intuitivos Programação concorrente (C. Geyer) Troca de Mensagens 68

69 This document was created with Win2PDF available at The unregistered version of Win2PDF is for evaluation or non-commercial use only. This page will not be added after purchasing Win2PDF.

Informática UFRGS. Cláudio Geyer. Programação concorrente (C. Geyer) Troca de Mensagens 1

Informática UFRGS. Cláudio Geyer. Programação concorrente (C. Geyer) Troca de Mensagens 1 Troca de Mensagens Curso de Programação Concorrente Notas de aula Cláudio Geyer. Programação concorrente (C. Geyer) Troca de Mensagens 1 Autores Autores C. Geyer Local Instituto de Informática disciplina:

Leia mais

Troca de Mensagens Curso de Programação Concorrente Notas de aula Cláudio Geyer.

Troca de Mensagens Curso de Programação Concorrente Notas de aula Cláudio Geyer. Troca de Mensagens Curso de Programação Concorrente Notas de aula Cláudio Geyer. Programação concorrente (C. Geyer) Troca de Mensagens 1 Autores Autores Local C. Geyer Instituto de Informática UFRGS disciplina:

Leia mais

Curso de Programação Distribuída e Paralela 29/09/2008. Informática UFRGS. Sistemas Operacionais II (C. Geyer) Sincronização 1. Pg.

Curso de Programação Distribuída e Paralela 29/09/2008. Informática UFRGS. Sistemas Operacionais II (C. Geyer) Sincronização 1. Pg. Sistemas Operacionais Professor Cláudio Geyer Instituto de - Sistemas Operacionais II (C. Geyer) Sincronização 1 Sistemas Operacionais Professor Cláudio Geyer Instituto de - Pg. 1 1 Tópicos ensinados no

Leia mais

Informática UFRGS. Programação com Objetos Distribuídos (C. Geyer) Java Comunicação 1

Informática UFRGS. Programação com Objetos Distribuídos (C. Geyer) Java Comunicação 1 Programação com Objetos Distribuídos (C. Geyer) Java Comunicação 1 Autor Autor Local Cláudio Geyer Instituto de Informática disciplinas: POD e PDP Versão v4 2010-1 Programação com Objetos Distribuídos

Leia mais

Sistemas Distribuídos Aula 2

Sistemas Distribuídos Aula 2 Sistemas Distribuídos Aula 2 Aula passada Logísitica Regras do jogo Definição e características Exemplos Aula de hoje Processos IPC Características Ex. sinais, pipes, sockets Objetivos Processos O que

Leia mais

Comunicação entre Processos

Comunicação entre Processos Comunicação entre Processos Troca de Mensagens send (destino, msg) receive (origem, mensagem) questões semântica de operações especificação de origem e destino formato de mensagem envio síncrono e assíncrono

Leia mais

Arquitetura de Computadores Sistemas Operacionais II

Arquitetura de Computadores Sistemas Operacionais II Definição de Processo Arquitetura de Computadores Sistemas Operacionais II Processo é o mesmo de Programa? Programa Estrutura estática Instruções + Dados Processo Entidade Ativa Instância de um Programa

Leia mais

Programação concorrente (processos e threads)

Programação concorrente (processos e threads) Programação concorrente (processos e threads) Programação concorrente Por que precisamos dela? Para utilizar o processador completamente Paralelismo entre CPU e dispositivos de I/O Para modelar o paralelismo

Leia mais

Servidor TCP. Programação Sockets. (c) Volnys Bernal. Servidor TCP Resumo das Chamadas TCP. Resumo das Chamadas TCP. Resumo das Chamadas TCP

Servidor TCP. Programação Sockets. (c) Volnys Bernal. Servidor TCP Resumo das Chamadas TCP. Resumo das Chamadas TCP. Resumo das Chamadas TCP 2004-2016 Volnys Bernal 1 2004-2016 Volnys Bernal 2 Resumo das Chamadas TCP Volnys Borges Bernal volnys@lsi.usp.br Departamento de Sistemas Eletrônicos Escola Politécnica da USP Resumo das Chamadas TCP

Leia mais

Sistemas Operacionais Distribuídos e de Redes

Sistemas Operacionais Distribuídos e de Redes Contextualização Sistemas Operacionais Distribuídos e de Redes Comunicação Interprocessos Aula 04 Aula 04 Aplicação, serviços RMI e RPC Protocolo - (requisição-resposta) marshalling e representaçao externa

Leia mais

Cliente TCP. Programação sockets. Agenda. Cliente TCP. Chamadas sockets para TCP. Chamada socket() Chamada socket()

Cliente TCP. Programação sockets. Agenda. Cliente TCP. Chamadas sockets para TCP. Chamada socket() Chamada socket() 2002-2009 Volnys Bernal 1 2002-2009 Volnys Bernal 2 Agenda Volnys Borges Bernal volnys@lsi.usp.br http://www.lsi.usp.br/~volnys Resumo das chamadas sockets para TCP Chamada close() 2002-2009 Volnys Bernal

Leia mais

Cliente UDP. Programação sockets. Agenda. Cliente UDP. Resumo de Chamadas UDP. Resumo das chamadas UDP. Resumo de Chamadas UDP.

Cliente UDP. Programação sockets. Agenda. Cliente UDP. Resumo de Chamadas UDP. Resumo das chamadas UDP. Resumo de Chamadas UDP. 2002-2015 Volnys Bernal 1 2002-2015 Volnys Bernal 2 Agenda Volnys Borges Bernal volnys@lsi.usp.br Departamento de Sistemas Eletrônicos Escola Politécnica da USP Resumo das chamadas sockets para UDP Uso

Leia mais

Difusão e Coleta em uma rede. Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 1

Difusão e Coleta em uma rede. Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 1 Algoritmos de Probe/Echo Difusão e Coleta em uma rede Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 1 Autor Autor 1ª versão: Ricardo Castro Mattia Revisões: C. Geyer Local Instituto

Leia mais

Servidor TCP. Programação Sockets. (c) Volnys Bernal. Servidor TCP Resumo das Chamadas TCP. Resumo das Chamadas TCP. Resumo das Chamadas TCP

Servidor TCP. Programação Sockets. (c) Volnys Bernal. Servidor TCP Resumo das Chamadas TCP. Resumo das Chamadas TCP. Resumo das Chamadas TCP 2004-2013 Volnys Bernal 1 2004-2013 Volnys Bernal 2 Resumo das Chamadas TCP Volnys Borges Bernal volnys@lsi.usp.br http://www.lsi.usp.br/~volnys 2004-2013 Volnys Bernal 3 2004-2013 Volnys Bernal 4 Resumo

Leia mais

Servidor TCP. Programação Sockets. (c) Volnys Bernal. Servidor TCP Resumo das Chamadas TCP. Resumo das Chamadas TCP. Resumo das Chamadas TCP

Servidor TCP. Programação Sockets. (c) Volnys Bernal. Servidor TCP Resumo das Chamadas TCP. Resumo das Chamadas TCP. Resumo das Chamadas TCP 2004-2013 Volnys Bernal 1 2004-2013 Volnys Bernal 2 Volnys Borges Bernal volnys@lsi.usp.br http://www.lsi.usp.br/~volnys 2004-2013 Volnys Bernal 3 2004-2013 Volnys Bernal 4 Lado Cliente Lado Servidor sd1

Leia mais

Sockets - Conceitos Básicos. COMUNICAÇÃO ENTRE PROCESSOS Sockets. Conceitos Básicos. Tipos de Sockets

Sockets - Conceitos Básicos. COMUNICAÇÃO ENTRE PROCESSOS Sockets. Conceitos Básicos. Tipos de Sockets Sockets - Conceitos Básicos COMUNICAÇÃO ENTRE PROCESSOS Sockets! Sockets são uma forma de IPC (InterProcess Communication ) fornecida pela 4.3 BSD que fornecem comunicação entre processos residentes em

Leia mais

Sistemas Operacionais I Parte V Operações nos Processos. Roteiro. Prof. Gregorio Perez Introdução. Operações nos Processo

Sistemas Operacionais I Parte V Operações nos Processos. Roteiro. Prof. Gregorio Perez Introdução. Operações nos Processo Sistemas Operacionais I Parte V Roteiro Introdução Operações nos Processo Término Processos Cooperativos Comunicação entre Processos Questões Prof. Gregorio Perez gregorio@uninove.br 2007 2007 Sistem as

Leia mais

Programação de Sistemas em Tempo Real

Programação de Sistemas em Tempo Real BCC722 Programação de Sistemas em Tempo Real Processos Prof. Charles Garrocho O conceito de processo Um S.O. executa uma variedade de programas Sistemas de tempo compartilhado: programas Processo: um programa

Leia mais

Cliente UDP. Programação sockets. Agenda. Cliente UDP. Resumo de Chamadas UDP. Chamadas UDP. Resumo de Chamadas UDP.

Cliente UDP. Programação sockets. Agenda. Cliente UDP. Resumo de Chamadas UDP. Chamadas UDP. Resumo de Chamadas UDP. 2002-2013 Volnys Bernal 1 2002-2013 Volnys Bernal 2 Agenda Volnys Borges Bernal volnys@lsi.usp.br http://www.lsi.usp.br/~volnys Resumo de Chamadas UDP Chamada Chamada Chamada 2002-2013 Volnys Bernal 3

Leia mais

Aula de Socket. Rafael De Tommaso do Valle

Aula de Socket. Rafael De Tommaso do Valle Aula de Socket Rafael De Tommaso do Valle 20 de agosto de 2009 Socket O que é um socket? É uma interface com qual processos em diferentes hosts se comunicam através da rede; Também chamado de interface

Leia mais

Servidor UDP Volnys Borges Bernal Departamento de Sistemas Eletrônicos Escola Politécnica da USP

Servidor UDP Volnys Borges Bernal Departamento de Sistemas Eletrônicos Escola Politécnica da USP 2004-2017 Volnys Bernal 1 Servidor UDP Volnys Borges Bernal volnys@lsi.usp.br Departamento de Sistemas Eletrônicos Escola Politécnica da USP 2004-2017 Volnys Bernal 2 Resumo das Chamadas UDP 2004-2017

Leia mais

Servidor UDP. Programação Sockets Volnys Bernal. Servidor UDP Resumo das Chamadas UDP. Resumo de Chamadas UDP. Resumo de Chamadas UDP

Servidor UDP. Programação Sockets Volnys Bernal. Servidor UDP Resumo das Chamadas UDP. Resumo de Chamadas UDP. Resumo de Chamadas UDP 2004-2015 Volnys Bernal 1 2004-2015 Volnys Bernal 2 Resumo das Chamadas UDP Volnys Borges Bernal volnys@lsi.usp.br Departamento de Sistemas Eletrônicos Escola Politécnica da USP 2004-2015 Volnys Bernal

Leia mais

INTRODUÇÃO AOS SISTEMAS OPERACIONAIS SEMANA 10. Operações nos processos. Processos cooperativos, comunicação entre processos.

INTRODUÇÃO AOS SISTEMAS OPERACIONAIS SEMANA 10. Operações nos processos. Processos cooperativos, comunicação entre processos. INTRODUÇÃO AOS SISTEMAS OPERACIONAIS outubro/2013 SEMANA 10 Operações nos processos. Processos cooperativos, comunicação entre processos. 1 - Introdução Um processo, ao longo da sua vida, passa por diferentes

Leia mais

Vamos fazer um pequeno experimento

Vamos fazer um pequeno experimento 1 Vamos fazer um pequeno experimento Dividam-se em dois grupos: Mestre Escravo Projeto de Sistemas Distribuídos Comunicação entre Processos Prof. Msc. Marcelo Iury de Sousa Oliveira marceloiury@gmail.com

Leia mais

Cliente UDP. Programação sockets. Agenda. Cliente UDP. Resumo de Chamadas UDP. Chamadas UDP. Resumo de Chamadas UDP.

Cliente UDP. Programação sockets. Agenda. Cliente UDP. Resumo de Chamadas UDP. Chamadas UDP. Resumo de Chamadas UDP. 2002-2004 Volnys Bernal 1 2002-2004 Volnys Bernal 2 Agenda Volnys Borges Bernal volnys@lsi.usp.br http://www.lsi.usp.br/~volnys Resumo de Chamadas UDP Chamada connect() Chamada send() Chamada sendto()

Leia mais

Aula 04. Capítulo 3 Gerência de Processos. 3.1 Conceito de Processo. 3.2 Escalonamento de Processos. 3.3 Opera ões sobre Processos

Aula 04. Capítulo 3 Gerência de Processos. 3.1 Conceito de Processo. 3.2 Escalonamento de Processos. 3.3 Opera ões sobre Processos Aula 04 Capítulo 3 Gerência de Processos 3.1 Conceito de Processo 3.2 Escalonamento de Processos 3.3 Opera ões sobre Processos 3.4 Comunica ão entre Processos 3.1 Conceito de Processo Um sistema operacional

Leia mais

camada de transporte SOCKET TCP UDP

camada de transporte SOCKET TCP UDP Sockets O que são sockets? O acesso aos serviços da camada de transporte pode ser feito por primitivas de transporte, essas primitivas são denominadas SOCKET. Por essas primitivas é possível acessar vários

Leia mais

Programação com Sockets. Redes de Computadores I 2007/2008

Programação com Sockets. Redes de Computadores I 2007/2008 Programação com Sockets Redes de Computadores I 2007/2008 Arquitectura das Aplicações Cliente-Servidor Peer-to-Peer (P2P) Híbrido Peer-to-Peer e Cliente-Servidor 09-11-2007 Universidade do Minho 1 Comunicação

Leia mais

Fundamentos de Sistemas Operacionais

Fundamentos de Sistemas Operacionais Fundamentos de Sistemas Operacionais Aula 6: Monitores, Troca de Mensagens e Deadlock Diego Passos Última Aulas Mecanismos de Exclusão Mútua Operações atômicas. Protocolos de controle de acesso. Spin-locks.

Leia mais

Capítulo 3: Processos

Capítulo 3: Processos Capítulo 3: Processos Sobre a apresentação (About( the slides) Os slides e figuras dessa apresentação foram criados por Silberschatz, Galvin e Gagne em 2005. Esse apresentação foi modificada por Cristiaino

Leia mais

Sockets. André Restivo. April 29, Faculdade de Engenharia da Universidade do Porto. André Restivo (FEUP) Sockets April 29, / 27

Sockets. André Restivo. April 29, Faculdade de Engenharia da Universidade do Porto. André Restivo (FEUP) Sockets April 29, / 27 Sockets André Restivo Faculdade de Engenharia da Universidade do Porto April 29, 2013 André Restivo (FEUP) Sockets April 29, 2013 1 / 27 Sumário 1 Introdução 2 Cliente/Servidor 3 API C++ 4 André Restivo

Leia mais

Utilização das classes Java para comunicação TCP/IP e UDP/IP

Utilização das classes Java para comunicação TCP/IP e UDP/IP Utilização das classes Java para comunicação TCP/IP e UDP/IP Programação com Objetos Distribuídos (C. Geyer) Java Sockets 1 Autor Autores Local Cláudio Geyer Maurício Lima Pilla Instituto de Informática

Leia mais

Comunicação entre Processos por Troca de Mensagens. Prof. Celso maciel da Costa

Comunicação entre Processos por Troca de Mensagens. Prof. Celso maciel da Costa Comunicação entre Processos por Troca de Mensagens Prof. Celso maciel da Costa Troca de Mensagens Com memória compartilhada: os processo compartilham variáveis e trocam informações através do uso de variáveis

Leia mais

Sumário. Introdução ao TCP/IP e à Internet API Sockets para comunicação via redes Exemplos

Sumário. Introdução ao TCP/IP e à Internet API Sockets para comunicação via redes Exemplos Sumário Introdução ao TCP/IP e à Internet API Sockets para comunicação via redes Exemplos A Internet: Endereços Cada computador ligado à Internet tem um endereço único que o distingue dos restantes (endereço

Leia mais

Sockets: Sumário. Resumo das Propriedades de UDP e de TCP

Sockets: Sumário. Resumo das Propriedades de UDP e de TCP Sockets: Sumário Sockets TCP Modêlo. API de Java. API da biblioteca C. Avaliação Crítica de Sockets. 1 Resumo das Propriedades de UDP e de TCP Propriedade UDP TCP Abstracção Mens. Stream Baseado em Conexão

Leia mais

Universidade Federal do RGS Instituto de Informática Departamento de Informática Aplicada

Universidade Federal do RGS Instituto de Informática Departamento de Informática Aplicada Universidade Federal do RGS Instituto de Informática Departamento de Informática Aplicada Disciplina: INF01151 - Sistemas Operacionais II N Turma: A, 2 Sem/2008 Prof. Cláudio Geyer CURSOS : Ciência da

Leia mais

Comunicação entre Processos

Comunicação entre Processos Comunicação entre Processos Prof. Leonardo Barreto Campos http://sites.google.com/sitew/leonardobcampos 1/29 Sumário Introdução Comunicação entre Processos: Soquetes Comunicação por datagrama UDP Comunicação

Leia mais

Problemas relacionados a exclusão mútua

Problemas relacionados a exclusão mútua Problemas relacionados a exclusão mútua Deadlock: um conjunto de processos fica bloqueado, cada um a espera de um recurso que o outro detém. Starvation: alguns processos são repetidamente preteridos, enquanto

Leia mais

Comunicação entre processos COMUNICAÇÃO ENTRE PROCESSOS. Comunicação entre processos - troca de mensagens

Comunicação entre processos COMUNICAÇÃO ENTRE PROCESSOS. Comunicação entre processos - troca de mensagens Comunicação entre processos Memória Compartilhada: os processo compartilham variáveis e trocam informações através do uso dessas variáveis compartilhadas COMUNICAÇÃO ENTRE PROCESSOS P1 Sem Memória Compartilhada:

Leia mais

Comunicação entre Processos

Comunicação entre Processos Comunicação entre Processos Prof. Dr. André Carvalho andre@icomp.ufam.edu.br Agenda n Comunicação entre Processos n Características dos mecanismos de comunicação Comunicação direta ou indireta, sincronismos,

Leia mais

COMUNICAÇÃO ENTRE PROCESSOS

COMUNICAÇÃO ENTRE PROCESSOS Comunicação entre processos Memória Compartilhada: os processo compartilham variáveis e trocam informações através do uso dessas variáveis compartilhadas COMUNICAÇÃO ENTRE PROCESSOS P1 Sem Memória Compartilhada:

Leia mais

Comunicação entre Processos

Comunicação entre Processos Comunicação entre Processos Comunicação memória compartilhada troca de mensagens base de comunicação em sistemas distribuídos Mensagens básicas send (destino, msg) receive (origem, mensagem) questões semântica

Leia mais

Universidade Federal do Pará Instituto de Ciências Exatas e Naturais Faculdade de Computação

Universidade Federal do Pará Instituto de Ciências Exatas e Naturais Faculdade de Computação Universidade Federal do Pará Instituto de Ciências Exatas e Naturais Faculdade de Computação SISTEMAS OPERACIONAIS Aula 7 Regiane Kawasaki kawasaki@ufpa.br Slides adaptados da Profa. Sarita Mazzini Bruschi

Leia mais

LABORATÓRIO SISTEMAS OPERACIONAIS

LABORATÓRIO SISTEMAS OPERACIONAIS FACULDADE: CENTRO UNIVERSITÁRIO DE BRASÍLIA UniCEUB CURSO: CIÊNCIA DA COMPUTAÇÃO DISCIPLINA: SISTEMAS OPERACIONAIS CARGA HORÁRIA: 75 H. A. ANO/SEMESTRE: 2016/02 PROFESSOR: EDUARDO FERREIRA DOS SANTOS HORÁRIOS:

Leia mais

LABORATÓRIO SISTEMAS DE TEMPO REAL

LABORATÓRIO SISTEMAS DE TEMPO REAL FACULDADE: CENTRO UNIVERSITÁRIO DE BRASÍLIA UniCEUB CURSO: ENGENHARIA DE COMPUTAÇÃO DISCIPLINA: SISTEMAS DE TEMPO REAL E TOLERANTES À FALHA CARGA HORÁRIA: 75 H. A. ANO/SEMESTRE: 2016/01 PROFESSOR: EDUARDO

Leia mais

Roteiro... Sistemas Distribuídos Aula 4. Troca de mensagens. Comunicação entre processos. Conceitos de SD, vantagens e desvantagens

Roteiro... Sistemas Distribuídos Aula 4. Troca de mensagens. Comunicação entre processos. Conceitos de SD, vantagens e desvantagens Roteiro... Conceitos de SD, vantagens e desvantagens Infra-estrutura de um SD Considerações de projeto Sistemas Distribuídos Aula 4 Karine de Pinho Peralta Modelos de Comunicação - comunicação entre processos

Leia mais

Sistemas Distribuídos Aula 3

Sistemas Distribuídos Aula 3 Sistemas Distribuídos Aula 3 Aula passada Processos IPC Características Ex. sinais, pipes, sockets Aula de hoje Threads Kernel level User level Escalonamento Motivação: Servidor Web Considere Servidor

Leia mais

Sistemas Operacionais - Básico e Avançado - Prof. Celso Maciel da Costa Mestrado em Informática - PUCRS

Sistemas Operacionais - Básico e Avançado - Prof. Celso Maciel da Costa Mestrado em Informática - PUCRS Sistemas Operacionais - Básico e Avançado - Prof. Celso Maciel da Costa Mestrado em Informática - PUCRS Processo Usuário Processo Usuário SO IPC em um mesmo sistema 2 Processo Usuário Processo usuário

Leia mais

Concorrência em Processos

Concorrência em Processos Concorrência em Processos Anderson L. S. Moreira anderson.moreira@recife.ifpe.edu.br http://dase.ifpe.edu.br/~alsm Baseado nas aulas do professor Alberto Costa Neto da UFS 1 O que fazer com essa apresentação

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Thaís Vasconcelos Batista UFRN DIMAp http://www.dimap.ufrn.br/~thais thais@ufrnet.br Programa do Curso INTRODUÇÃO Conceitos Básicos Sistemas em Rede X Sistemas Distribuídos Necessidade

Leia mais

OO Engenharia Eletrônica

OO Engenharia Eletrônica OO Engenharia Eletrônica - Programação em C/C++ Slides 18: Introdução à programação multi-thread. Thread: linha de execução de um processo. Multi-thread: execução de múltiplas threads em um processo. Prof.

Leia mais

Leandro Soares de Sousa (DSc.) Página: Aula 05 - desenvolvimento com sockets

Leandro Soares de Sousa (DSc.)   Página:   Aula 05 - desenvolvimento com sockets Tópicos Especiais Leandro Soares de Sousa (DSc.) e-mail: lsousa@id.uff.br Página: http://www.ic.uff.br/~lsousa Aula 05 - desenvolvimento com sockets Mais e mais ferramentas! 2 Aplicações distribuídas:

Leia mais

Programação distribuída e paralela (C. Geyer) RPC 1

Programação distribuída e paralela (C. Geyer) RPC 1 Programação distribuída e paralela (C. Geyer) RPC 1 Autores C. Geyer Local II-UFRGS Versão v6 2008-2 Disciplinas SOII Programação distribuída e paralela (C. Geyer) RPC 2 Bibliografia base original dos

Leia mais

Introdução à Programação com Sockets. Fernando Jorge Silveira Filho Daniel Sadoc Menasché

Introdução à Programação com Sockets. Fernando Jorge Silveira Filho Daniel Sadoc Menasché Introdução à Programação com Sockets Fernando Jorge Silveira Filho fernando@land.ufrj.br Daniel Sadoc Menasché sadoc@land.ufrj.br Visão Geral Objetivos: Realizar comunicação entre processos. Entender como

Leia mais

Sistemas de Operação (2018/2019) Ficha 6

Sistemas de Operação (2018/2019) Ficha 6 Sistemas de Operação (2018/2019) Ficha 6 Q1. Considere o seguinte programa que implementa uma pipe entre processos pai e filho. Compile o exemplo e execute-o. Leia o código com atenção e compreenda-o.

Leia mais

Programação em Sockets visando verificar a diferença entre transmissão confiável (TCP) e não confiável (UDP)

Programação em Sockets visando verificar a diferença entre transmissão confiável (TCP) e não confiável (UDP) II - UFRGS Programação em Sockets visando verificar a diferença entre transmissão confiável (TCP) e não confiável (UDP) Valter Roesler Universidade Federal do Rio Grande do Sul (UFRGS) Instituto de Informática

Leia mais

Comunicação. Carlos A. G. Ferraz 25/6/2003. Sistemas Distribuídos 1. Tópicos. Camadas. Transmissão de dados. Marshalling/Unmarshalling.

Comunicação. Carlos A. G. Ferraz 25/6/2003. Sistemas Distribuídos 1. Tópicos. Camadas. Transmissão de dados. Marshalling/Unmarshalling. Tópicos Comunicação Carlos Ferraz cagf@cin.ufpe.br Elementos básicos de comunicação Transmissão de dados Endereçamento Sincronismo Enfileiramento (Bufferização) Confiabilidade Portas e sockets UDP RPC:

Leia mais

Soquetes TCP. Jean Ribeiro Damasceno. Escola de Engenharia Universidade Federal Fluminense (UFF) Rua Passo da Pátria, 156 Niterói RJ Brasil

Soquetes TCP. Jean Ribeiro Damasceno. Escola de Engenharia Universidade Federal Fluminense (UFF) Rua Passo da Pátria, 156 Niterói RJ Brasil Soquetes TCP Jean Ribeiro Damasceno Escola de Engenharia (UFF) Rua Passo da Pátria, 156 Niterói RJ Brasil jeanrdmg@yahoo.com.br Função socket(): Cria um novo ponto final de comunicação int socket ( int

Leia mais

GERENCIAMENTO DE PROCESSOS E MEMÓRIA

GERENCIAMENTO DE PROCESSOS E MEMÓRIA GERENCIAMENTO DE PROCESSOS E MEMÓRIA GRUPO ELAINE P. S. ALVES RAFAEL T. ROLDÃO VINICIUS A. ZANQUINI SAMUEL DISCIPLINA: SISTEMAS OPERACIONAIS 2º QUAD/2010 PROFº MARCELO NASCIMENTO MOTIVAÇÃO 1. Sistema de

Leia mais

UNIVERSIDADE ESTADUAL DE PONTA GROSSA SETOR DE CIÊNCIAS AGRÁRIAS E DE TECNOLOGIA DEPARTAMENTO DE INFORMÁTICA ENGENHARIA DE COMPUTAÇÃO

UNIVERSIDADE ESTADUAL DE PONTA GROSSA SETOR DE CIÊNCIAS AGRÁRIAS E DE TECNOLOGIA DEPARTAMENTO DE INFORMÁTICA ENGENHARIA DE COMPUTAÇÃO UNIVERSIDADE ESTADUAL DE PONTA GROSSA SETOR DE CIÊNCIAS AGRÁRIAS E DE TECNOLOGIA DEPARTAMENTO DE INFORMÁTICA ENGENHARIA DE COMPUTAÇÃO ALAN FERNANDO COELHO GARCIA EDUARDO GUILHERME CORDEIRO MECÂNISMO DE

Leia mais

Remote Procedure Call. Programação distribuída e paralela (C. Geyer) RPC 1

Remote Procedure Call. Programação distribuída e paralela (C. Geyer) RPC 1 Remote Procedure Call Programação distribuída e paralela (C. Geyer) RPC 1 Autoria Autores C. Geyer Local II-UFRGS Versão V11.4 2014-2 Disciplinas SOII Programação distribuída e paralela (C. Geyer) RPC

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Comunicação e Coordenação Clientes e Servidores março de 2015 Comunicação entre Processos Distribuídos troca de mensagens exige coordenação receive?!?...... send............ Coordenação passos para execução

Leia mais

Sistemas Distribuídos Aula 10

Sistemas Distribuídos Aula 10 Sistemas Distribuídos Aula 10 Aula passada Arquitetura P2P Bittorrent Distributed Hash Table (DHT) Aula de hoje Modelo computação distribuída RPC Marshalling e stubs Semântica operacional RMI Computação

Leia mais

Comunicação entre processos

Comunicação entre processos Comunicação entre processos Fernando Afonso Santos UNIFEI Campus Itabira Processos Processos e Programas Um programa é uma entidade estática Fornece as instruções necessárias para realizar tarefas Não

Leia mais

Comunicação orientada a mensagens

Comunicação orientada a mensagens Comunicação orientada a mensagens críticas a RPC sincronismo modelo um a um dificuldades de tratamento de falhas Þ volta ao modelo de troca de mensagens com diferentes níveis de abstração Sistemas de mensagens

Leia mais

Por Fernando Koyanagi

Por Fernando Koyanagi Por Fernando Koyanagi Recursos usados 18 jumpers fêmea x fêmea Módulo de 16 relés com optoacoplador Raspberry Pi 3 Rede interna (TCP/IP) Intenção dessa aula 1. Iniciar automação com Raspberry Pi PI 2.

Leia mais

Programação de Aplicações em. Rede usando Sockets

Programação de Aplicações em. Rede usando Sockets Programação de Aplicações em Objetivos: Rede usando Sockets Conhecer a API Sockets, que permite a programas de aplicação comunicar-se através da Internet Aplicações e Protocolo de Aplicação Aplicação:

Leia mais

Universidade Estadual de Mato Grosso do Sul Bacharelado em Ciência da Computação Sistemas Operacionais Prof. Fabrício Sérgio de Paula

Universidade Estadual de Mato Grosso do Sul Bacharelado em Ciência da Computação Sistemas Operacionais Prof. Fabrício Sérgio de Paula Universidade Estadual de Mato Grosso do Sul Bacharelado em Ciência da Computação Sistemas Operacionais Prof. Fabrício Sérgio de Paula Tópicos Conceito de processo Escalonamento de processos Operações sobre

Leia mais

Comunicação entre processos. Sistema centralizado

Comunicação entre processos. Sistema centralizado Sistemas Distribuídos Comunicação entre processos Sistema centralizado Comunicação entre processos Arquivo Memória compartilhada Sinal Fila de mensagem SO gerencia comunicação 2 Sistema distribuído Idéia

Leia mais

Conceito Básicos de Programação com Objetos Distribuídos. Programação com Objetos Distribuídos (C. Geyer) Conceitos de POD 1

Conceito Básicos de Programação com Objetos Distribuídos. Programação com Objetos Distribuídos (C. Geyer) Conceitos de POD 1 Conceito Básicos de Programação com Objetos Distribuídos Programação com Objetos Distribuídos (C. Geyer) Conceitos de POD 1 Autoria Autor C. Geyer Local Instituto de Informática UFRGS disciplina : Programação

Leia mais

Problema dos Leitores/Escritores

Problema dos Leitores/Escritores Sincronização: Semáforos Problema dos Leitores/Escritores Autores Eduardo André Mallmann 0905/96-9 João Paulo Reginatto 1530/96-0 Local Instituto de Informática UFRGS disciplina: Sistemas Operacionais

Leia mais

Capítulo II Modelos de Programação Distribuída

Capítulo II Modelos de Programação Distribuída Capítulo II Modelos de Programação Distribuída Exemplos de linguagens com comunicação por mensagens, Ada OCCAM Linda From: M. Ben-Ari Principles of Concurrent and Distributed Programming Prentice Hall

Leia mais

SISTEMAS DISTRIBUÍDOS

SISTEMAS DISTRIBUÍDOS SISTEMAS DISTRIBUÍDOS CUP Disk Memoey CUP Memoey Disk Network CUP Memoey Disk Introdução aos Sistemas Distribuídos 1 Sumário Evolução Problema/Contexto O que é um Sistema Distribuído? Vantagens e Desvantagens

Leia mais

Protocolo Request-Reply

Protocolo Request-Reply n n n n Protocolo Request-Reply Modelo de Objeto Remoto Semânticas de Invocação Remota Arquitetura de Invocação Remota Prof a Ana Cristina B. Kochem Vendramin DAINF / UTFPR Introdução Características de

Leia mais

Message Passing Interface - MPI

Message Passing Interface - MPI Message Passing Interface - Pedro de Botelho Marcos Maio/2008 1 Sumário Introdução; Conceitos básicos; Comunicação; Principais rotinas; Compilando e executando códigos ; Exemplos; Referências; 2 Introdução

Leia mais

INE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUÍDA

INE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUÍDA INE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUÍDA Identificação: Disciplina: INE5645 - Programação Paralela e Distribuída Carga horária: 72 horas-aula Teóricas: 36 Práticas: 36 Período: 2º semestre de 2014 (em

Leia mais

Leandro Soares de Sousa (DSc.) Página: Parte III

Leandro Soares de Sousa (DSc.)   Página:   Parte III Tópicos Especiais em Sistemas Computacionais Leandro Soares de Sousa (DSc.) e-mail: leandro.uff.puro@gmail.com Página: http://www.ic.uff.br/~lsousa Parte III Mais e mais ferramentas! 2 Aplicações distribuídas:

Leia mais

TROCA DE MENSAGENS SOCKETS. Comunicando processos através de SOCKETS. SOCKETS com conexão. SOCKETS sem conexão

TROCA DE MENSAGENS SOCKETS. Comunicando processos através de SOCKETS. SOCKETS com conexão. SOCKETS sem conexão TROCA DE MENSAGENS SOCKETS Comunicando processos através de SOCKETS SOCKETS com conexão SOCKETS sem conexão SOCKETS Princípios dos sockets: 2. Fornecer uma interface geral permitindo a construção de aplicações

Leia mais

Curso Sistemas Operacionais Distribuídos

Curso Sistemas Operacionais Distribuídos Autor 1ª versão Cristiano A. Costa Local II - UFRGS Revisões V6 2008-2 C. Geyer Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 1 Curso de Sistemas Operacionais Distribuídos O Modelo

Leia mais

Aula 6: Comunicação entre processos. Instituto Federal da Bahia INF009 - Sistemas Operacionais Profª Flávia Maristela

Aula 6: Comunicação entre processos. Instituto Federal da Bahia INF009 - Sistemas Operacionais Profª Flávia Maristela Aula 6: Comunicação entre processos Instituto Federal da Bahia INF009 - Sistemas Operacionais Profª Flávia Maristela (-- motivação --) Processos em execução no sistema operacional podem ser: Independentes:

Leia mais

Programação Distribuída e Paralela Apresentação

Programação Distribuída e Paralela Apresentação Programação Distribuída e Paralela Apresentação Programação Distribuída e Paralela (C. Geyer) Apresentação V4.2 S 1 Autoria Autoria Local Versão 4.2 Fev 2014 C. Geyer INF UFRGS Disciplinas INF01008 Programação

Leia mais

Sistemas de Entrada e Saída

Sistemas de Entrada e Saída Sistemas de Entrada e Saída Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Maio, 2016 1 / 31 Sumário 1 Interrupções 2 Camadas de Software de E/S 2 / 31 Interrupções

Leia mais

Grupo I [6 v] Considere o processo com a seguinte tabela de páginas: Página Presente Protecção Base 0 0 RW RW R R RW -

Grupo I [6 v] Considere o processo com a seguinte tabela de páginas: Página Presente Protecção Base 0 0 RW RW R R RW - Número: Nome: LEIC/LETI 2014/15-2º Teste de Sistemas Operativos 9/Janeiro/2015 Identifique todas as folhas. Responda no enunciado no espaço fornecido. Justifique todas as respostas. Duração: 1h30m Grupo

Leia mais

Volnys Bernal 1. Trabalho Chat UDP. PSI 2653 Meios Eletrônicos Interativos I

Volnys Bernal 1. Trabalho Chat UDP. PSI 2653 Meios Eletrônicos Interativos I 2007-2017 Volnys Bernal 1 Trabalho PSI 2653 Meios Eletrônicos Interativos I 2007-2017 Volnys Bernal 2 Objetivo: Desenvolvimento de um programa chat UDP (cliente e servidor) Grupo Cada grupo deve escolher

Leia mais

LabSO Gerência de Processos. Processos. Porque eu preciso entender este assunto?

LabSO Gerência de Processos. Processos. Porque eu preciso entender este assunto? LabSO Gerência de AULA 3 Flávia Maristela (flavia@flaviamaristela.com) Romildo Martins (romildo@romildo.net) Porque eu preciso entender este assunto? Para entender como um computador consegue executar

Leia mais

TAREFAS COMUNICAÇÃO ENTRE TAREFAS AULA 08 Sistemas Operacionais Gil Eduardo de Andrade

TAREFAS COMUNICAÇÃO ENTRE TAREFAS AULA 08 Sistemas Operacionais Gil Eduardo de Andrade TAREFAS COMUNICAÇÃO ENTRE TAREFAS AULA 08 Sistemas Operacionais Gil Eduardo de Andrade O conteúdo deste documento é baseado no livro do Prof. Dr. Carlos Alberto Maziero, disponível no link: http://dainf.ct.utfpr.edu.br/~maziero

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos LICENCIATURA EM COMPUTAÇÃO Prof. Adriano Avelar Site: www.adrianoavelar.com Email: eam.avelar@gmail.com 1. Que são sistemas abertos? É um sistema que oferece serviços de acordo com

Leia mais

Processos e Threads. Prof. Dr. José Luís Zem Prof. Dr. Renato Kraide Soffner Prof. Ms. Rossano Pablo Pinto

Processos e Threads. Prof. Dr. José Luís Zem Prof. Dr. Renato Kraide Soffner Prof. Ms. Rossano Pablo Pinto Processos e Threads Prof. Dr. José Luís Zem Prof. Dr. Renato Kraide Soffner Prof. Ms. Rossano Pablo Pinto Faculdade de Tecnologia de Americana Centro Paula Souza Tópicos Conceito de Processos Escalonamento

Leia mais

Capítulo 3 Programação Concorrente. Nunca encontrei um homem tão ignorante que eu não pudesse aprender algo com ele.

Capítulo 3 Programação Concorrente. Nunca encontrei um homem tão ignorante que eu não pudesse aprender algo com ele. Universidade Federal de Itajubá UNIFEI Instituto de Engenharia de Sistemas e Tecnologias da Informação IESTI CCO 004 Sistemas Operacionais Prof. Edmilson Marmo Moreira 3.1 Introdução Capítulo 3 Programação

Leia mais

Modelos de Sistemas Distribuídos O Modelo Cliente-Servidor

Modelos de Sistemas Distribuídos O Modelo Cliente-Servidor Modelos de Sistemas Distribuídos - O Modelo Cliente-Servidor Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 1 Autoria! Autor 1ª versão " Cristiano A. Costa! Local " II - UFRGS! Revisões

Leia mais

Capítulo 2. Multiprogramação. Conteúdo. Objetivo. Recordando. Recordando. DCA-108 Sistemas Operacionais

Capítulo 2. Multiprogramação. Conteúdo. Objetivo. Recordando. Recordando. DCA-108 Sistemas Operacionais DCA-108 Sistemas Operacionais Capítulo 2 Luiz Affonso Guedes www.dca.ufrn.br/~affonso affonso@dca.ufrn.br Multiprogramação Luiz Affonso Guedes 1 Luiz Affonso Guedes 2 Conteúdo Caracterização de um SO Moderno

Leia mais

AULA ANTERIOR: MODELOS FUNDAMENTAIS

AULA ANTERIOR: MODELOS FUNDAMENTAIS AULA ANTERIOR: MODELOS FUNDAMENTAIS Modelos fundamentais de um sistema distribuído Permitem estabelecer quais as premissas existentes a respeito de aspetos chave. Permitem avaliar de forma objetiva as

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Programação Concorrente Introdução Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Introdução Programa Seqüencial Representado por apenas um processo Existe apenas

Leia mais

Bibliotecas. Apoio à Programação Distribuída. Socket. Socket. bibliotecas bibliotecas+ferramentas linguagens de programação distribuídas

Bibliotecas. Apoio à Programação Distribuída. Socket. Socket. bibliotecas bibliotecas+ferramentas linguagens de programação distribuídas Apoio à Programação Distribuída bibliotecas bibliotecas+ferramentas linguagens de programação distribuídas flexibilidade de programação disponibilidade da ferramenta facilidade de desenvolvimento e reuso

Leia mais

Protótipo tipo de um sistema de arquivos para ambiente distribuído

Protótipo tipo de um sistema de arquivos para ambiente distribuído Universidade Regional de Blumenau Bacharelado em Ciências da Computação Protótipo tipo de um sistema de arquivos para ambiente distribuído do Acadêmica: Catia Silene Possamai Orientador: Antonio Carlos

Leia mais

User Datagram Protocol

User Datagram Protocol User Datagram Protocol UDP: Protocolo utiliza para distinguir para qual usuário ou aplicativo deve ser encaminhado um datagrama destinado a uma máquina que esteja executando mais de um processo. Problemas:

Leia mais

IPC Interprocess communication

IPC Interprocess communication IPC Interprocess communication conceitos de IPC, pipes Taisy Weber Comunicação entre processos Pipes e FIFO Defição, chamadas de sistemas, utilização de Message queues. Memória compartilhada. Sockets.

Leia mais

QUEBRA DE SENHAS MD5 UTILIZANDO MDCRACK E MPI

QUEBRA DE SENHAS MD5 UTILIZANDO MDCRACK E MPI UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TÉCNOLOGIA CURSO DE CIÊNCIA DA COMPUTAÇÃO QUEBRA DE SENHAS MD5 UTILIZANDO MDCRACK E MPI Cicero Augusto de Lara Pahins, Cristiano Reis dos Santos. Professora:

Leia mais