Informática UFRGS. Cláudio Geyer. Programação concorrente (C. Geyer) Troca de Mensagens 1
|
|
- Maria Aleixo Castel-Branco
- 7 Há anos
- Visualizações:
Transcrição
1 Troca de Mensagens Curso de Programação Concorrente Notas de aula Cláudio Geyer. Programação concorrente (C. Geyer) Troca de Mensagens 1
2 Autores Autores C. Geyer Local Instituto de Informática disciplina: Sistemas Operacionais II Versão V7 data: 2011/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, argumentos canal: conceito, propriedades, criação 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, Cap. 7: conceitos básicos, comunicação assíncrona, exemplos Cap. 8: comunicação síncrona Cap. 9: RPC e rendezvous Andrews, G. Foundations of Multithreaded, Parallel, and Distributed. Addison-Wesley, Cap. 7: conceitos e estudos de casos Cap. 8: RPC e rendezvous Cap. 9: exemplos de programas Programação concorrente (C. Geyer) Troca de Mensagens 4
5 Bibliografia Bibliografia 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) Também as novas edições e livro SO + Java Tanenbaum, A.S. Modern Operating Systems. Englewood Clifss, NJ, Prentice-Hall, Também as novas edições Programação concorrente (C. Geyer) Troca de Mensagens 5
6 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, TEL, G. Introduction to Distributed Algorithms Programação concorrente (C. Geyer) Troca de Mensagens 6
7 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 7
8 Informática Conceitos básicos motivação Conceitos Básicos modelo de processos, como o Unix, onde não há compartilhamento de variáveis, inclusive sobre memória fisicamente compartilhada (mesma máquina) processos executando em máquinas distintas, sem memória fisicamente compartilhada redes de computadores: processos em 2 estações diferentes Manter um só modelo para memória compartilhada e redes outros nomes 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 8
9 Informática Conceitos básicos (cont.) Características gerais Conceitos Básicos comunicação e sincronização na mesmas primitivas diferentes sintaxes e semânticas pode ser usado conjuntamente com variáveis compartilhadas O uso de redes e computadores com processadores multicore deve intensificar o uso de modelo combinado Desempenho Variáveis compartilhadas têm melhor desempenho em memória fisicamente compartilhada TM tem melhor desempenho em redes Programação concorrente (C. Geyer) Troca de Mensagens 9
10 Informática Conceitos básicos (cont.) primitivas mínimas conceituais send(mensagem) Conceitos Básicos processo A envia dados contidos em mensagem a outro processo receive(mensagem) processo B recebe dados contidos em mensagem somente um processo recebe a mensagem variações serão apresentadas nos próximos slides send mensagem receive A B Programação concorrente (C. Geyer) Troca de Mensagens 10
11 Conceitos Básicos Conceitos básicos (cont.) Identificação do parceiro (nomeação) Forma e semântica usual Send exige a identificação do destino (processo) Receive não exige a identificação do emissor Pode receber de qualquer processo Mais um argumento: send(destino, mensagem) receive(origem, mensagem) ou receive(any, mensagem) Programação concorrente (C. Geyer) Troca de Mensagens 11
12 Conceitos Básicos Conceitos básicos (cont.) tamanho da mensagem fixo implementação da primitiva é mais simples programação mais complexa quando as mensagens da aplicação tem tamanho variável variável eventualmente, o programador precisa explicitar o tamanho de cada mensagem No send e no receive => mais um parâmetro Pode provocar tamanhos distintos entre o send e o receive Erros? Semântica? Programação concorrente (C. Geyer) Troca de Mensagens 12
13 Conceitos Básicos Conceitos básicos (cont.) tipo da mensagem vetor de bytes vetor de outros tipos Inteiro, real,... tipada e estruturada lista de parâmetros objeto Programação concorrente (C. Geyer) Troca de Mensagens 13
14 Conceitos Básicos Conceitos básicos (cont.) Sincronização Questão básica: primitivas send/receive bloqueiam? Quando? Semântica usual Send assíncrono (ou não bloqueante) Processo emissor não espera a execução do receive Receive síncrono (ou bloqueante) Observação Processor receptor espera que ao menos uma mensagem tenha sido enviada Alguns autores diferenciam termos: assíncrono x não bloqueante Programação concorrente (C. Geyer) Troca de Mensagens 14
15 Informática Conceitos básicos (cont.) Sincronização A semântica acima exige o uso de um buffer na implementação Buffer contém mensagens enviadas e não recebidas Send funciona como um append de produtor Produtor adiciona mensagem no buffer Bloqueia se buffer cheio? A verificar adiante Receive funciona como um get de consumidor Consumidor retira mensagem do buffer Bloqueia se buffer vazio Em caso de acesso concorrente ao buffer Conceitos Básicos Implementação deve mantê-lo em estado consistente Programação concorrente (C. Geyer) Troca de Mensagens 15
16 Conceitos Básicos Conceitos básicos (cont.) Sincronização A semântica acima permite o uso de send/receive para resolver problemas de sinalização Wait: -> receive(any, sinal) Signal: -> send(procdormindo, sinal) Questão: O sinal é perdido se procdormindo ainda não executou o wait? Programação concorrente (C. Geyer) Troca de Mensagens 16
17 Conceitos Básicos Conceitos básicos (cont.) As bibliotecas reais apresentam inúmeras variações e combinações sobre as opções acima Algumas serão apresentadas nos próximos slides Programação concorrente (C. Geyer) Troca de Mensagens 17
18 Conceitos Básicos Conceitos básicos (cont.) 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 nem sempre visível (explícito) no programa diversas semânticas e sintaxes Em função de variantes como as apresentadas nos slides anteriores: sincronização, Programação concorrente (C. Geyer) Troca de Mensagens 18
19 Conceitos Básicos Conceitos básicos (cont.) (outras) 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? Ver mais adiante x sincronização qual é a capacidade em mensagens (ou bytes) de um canal? Programação concorrente (C. Geyer) Troca de Mensagens 19
20 Conceitos Básicos Conceitos básicos (cont.) (outras) propriedades dos canais de comunicação 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 20
21 Informática Conceitos básicos (cont.) propriedades dos canais de comunicação outros tipos comunicação direta ou indireta Conceitos Básicos comunicação simétrica ou assimétrica buferização automática ou explícita envio por cópia ou por referência Obs.: Diversas propriedades serão analisadas nos próximos slides Programação concorrente (C. Geyer) Troca de Mensagens 21
22 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 22
23 Nomeação Nomeação comunicação direta Modelo simples 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 23
24 Nomeação Nomeação (cont.) comunicação direta (cont.) exemplo produtor-consumidor produtor consumidor gera elemento e envia ao consumidor por um send 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 24
25 Informática Nomeação (cont.) comunicação direta (cont.) exemplo produtor-consumidor diagrama Nomeação Elemento Produtor Consumidor Programação concorrente (C. Geyer) Troca de Mensagens 25
26 Informática Nomeação (cont.) comunicação direta (cont.) exemplo produtor-consumidor Código produtor process produtor {}{ repeat... produz(elemento);... send(consumidor, elemento);... until false; }; Nomeação Programação concorrente (C. Geyer) Troca de Mensagens 26
27 Informática Nomeação (cont.) comunicação direta (cont.) exemplo produtor-consumidor código consumidor process consumidor {}{ repeat... receive(produtor, elemento);... consome(elemento);... until false; }; Nomeação Programação concorrente (C. Geyer) Troca de Mensagens 27
28 Informática Nomeação (cont.) comunicação direta (cont.) exemplo produtor-consumidor Diversas questões de sincronização surgem nesse exemplo Como na solução com buffer compartilhado A) se produtor mais rápido que consumidor? B) se consumidor mais rápido que produtor? Send/receive com semântica assíncrona send assícrono e receive bloqueante -> como solução em memória compartilhada Outras semânticas serão tratadas adiante em buferização Nomeação Programação concorrente (C. Geyer) Troca de Mensagens 28
29 Nomeação Nomeação (cont.) comunicação direta (cont.) exemplo produtor-consumidor Um caso usual de sincronização Consumidor eventualmente bloqueia em receive se mais rápido Não há mensagens (ou buffer vazio) Produtor eventualmente recebe exceção ou bloqueia após enviar muitas mensagens quando mais rápido Buffer cheio Programação concorrente (C. Geyer) Troca de Mensagens 29
30 Informática 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) Se número infinito ou não-determinado de processos Programador deve gerenciar a atribuição de nomes Programação concorrente (C. Geyer) Troca de Mensagens 30
31 Nomeação Nomeação (cont.) tipos de identificação (nomes) 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 (na opção de criação estática) Programação concorrente (C. Geyer) Troca de Mensagens 31
32 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 exemplos: Unix (fork), PVM, linguagens orientadas a objetos Programação concorrente (C. Geyer) Troca de Mensagens 32
33 Informática Nomeação indireta conceitos uso de caixas postais onde Nomeação Indireta processos emissores colocam suas mensagens processos receptores retiram suas mensagens Usualmente 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 33
34 Nomeação Indireta Nomeação indireta conceitos primitivas send(c, mensagem) receive(c, mensagem) onde C é o nome da caixa postal Em geral não é possível usar any em receive Programação concorrente (C. Geyer) Troca de Mensagens 34
35 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 às vezes somente ele pode receber pela caixa Programação concorrente (C. Geyer) Troca de Mensagens 35
36 Informática 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 receptor 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 36
37 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 (linguagem do Andrews) Programação concorrente (C. Geyer) Troca de Mensagens 37
38 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 38
39 Informática Nomeação indireta caixas postais de sistema proprietário da caixa postal Nomeação indireta 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) ou por timeout Programação concorrente (C. Geyer) Troca de Mensagens 39
40 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, versão 1 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 40
41 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 nessa execução 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 41
42 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 42
43 Estática Indireta Exemplo de nomeação estática, indireta sockets TCP biblioteca de comunicação com protocolo TCP/IP usualmente encontrada nos sistemas desktops, servidores,, como Unix, Linux, Windows, Bibliotecas para a maioria das linguagens C, C++, C#, Java, Programação concorrente (C. Geyer) Troca de Mensagens 43
44 Informática Exemplo de nomeação estática, indireta modelo cliente/servidor cliente requisita conexão ao servidor cliente conhece servidor: IP e porta (processo) servidor aceita conexão Estática Indireta cliente (ou servidor) envia mensagem ao servidor (ou cliente) pela conexão nomeação em dois níveis estático, explícito: estabelecimento da conexão (IP, porta) dinâmico, implícito: no send/receive (uso da conexão) Exemplo biblioteca para linguagem C de TCP é usualmente visto em aula prática Programação concorrente (C. Geyer) Troca de Mensagens 44
45 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 45 } /* Socket conectado */
46 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 46
47 CG1 Informática Exemplo C Sockets TCP Exemplo com Sockets TCP em C Programa Modelo cliente / servidor Servidor Sem funções definidas (código) Somente cria socket e espera pedido de conexão Cliente Cria socket e pede conexão Exemplos genéricos de send e receive Programação concorrente (C. Geyer) Troca de Mensagens 47
48 Slide 47 CG1 todo o exemplo foi alterado Claudio Geyer; 3/9/2008
49 Informática 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> #define PORT int server_sock; struct sockaddr_in server_addr; Exemplo C TCP Sockets /* * 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 48
50 Informática 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 */ /* liga o socket com o endereço */ 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); /* exit with error */ } Programação concorrente (C. Geyer) Troca de Mensagens 49
51 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 50
52 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 51
53 CG2 Informática Exemplo em C e TCP sockets (cont.) /* cria socket cliente */ if ( (sock = socket(af_inet, SOCK_STREAM, 0)) < 0) { exit(-1); /* error handling */ } Exemplo C TCP Sockets /* 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 52
54 Slide 52 CG2 faltando o connect! Claudio Geyer; 3/9/2008
55 Informática Exemplo em C e TCP sockets (cont.) /* receber em C */ /* pode ser cliente ou servidor */ Exemplo C TCP Sockets 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, remaining); /* canal, buffer, tamanho */ if ( n <= 0 ) { /* EOF or error */ break; } else p+=n; /* update buffer pointer */ } printf("%s", buff); Programação concorrente (C. Geyer) Troca de Mensagens 53
56 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); /* canal, buffer, tamanho */ 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 54
57 Informática 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 55
58 Indireta Estática Exemplo de nomeação estática indireta SR em livro linguagem criada por G. Andrews usada no livro [Andrews, 1991] modelo canais declarados por programa semântica global: automaticamente conhecidos por todos os processos SR real não oferece semântica global ponteiros devem ser passados entre máquinas abstratas (criação em nível de programa) Programação concorrente (C. Geyer) Troca de Mensagens 56
59 Indireta Estática Exemplo de nomeação estática indireta Modelo (SR: cont.) processos declarados estaticamente process P1 var begin end endprocess Programação concorrente (C. Geyer) Troca de Mensagens 57
60 Indireta Estática Exemplo código: channel canalexemplo (string D); // canal global; cada mens.: 1 // string process emissor:: string A = Ola mundo ; send canalexemplo (A); end process; process receptor:: string B; receive canalexemplo (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 58
61 Informática Buferização e sincronização buffer Buferização local onde são colocadas mensagens enviadas e (ainda) não recebidas similar a uma fila de espera pode existir tanto na máquina do emissor quanto do receptor Usualmente transparentes ao programador Criados pela implementação das rotinas send/receive, canais e caixas postais Em redes: implementação de protocolos de comunicação TCP, UDP,... Lembrando que há várias camadas Programação concorrente (C. Geyer) Troca de Mensagens 59
62 Buferização Buferização e sincronização capacidade Zero (sem buffer): 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 (pela rede), deve-se evitar a alteração da área de dados no emissor isto poderia ser feito pela própria aplicação usada em casos especiais Programação concorrente (C. Geyer) Troca de Mensagens 60
63 Buferização Buferização e sincronização capacidade limitada opção frequente capacidade máxima de n mensagens ou bytes enquanto o buffer está com espaço livre, a primitiva de envio coloca (copia) a mensagem no buffer e, após, libera o processo emissor a cópia da mensagem em memória tem custo em mensagens curtas é rápido Programação concorrente (C. Geyer) Troca de Mensagens 61
64 Informática Buferização e sincronização capacidade Limitada O buffer pode ser esgotado Buferização Usualmente quando o emissor (ou emissores) são muito mais rápidos que o receptor 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 62
65 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 63
66 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 pode não exigir 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 64
67 Buferização Buferização e sincronização considerações ( técnicas de programação ) Na comunicação dita assíncrona emissor (nível do programa usuário) não sabe se a mensagem foi recebida (receive executado) se necessário envio pelo receptor (nível do programa usuário), após recepção, de um aviso de recepção (ACK) protocolo de comunicação se torna parecido ao síncrono capacidade limitada (ou ilimitada pelo programador) pelo buffer Programação concorrente (C. Geyer) Troca de Mensagens 65
68 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 66
69 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 do send 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 67
70 Buferização Buferização e sincronização casos especiais expressão 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 frequentemente é a semântica de TM Programação concorrente (C. Geyer) Troca de Mensagens 68
71 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 69
72 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 70
73 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 71
74 Informática Outras questões expressão da concorrência em redes Outras Questões nem sempre existem primitivas de criação de tarefas remotas sincronização fork, create_thread,... sempre locais ID s tem validade local Usuário deve disparar os diferentes processos (programas) construções como mutex, semáforos,... usualmente são locais não podem ser usados entre processos distribuídos mas não necessários se processos são monothread Programação concorrente (C. Geyer) Troca de Mensagens 72
75 Informática 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 rede física de comunicação Por exemplo, ruptura de cabo erro momentâneo (transiente) no sinal 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 73
76 Informática 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 74
77 TM X VC Troca de mensagens X variáveis compartilhadas motivações para TM 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 75
78 Resumo Resumo Conceito Primitivas send/receive Argumentos Parceiro e mensagem Tamanho da mensagem Tipo da mensagem Sincronização básica Send assíncrono e receive síncrono (ou bloqueante) Similar ao problema do produtor/consumidor Exige buffer na implementação Programação concorrente (C. Geyer) Troca de Mensagens 76
79 Resumo Resumo Canal e propriedades Nomeação Direta: simétrica e assimétrica Indireta Nomes estáticos x dinâmicos Caixa postal de programa (processo) e de sistema Programação concorrente (C. Geyer) Troca de Mensagens 77
80 Resumo Resumo Bufferização Capacidades Opções quando esgotado TM síncrona TM assíncrona não bloqueante Exemplos de tipos de primitivas: MPI, sockets TCP, PVM, SR Casos de erros TM x variáveis compartilhadas Programação concorrente (C. Geyer) Troca de Mensagens 78
81 Revisao Revisão Conceito? Motivações (3)? Uso combinado VC + TM? Primitivas básicas? Comparação básica entre VC (ou memória compartilhada) e TM? Desempenho Facilidade, simplicidade de programação TM x sincronização? Programação concorrente (C. Geyer) Troca de Mensagens 79
82 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 80
83 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 81
84 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 82
85 Revisão Revisão Exemplo MPI Tipo nomeação Valores dos nomes Programação concorrente (C. Geyer) Troca de Mensagens 83
86 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 84
87 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 85
88 Revisão Revisão TM assíncrona bloqueante e não bloqueante TM síncrona garantias ordenação outras? Programação concorrente (C. Geyer) Troca de Mensagens 86
89 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 87
90
Curso de Programação Concorrente. Notas de aula
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 disciplina: Sistemas Operacionais
Leia maisTroca 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 maisSistemas 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 maisProgramaçã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 maisComunicaçã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 maisArquitetura 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 maisSistemas 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 maisCurso 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 maisServidor 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 maisCliente 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 maisDifusã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 maisProgramaçã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 maisServidor 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 maisServidor 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 maisSockets - 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 maisCliente 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 maisSistemas Operacionais II
Introdução Instituto de Informátic ca - UFRGS Sistemas Operacionais II Comunicação e sincronização por troca de mensagens Aula 0 Em ambientes de memória distribuída a comunicação e a sincronização entre
Leia maisServidor TCP Volnys Borges Bernal Depto de Engenharia de Sistemas Eletrônicos Escola Politécnica da USP
2004-2019 Volnys Bernal 1 Servidor TCP Volnys Borges Bernal Depto de Engenharia de Sistemas Eletrônicos Escola Politécnica da USP 2004-2019 Volnys Bernal 2 Resumo das Chamadas TCP 2004-2019 Volnys Bernal
Leia maisSistemas 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 maisCliente 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 maisFundamentos 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 maisAula 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 maisAula 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 maisServidor 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 maisCapí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 maisServidor 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 maisINTRODUÇÃ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 maisCliente 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 maiscamada 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 maisSumá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 maisVamos 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 maisInformá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 maisComunicaçã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 maisUniversidade 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 maisProblemas 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 maisComunicaçã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 maisSockets: 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 maisCOMUNICAÇÃ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 maisProgramaçã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 maisUniversidade 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 maisConcorrê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 maisSockets. 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 maisComunicaçã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 maisProgramaçã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 maisProblema do Produtor -Consumidor. Solução por semáforos
Problema do Produtor -Consumidor Solução por semáforos Autoria Autores alunos da disciplina SO II Local Instituto de Informática UFRGS Versão v7 agosto de 2008 por C. Geyer Visão geral do assunto...2 Conceito...3
Leia maisCapítulo II Modelos de Programação Distribuída
Capítulo II Modelos de Programação Distribuída From: Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 3, Addison-Wesley 2001 From: M. Ben-Ari Principles of Concurrent
Leia maisSistemas 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 maisUniversidade 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 maisRemote 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 maisSistemas 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 maisSistemas 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 maisComunicaçã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 maisSistemas Distribuídos
Faculdades SENAC Análise e Desenvolvimento de Sistemas 1 de agosto de 2009 Orientação a Objetos Encapsulamento: Parte interna (privada) dos objetos Implementação: métodos Estado: atributos, variáveis,
Leia maisLABORATÓ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 maisComunicaçã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 maisLABORATÓ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 maisCapí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 maisRoteiro... 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 maisUtilizaçã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 maisTAREFAS 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 maisSistemas Operacionais
Sistemas Operacionais I Índice 2 Processos... 1 2.2.5 Semáforos... 1 2.2.6 Monitores... 2 2.2.7 Passagem de Mensagens... 5 2 Processos 2.2.5 Semáforos Para resolver este problema, Dijkstra propôs em 1965
Leia maisSistemas 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 maisSistemas 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 maisProgramaçã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 maisOO 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 maisComunicaçã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 maisCurso 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 maisSistemas 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 maisSistemas 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 maisSISTEMAS 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 maisProtocolo 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 maisSoquetes 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 maisLeandro 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 maisIntroduçã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 maisINE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUIDA PROVA 2 12/06/2017. ALUNO Prof. Bosco
INE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUIDA PROVA 2 12/06/2017 ALUNO Prof. Bosco 1. Sockets - Indicar (Verdade/Falso): (a) (Verdade/Falso) Sockets são abstrações utilizadas nos protocolos de comunicação
Leia maisAula 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 maisFUNDAMENTOS DE REDES DE COMPUTADORES Unidade 5 Camada de Transporte e Aplicação. Luiz Leão
Unidade 5 Camada de Transporte e Aplicação Luiz Leão luizleao@gmail.com http://www.luizleao.com Conteúdo Programático 5.1 Protocolo UDP 5.2 Protocolo TCP 5.3 Principias Protocolos de Aplicação 5.3.1 SMTP
Leia maisProgramação Concorrente e Paralela
Comunicação por Troca de Mensagens 2016 Troca de Mensagens forma básica de comunicação em ambientes de memória distribuída outras camadas podem ser construídas sobre trocas de mensagens básicas mas também
Leia maisVolnys 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 maisGERENCIAMENTO 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 maisSincronização e Comunicação entre Processos
Sincronização e Comunicação entre Processos Monitores/Semáforos Semáforos Mecanismos de sincronização nãoestruturados; Exige do desenvolvedor bastante cuidado, pois qualquer engano pode levar a problemas.
Leia maisSistemas 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 maisComunicação. capítulo
Comunicação capítulo 4 Camadas de protocolos: Modelo OSI Camadas de protocolos: Mensagem Protocolos de baixo nível Estas camadas implementam as funções básicas que envolvem uma rede de computadores: Física:
Leia maisConceito 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 maisProtó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 maisProgramaçã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 maisComunicaçã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 maisComunicaçã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 maisSistemas Distribuídos
Sistemas Distribuídos Universidade Federal do ABC Turma: Ciência da Computação Prof. Dr. Francisco Isidro Massetto Introdução: Sockets Para estabelecer a Comunicação Interprocesso nos Sistemas Distribuídos,
Leia maisPor 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 maisSistemas 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 maisUser 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 maisLabSO 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 maisUNIVERSIDADE 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 maisProcessos. Conceitos Básicos
Processos Conceitos Básicos Processo (1) Abstração usada pelo S.O. para designar a execução de um programa. É caracterizado por uma thread de execução, um estado corrente e um conjunto associado de recursos
Leia maisProgramação com Sockets
Programação com LP4 Ciência da Computação 1 Comunicação entre processos Nível mais baixo É um tipo particular de modelo de programação em redes utilizado em várias linguagens como: C, C++ e Java São estruturas
Leia maisMessage 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 maisChapter 4: Threads. Operating System Concepts 8th Edition
Chapter 4: Threads Sobre a apresentação (About the slides) Os slides e figuras dessa apresentação foram criados por Silberschatz, Galvin e Gagne em 2009. Esse apresentação foi modificada por Cristiano
Leia mais