Problemas relacionados a exclusão mútua
|
|
- Valentina Bonilha Fidalgo
- 5 Há anos
- Visualizações:
Transcrição
1 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 outros ficam com o acesso ao recurso desejado. Exemplo: Considere uma estrada com uma ponte por onde só passa um carro de cada vez.
2 Deadlock Um carro começa a atravessar de cada um dos lados, e os dois se encontram no meio da ponte. Nenhum dos dois tem como continuar...
3 Deadlocks com semáforos detém ESPERA deseja deseja ESPERA detém P(sem_rec1); P(sem_rec2); P(sem_rec2); P(sem_rec1);
4 Deadlock em um sistema de Computação Impressora pertence a João Maria precisa da impressora Impressora João Maria João precisa da unidade de cartucho unidade de cartucho unidade pertence a Maria
5 Starvation Se, ao chegar à ponte, há um carro já atravessando na direção desejada, o carro que chegou atravessa também. Se há alguém vindo em direção oposta, o carro que chegou espera até que este tenha acabado de cruzar. Pode nunca chegar a sua vez......
6 Starvation em um sistema de Computação Aberto LEITORES Fechado Abre Abre ESCRITORES
7 Problema dos Produtores e Consumidores ou do Buffer Limitado Dois processos concorrentes compartilham um buffer de tamanho fixo: Produtor: coloca dados em um buffer Consumidor: ler dados de um buffer Ordem dos eventos: Produtor coloca os dados Consumidor ler os dados Produtor dados buffer dados Consumidor
8 Exemplo com Semáforos Processo Produtor... P(s) Armazena_dados(d) V(s)... Processo Consumidor... P(s) Le_dados(d) V(s)...
9 Exemplo com Monitor Monitor prod-cons buffer: matriz[1..n]... Procedure Armazena_dados(dados) begin... End Procedure Le_dados(dados) begin... end Processo Produtor... Armazena_dados(d)... Processo Consumidor... Le_dados(d)...
10 Problema dos Produtores e Consumidores N = 100; /* número máximo de slots inteiro cont = 0; /* número de itens no buffer produtor() consumidor() { { Enquanto (TRUE) { Enquanto (TRUE) { produz_item(); if (cont == 0) sleep(); if (cont == N) sleep(); /* se buffer tá cheio, bloqueia remove_item(); entra_item(); /* coloca item no buffer cont = cont - 1; cont = cont + 1; if (cont == N-1) If (cont == 1) wakeup(consumidor); wakeup(produtor) } } } } OBS.: Solução com deadlock
11 Problema dos Produtores e Consumidores Situação de Deadlock Acesso ao contador (variável cont) Descrição: Buffer vazio => cont = 0 Consumidor ler valor de cont (cont = 0) Ocorre a interrupção da execução do Consumidor Produtor coloca item no buffer e incrementa cont (cont =1) Produtor conclui que consumidor está dormindo e chama a primitiva wakeup para acordá-lo Consumidor não está na lista de processos bloqueados, ele está pronto para ser executado Sinal emitido pelo wakeup é perdido Consumidor volta a executar e testa o valor de cont que ele leu (cont = 0) Consumidor irá dormir Quando o buffer encher, o Produtor irá dormir Os dois processos dormirão eternamente => DEADLOCK
12 Problema dos Leitores e Escritores semáforo scl = 1; /* semáforo para acesso exclusivo a variável compartilhada cont_leitores semáforo sbd = 1; /* semáforo para acesso exclusivo ao banco de dados inteiro cont_leitores; leitor() escritor() { { Enquanto (TRUE) { Enquanto (TRUE) { wait(scl); /* acesso exclusivo a variável cont_leitores wait(sbd); cont_leitores = cont_leitores + 1; escreve(); } Se (cont_leitores == 1) wait(sbd); /* quando é o primeiro leitor signal(sbd); signal(scl); } ler_banco_de_dados(); wait(scl); cont_leitores = cont_leitores - 1; Se (cont_leitores == 0) signal(sbd); signal(scl); } OBS.: Solução com prioridade para os leitores, ocasionando Starvation para escritores.
13 Comunicação entre Processos Comunicação Memória Compartilhada Troca de Mensagens Em Sistemas Distribuídos não há memória compartilhada
14 Troca de Mensagens Na ausência de memória compartilhada: comunicação entre processos: TROCA DE MENSAGENS Primitivas para Comunicação: SEND(destino, mensagem) RECEIVE(origem, mensagem) Comunicação: Processo A -> Envia Mensagem Processo B -> Recebe Mensagem Envio da Mensagem: Receptor esperando para receber Receptor em qualquer estado
15 Tipos de Comunicação Comunicação Síncrona: troca de mensagens requer participação do emissor e do receptor há um sincronismo entre os dois processos (emissor e receptor) Comunicação Assíncrona: emissor pode enviar a mensagem em qualquer momento e continuar seu trabalho receptor pode pegar a mensagem em um momento posterior ao envio necessidade de um buffer para as mensagens Exemplo: Sistema Telefônico x Sistema de Correio Eletrônico
16 Exemplo de Comunicação Síncrona Produtor e Consumidor Processo Produtor... Repeat Produz_item() Monta msg(item) Send(consumidor, msg) Until False... Processo Consumidor... Repeat Receive(*,msg) Ler msg() Consome_item() Until False...
17 Programas de Aplicação X TCP/IP Como os programas de aplicação usam as facilidades oferecidas pelo TCP/IP para transmissão de suas mensagens? Os padrões não especificam como os programas de aplicação interagem com a implementação do protocolo TCP/IP (Interface Não Padronizada!!!) A interface fica a cargo do Sistema Operacional
18 Apoio à Programação Distribuída bibliotecas bibliotecas+ferramentas linguagens de programação distribuídas plataformas de Middleware flexibilidade de programação facilidade de desenvolvimento e reuso
19 Bibliotecas Uso de uma linguagem de programação tradicional com chamadas a uma biblioteca de programação distribuída. Exemplos: sockets (originalmente Unix): programação baseada no modelo cliente-servidor; pvm, p4, Express >> mpi: programação baseada na comunicação entre processos pares. Dados são transmitidos através de streams de bytes ou buffers - interpretação correta fica por conta do programa.
20 Socket Forma de Comunicação entre Processos disponível no UNIX BSD UNIX BSD (Berkeley) System V (AT&T) Socket TLI (Transport Layer Interface) Usado para um processo comunicar-se com outro que esteja em uma máquina qualquer Idéia similar a de descritor de arquivos O Socket é identificado por um inteiro chamado descritor do socket descritor_do_socket = socket()
21 Socket Socket: Espera uma conexão Inicia uma conexão Socket Passivo: espera por uma conexão (usado por Servidores) Socket Ativo: Inicia uma conexão (usado pelos Clientes) Complexidade do Socket: parâmetros que o programador pode setar
22 Socket Exemplo de alguns parâmetros: Transferência de: stream (TCP) datagrama (UDP) endereço remoto: específico (geralmente usado pelo cliente) inespecífico (geralmente usado pelo servidor)
23 TCP/IP Protocolo de Comunicação Não estabelece como o Sistema Operacional (SO) vai se comunicar com ele. A interface do SO é responsável pela comunicação com o TCP/IP O UNIX faz isso usando socket. TCP/IP estabelece uma abstração chamada Porta.
24 Chamadas usadas no Socket socket( ) -> cria um socket usado para comunicação e retorna um descritor connect( ) -> depois de criar um socket um cliente chama connect para estabelecer uma conexão com um servidor, usando o descritor do socket write( ) -> para enviar dados através de uma conexão TCP read( ) -> para receber dados através de uma conexão TCP close( ) -> para desalocar o socket. bind( ) -> usado por servidores para especificar uma porta na qual ele irá esperar conexões. listen( ) -> servidores chamam o listen para colocar o socket no modo passivo e torná-lo disponível para aceitar conexões accept( ) -> depois que um servidor chama socket para criar um socket, bind para especificar seu endereço e listen para colocá-lo no modo passivo, ele deve chamar o accept para pegar a primeira solicitação de conexão na fila.
25 Exemplo do Uso de Socket SERVIDOR socket bind listen accept bloqueia até chegar uma conexão do cliente read write conexão estabelecida dados CLIENTE socket connect write close dados read close
26 Definições de Constantes #define SERV_TCP_PORT 6543 #define SERV_HOST_ADDR
27 Código do Servidor usando o Protocolo TCP/IP main(int argc, char *argv[]) { int sockfd, newsockfd, tam_cli, filho_pid; struct sockaddr_in cli_addr, serv_addr; if ((sockfd = socket(af_inet, SOCK_STREAM, 0)) < 0) /* abre um socket TCP */ erro; /* Liga o processo servidor ao seu endereço local */ bzero((char *)&serv_addr, sizeof(serv_addr)); serv_addr.sin_family = AF_INET; serv_addr.sin_addr.s_addr = htonl(inaddr_any); serv_addr.sin_port = htons(serv_tcp_port); if (bind(sockfd, (struct sockaddr *)&serv_addr, sizeof(serv_addr)) < 0) erro; listen(sockfd, 5); for (;;) { newsockfd = accept(sockfd, (struct sockaddr *)&cli_addr, &tam_cli); if (newsockfd <0) erro; if (( filho_pid = fork()) < 0) erro; else if (filho_pid == 0) { /* processo filho */ close(sockfd); /* fecha o socket original */ str_echo(newsockfd); /* processa a solicitação */ exit(); } close(newsockfd); /* processo pai */ } }
28 Código do Cliente usando o Protocolo TCP/IP main(int argc, char *argv[]) { int sockfd; struct sockaddr_in serv_addr; if ((sockfd = socket(af_inet, SOCK_STREAM, 0)) < 0) /* abre um socket TCP */ erro; /* Preenche a estrutura serv_addr com o endereço do servidor com o qual ele deseja se conectar*/ bzero((char *)&serv_addr, sizeof(serv_addr)); serv_addr.sin_family = AF_INET; serv_addr.sin_addr.s_addr = inet_addr(serv_host_addr); serv_addr.sin_port = htons(serv_tcp_port); if (connect(sockfd, (struct sockaddr *)&serv_addr, sizeof(serv_addr)) < 0) erro; str_cli(stdin, sockfd); /* envia a solicitação */ close(sockfd); exit(); } }
29 Rotina Auxiliar do Servidor de Echo /* Rotina que lê um stream de uma linha e envia a linha de volta ao cliente */ #define MAXLINE 512 str_echo(int sockfd) { int n; char line[maxline]; for (;;) { n = readline(sockfd, line, MAXLINE); if (n ==0 ) return; /* termina a conexão */ else if (n < 0) erro; if (writen(sockfd, line, n)!= n) erro; } }
30 Rotina Auxiliar do Cliente /* Rotina que lê o conteúdo do arquivo FILE *fp, escreve cada linha no socket, lê uma linha de volta do socket, e escreve esta linha na saída padrão */ #define MAXLINE 512 str_cli(file *fp, int sockfd) { int n; char sendline[maxline], recvline[maxline + 1]; While (fgets(sendline, MAXLINE, fp)!= NULL) { n = strlen(sendline); if (writen(sockfd, sendline, n)!= n) erro; n = readline(sockfd, recvline, MAXLINE); /* lê a linha enviada pelo servidor */ if ((n < 0) erro; fputs(recvline, stdout); /* imprime a linha na saída padrão */ if (writen(sockfd, line, n)!= n) erro; } }
31 Chamadas do Socket Socket(int family, int type, int protocol) AF_INET AF_UNIX AF_NS SOCK_STREAM SOCK_DGRAM 0 sockfd = socket(af_inet, SOCK_STREAM, 0)
32 Chamadas do Socket bind(int sockfd, struct sockaddr *addr, int addrlen) endereço específico de protocolo tamanho da estrutura de endereço sockfd = socket(af_inet, SOCK_STREAM, 0)
33 Usos do Bind Servidor registrar seu endereço Cliente registrar seu endereço Cliente usando protocolo sem conexão solicitar ao sistema a atribuição de um endereço
34 Endereçamento O socket oferece uma estrutura diferente para cada protocolo onde o programador especifica os detalhes de endereçamento Para o protocolo TCP/IP a estrutura sockaddr_in especifica o formato de endereço struct sockaddr_in { u_short sin_family; /* tipo de endereço */ u_short sin_port; /* número da porta */ u_long sin_addr; /* endereço IP */ }
35 Definindo o endereço de um servidor struct sockaddr_in { u_short sin_family; /* tipo de endereço */ u_short sin_port; /* número da porta */ u_long sin_addr; /* endereço IP */ } struct sockaddr_in serv_addr; bzero((char *)&serv_addr, sizeof(serv_addr)); serv_addr.sin_family = AF_INET; serv_addr.sin_addr.s_addr = htonl (INADDR_ANY) serv_addr.sin_port = htons( 6644 )
36 Portas Formas de Processos serem associados a uma porta: o processo solicita uma porta específica (tipicamente usado por servidores) o sistema automaticamente atribui uma porta para o processo (tipicamente usado por clientes) o processo especifica porta = 0 antes de fazer a chamada ao bind. O bind atribui uma porta automaticamente
37 TCP/IP - Tabela de Portas Portas reservadas Portas automaticamente atribuídas pelo sistema
38 Funções para conversão para formato padrão u_long htonl(u_long hostlong) host network long u_short htons(u_long hostshort) host network short
39 Operações sobre Bytes Não são manipuladas por operações padrão sobre strings pois: Não terminam com nulo Podem ter bytes nulos dentro deles bcopy(char *src, char *dest, int nbytes) Move o nbytes da origem (src) para o destino bzero(char *dest, int nbytes) zera nbytes do destino int bcmp(char *ptr1, char *ptr2, int nbytes) Compara dois strings. Retorna 0 se os dois são idênticos.
40 INADDR_ANY Para máquinas com duas interfaces de rede, usa-se o INADDR_ANY para estabelecer que o servidor está escutando nas duas redes Rede A Rede B
41 I/O Assíncrono Processo informa ao kernel para notificá-lo quando um determinado descritor está pronto para I/O. Processo Kernel signal
42 I/O Assíncrono Processo usa a função signal para estabelecer um handler para o sinal SIGIO Processo usa a função fcntl para setar o ID do processo para receber sinais SIGIO. Processo habilita o I/O assíncrono usando a chamada fcntl
43 Desvantagem O processo pode ter somente um handler para um dado sinal Se o I/O assíncrono é habilitado para mais que um descritor, quando o sinal chega, o processo não sabe qual descritor está pronto para I/O
44 Select Chamada do sistema que permite que um processo instrua o kernel para observar múltiplos eventos e acorda-lo quando um dos eventos acontecer Útil para o kernel ser instruído para notificar o processo apenas quando dados estão disponíveis em um dos sockets, arquivos,... usados pelo processo => Servidores que administram vários serviços
45 Chamada Select int select(int ndesc, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout); ndesc número de descritores a serem testados readfds, writefds, exceptfds descritores de arquivos observados (pronto para leitura, pronto para escrita e de exceções) timeout: - quando diferente de NULL e de zero, aponta um intervalo de tempo fixo para a chamada ficar monitorando os descritores. - igual a NULL, o select permanece indefinidamente monitorando os descritores - igual a zero, a chamada retorna imediatamente após verificar os descritores
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 maisBibliotecas. 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 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 maisChamadas do Socket. Socket(int family, int type, int protocol) SOCK_STREAM SOCK_DGRAM AF_INET AF_UNIX AF_NS. sockfd = socket(af_inet, SOCK_STREAM, 0)
Chamadas do Socket Socket(int family, int type, int protocol) AF_INET AF_UNIX AF_NS SOCK_STREAM SOCK_DGRAM 0 sockfd = socket(af_inet, SOCK_STREAM, 0) Chamadas do Socket bind(int sockfd, struct sockaddr
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 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 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 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 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 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 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 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 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 maisMC823 Laboratório de Teleprocessamento e Redes
MC823 Laboratório de Teleprocessamento e Redes Primeiro Semestre 2008 Carlos R. Senna Prof. Edmundo R. M. Madeira Tecnologias de Comunicação 2 MC823 Funções para cliente-servidor UDP 3 well-known port
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 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 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 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 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 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 maisIntrodução à Programação Sockets
2002-2015 Volnys Bernal 1 Introdução à Programação Sockets Volnys Borges Bernal volnys@lsi.usp.br Departamento de Sistemas Eletrônicos Escola Politécnica da USP 2002-2015 Volnys Bernal 2 Agenda Interface
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 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 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 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 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 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 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 maisProgramação com Sockets TCP e UDP - Cliente. Gustavo Leitão
Programação com Sockets TCP e UDP - Cliente Gustavo Leitão 5/24/2010 INTRODUÇÃO Objetivo da Aula OBJETIVO DA AULA Apresentar ao aluno conceitos e prática em sockets INTRODUÇÃO O que é um socket? INTRODUÇÃO
Leia maisComunicação entre Processos
Comunicação entre Processos Pipes Redirecionamento de entrada e saída 4/19/18 1 O Pipe: Características (1) Canal de comunicação entre processos parentes, usando a politica First-In-First-Out (FIFO) Tipicamente,
Leia maisCOMUNICAÇÃO ENTRE APLICAÇÕES. Laboratórios de Informática João Paulo Barraca, André Zúquete, Diogo Gomes
COMUNICAÇÃO ENTRE APLICAÇÕES Laboratórios de Informática 2014-2015 João Paulo Barraca, André Zúquete, Diogo Gomes Comunicação Aplicações interagem de várias formas com o utilizador (stdin, stdout, stderr)
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 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 Sockets
Sistemas de Operação Sockets O que é um socket? Uma interface de comunicação entre processos que podem ou não residir na mesma máquina, mas que não precisam estar relacionados. É usado normalmente para
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 Operacionais II
Introdução Instituto de Informátic ca - UFRGS Sistemas Operacionais II Estudo de caso: sockets API Aula 11 Aplicações em ambientes de rede seguem dois modelos: Cliente-servidor Peer-to-peer Interface de
Leia maiscomunicação entre processos distribuídos
comunicação entre processos distribuídos comunicação entre máquinas troca de mensagens serviço básico send (destino, msg) receive (origem, &msg) send (destino, msg) troca de mensagens receive (origem,
Leia maissockets interprocess communication Taisy Weber
sockets interprocess communication Taisy Weber Comunicação entre processos Mecanismos Pipes, FIFO (named pipes), semáforos, message queues. Memória compartilhada. Sockets Definição, chamadas de sistemas,
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 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 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 maisRedes de Computadores e Aplicações
Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Norte Campus Currais Novos Redes de Computadores e Aplicações Aula 13 - Camada de Aplicação Visão Geral Prof. Diego Pereira
Leia maisTROCA 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 maisMC823 Atividade 1: Cliente/Servidor TCP Iterativo. 3 Modificando o servidor para retornar data e hora
MC823 Atividade 1: Cliente/Servidor TCP Iterativo Gustavo Sverzut Barbieri 1 Introdução Nessa atividade nós modificamos cliente e servidor simples que utilizam o protocolo TCP/IP.
Leia maisRedes de Computadores
Prof. Universidade Federal de Mato Grosso do Sul brivaldo@facom.ufms.br 24 de abril de 2017 Sumário 1 O núcleo da rede 2 3 Introdução Nesta aula vamos fazer ter uma visão geral de como programas de rede
Leia maisComunicação entre Processos
entre Processos Canal de comunicação Arquitectura da comunicação Modelos de comunicação 1 entre Processos IPC Inter Process Communication Para interactuarem os processos necessitam de se sincronizar e
Leia maisIntrodução à Programação Sockets. Programação Sockets. (c) Volnys Bernal. Agenda. Introdução à Programação Sockets
00-0 Volnys Bernal 00-0 Volnys Bernal Agenda Introdução à Programação Sockets Volnys Borges Bernal volnys@lsi.usp.br Departamento de Sistemas Eletrônicos Escola Politécnica da USP Interface de programação
Leia maisModelo Cliente/Servidor e Introdução a Sockets
Modelo Cliente/Servidor e Introdução a Sockets MC 833 Programação em s de Computadores Instituto de Computação UNICAMP Juliana Freitag Borin O modelo OSI de 7 camadas Nó origem Nó destino Apresentação
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 maisComunicação entre Processos. 1. Pipes 2. Fifos 3. Sockets
Comunicação entre Processos 1. Pipes 2. Fifos 3. Sockets Pipes Implementa um canal de comunicação associado a um processo Limitações: Os dados apenas fluem num sentido Só podem ser usados entre processos
Leia maisIntrodução à Programação Sockets. Programação Sockets. (c) Volnys Bernal. Agenda. Introdução à Programação Sockets
Introdução à 00-00 Volnys Bernal 00-000 Volnys Bernal Agenda Introdução à Volnys Borges Bernal volnys@lsi.usp.br http://www.lsi.usp.br/~volnys Interface de programação sockets Socket Socket address Par
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 maisComunicação entre processos
Universidade Federal do Acre Centro de Ciências Exatas e Tecnológicas Bacharelado em Sistemas de Informação Comunicação entre processos Macilon Araújo Costa Neto macilon@ufac.br Capítulo 2 do livro do
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 maisAPI de Sockets. Modelo Cliente/Servidor (2/2) Modelo Cliente/Servidor (1/2) José Pedro Oliveira Sistemas Operativos I
Conteúdo (jpo@di.uminho.pt) Grupo de Sistemas Distribuídos Departamento de Informática Escola de Engenharia Universidade do Minho 1 Sistemas Operativos I 2006-2007 Modelo Cliente/Servidor (1/2) Modelo
Leia maisSistemas Operacionais
Sistemas Operacionais Processos - Parte 2 Prof. Dr. Fábio Rodrigues de la Rocha (Processos - Parte 2) 1 / 33 (Processos - Parte 2) 2 / 33 (Processos - Parte 2) 3 / 33 (Processos - Parte 2) 4 / 33 (Processos
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 maisCliente/Servidor. Programação com Sockets. Graça Bressan. Graça Bressan/LARC 2000 1
Cliente/Servidor Programação com Sockets Graça Bressan Graça Bressan/LARC 2000 1 Interface através de Sockets Socket é uma API ( Aplication Program Interface ) para acesso aos serviços do protocolo de
Leia mais21/11/16. Histórico. Interfaces e Periféricos Redes como interfaces. Abstração da infraestrutura de rede como interface
Interfaces e Periféricos Redes como interfaces Histórico Surgimento e popularização das redes criou a necessidade e oportunidade de usá-las como mecanismo de interação entre um computador e periféricos
Leia maisProgramação TCP/IP (sockets)
Programação TCP/IP (sockets) Instituto Superior de Engenharia de Lisboa Departamento de Engenharia de Electrónica e Telecomunicações e de Computadores Redes de Computadores Aplicações 17-03-2010 Programação
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 Canal de comunicação Arquitectura da comunicação Modelos de comunicação 8/28/2003 José Alves Marques 1 Necessidade da Comunicação A sincronização entre processos permitiu que
Leia maisSistemas Operacionais II Unix: Memória e E/S. Geraldo Braz Junior
Sistemas Operacionais II Unix: Memória e E/S Geraldo Braz Junior Gerenciamento de Memória Gerenciamento de Memória Espaço de Endereçamento 1. Segmento de código Instruções de máquina que formam o código
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 maisGrupo 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 maisSistemas Operacionais. Comunicação entre processos
Sistemas Operacionais Comunicação entre processos Comunicação entre Processos Os SO s hoje são multi-tarefa Alguns processos precisam cooperar para cumprir seus objetivos Sugestões de implementação? Exemplos
Leia maisAula Prática. Comunicação em SOCKTS. Disciplina: INF01151
Aula Prática Comunicação em SOCKTS Disciplina: INF01151 Prof. Dr. Cláudio Fernando Resin Geyer Monitor: Julio Anjos Agenda 1 - Objetivo Apresentar na prática a comunicação entre processos usando sockets
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 maisLeandro 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 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 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 maisSSC0640 Sistemas Operacionais I
SSC0640 Sistemas Operacionais I 8ª Aula Comunicação e Sincronismo de Processos Profa. Sarita Mazzini Bruschi sarita@icmc.usp.br Slides adaptados de Marcos José Santana / Regina H. C. Santana / Luciana
Leia maisLEIC/LERC 2009/10 Repescagem do 2º Teste de Sistemas Operativos
Número: Nome: LEIC/LERC 2009/10 Repescagem do 2º Teste de Sistemas Operativos 2 de Fevereiro de 2010 Responda no enunciado, apenas no espaço fornecido. Identifique todas as folhas. Duração: 1h30m Grupo
Leia maisProgramação Orientada a Objetos para Redes de Computadores
Programação Orientada a Objetos para Redes de Computadores Prof. Miguel Elias Mitre Campista http://www.gta.ufrj.br/~miguel PARTE 2 Programação em C++ - Sockets Comunicação entre Processos O que é um processo?
Leia maisIntrodução à Programação Sockets. Programação Sockets. (c) Volnys Bernal. Agenda. Introdução à Programação Sockets
00-006 Volnys Bernal 00-006 Volnys Bernal Agenda Introdução à Programação Sockets Volnys Borges Bernal volnys@lsi.usp.br http://www.lsi.usp.br/~volnys Interface de programação sockets Socket Socket address
Leia maisComunicação entre Processos
Comunicação entre Processos Canal de comunicação Arquitectura da comunicação Modelos de comunicação Necessidade da Comunicação A sincronização entre processos permitiu que diversas actividades possam cooperar
Leia maisComunicação Inter-Processo em Unix. Pipes FIFO (Named Pipes) Pipes
Comunicação Inter-Processo em Unix Pipes FIFO (Named Pipes) 1 Pipes 2 1! Comunicação entre pai e filho Ao chamar um fork(), processos pai e filho deixam de compartilhar memória Como fazer então para que
Leia maisThreads ou Processos Leves
Threads ou Processos Leves Sistemas Operacionais Tradicionais Sistemas com Multithreading Legenda: processo thread Contador de programa Threads Processos que compartilham espaço de endereçamento: P1 threads
Leia maisComunicação entre Processos Canal de comunicação Arquitetura da comunicação Modelos de comunicação
Comunicação entre Processos Canal de comunicação Arquitetura da comunicação Modelos de comunicação Sistemas Operativos 2015-2016 O que construímos até agora... A abstração de processo 2 A possibilidade
Leia maisProgramação Orientada a Objetos para Redes de Computadores. Modelo Cliente-Servidor. Comunicação entre Processos. O que é um Socket?
Programação Orientada a Objetos para Redes de Computadores Prof. Miguel Elias Mitre Campista http://www.gta.ufrj.br/~miguel PARTE 2 Programação em C++ - Sockets Comunicação entre Processos O que é um processo?
Leia mais29-Aug-07. Histórico. Interfaces e Periféricos Redes como interfaces. Abstração da infraestrutura de rede como interface
Interfaces e Periféricos Redes como interfaces Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br) Histórico Surgimento e popularização das redes criou a necessidade e oportunidade de usá-las como mecanismo
Leia maisEscalonamento. Eduardo Ferreira dos Santos. Abril, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 28
Escalonamento Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Abril, 2016 1 / 28 Sumário 1 Multiprogramação 2 Escalonamento 3 Concorrência 2 / 28 Multiprogramação
Leia maisPCS-2529 Introdução aos Processadores. Prof. Dr. Paulo Sérgio Cugnasca
PCS-2529 Introdução aos Processadores Prof. Dr. Paulo Sérgio Cugnasca 1 2 Existem 4 esquemas diferentes de E/S possíveis, cada um se aplicando em uma determinada situação. E/S Programada. E/S Acionada
Leia maisConceitos. Pedro Cruz. EEL770 Sistemas Operacionais
Conceitos Pedro Cruz EEL770 Sistemas Operacionais Tipos de sistemas operacionais Computadores de grande porte Servidores Multiprocessadores Computadores pessoais Computadores portáteis Sistemas embarcados
Leia maisSistemas Operacionais
Sistemas Operacionais Processos Exclusão Mútua Mecanismos para se Obter Exclusão MútuaM Mecanismos de Hardware: Inibição de Interrupções Instrução TSL (Test and Set Lock) Mecanismos de Software: Com Espera
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 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 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 maisSistemas Operacionais: Sincronização entre processos
Sistemas Operacionais: Sincronização entre processos Sincronização Programa concorrente Executado por diversos processos Acesso concorrente a dados Paralelismo real x Paralelismo aparente Multiprocessadores:
Leia maisRedes de Computadores
Introdução Inst tituto de Info ormátic ca - UF FRGS s de Computadores NAT/NAPT User Datagram Protocol UDP Introdução a protocolos de aplicação (sockets) Trabalho sob a Licença Atribuição-SemDerivações-SemDerivados
Leia maisRedes de Computadores
Introdução Inst tituto de Info ormátic ca - UF FRGS s de Computadores User Datagram Protocol - UDP NAT/NAPT Introdução a protocolos de aplicação (sockets) Aula 24 Entidades da camada de transporte oferecem
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 maisProgramando sistemas distribuídos com objetos distribuídos na rede TCP/IP. Prof. Me. Sérgio Carlos Portari Júnior
Programando sistemas distribuídos com objetos distribuídos na rede TCP/IP Prof. Me. Sérgio Carlos Portari Júnior Conteúdo Programático Contextualizando: Aula anterior Camada Middleware Programar para SD
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 Aulas 6 Regiane Kawasaki kawasaki@ufpa.br Slides adaptados da Profa. Sarita Mazzini Bruschi
Leia maisSincronização e Comunicação
Sincronização e Comunicação Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Maio, 2017 1 / 28 Sumário 1 Concorrência 2 Sistemas Multiprogramáveis Troca de mensagens
Leia maisSistemas Operacionais. Universidade Federal de Minas Gerais. Aula 6. Primitivas de Sincronização
Aula 6 Primitivas de Sincronização Primitivas de Sincronização Lock / Unlock Sleep / Wakeup Semáforo Monitores Mensagens Sincronização no Linux Lock / Unlock Funcionam como as primitivas vistas até agora
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 maisSincronização de Processos (2)
Sincronização de Processos (2) Tipos de Soluções (cont.) Soluções de Hardware Inibição de interrupções Instrução TSL (apresenta busy wait) Soluções de software com busy wait Variável de bloqueio Alternância
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 mais