Redes de Computadores I

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

Download "Redes de Computadores I"

Transcrição

1 Departamento de Engenharia Electrotécnica e de Computadores Secção de Telecomunicações Redes de Computadores I Introdução à Interface "Socket" do UNIX Licenciatura de Engenharia Informática e de Computadores Prof. Vitor Vargas Eng. Paulo Pereira Eng. Luís Bernardo

2 SOCKETS Domínio INTERNET: Camadas Conceptuais Socket Transporte Organização de Software Socket Protocolo 1 Protocolo 2 Protocolo 3 Internet Interface de Rede Módulo IP Interface 1 Interface 2 Interface 3 int socket (int domain, int type, int protocol) ; Cria um porto para comunicação assíncrona, bidireccional e retorna um descritor (idêntico aos utilizados nos ficheiros e pipes). domain - domínio onde o socket é criado, que define os protocolos e o espaço de nomes. type PF_UNIX - Domínio Unix, local a uma máquina PF_INET - Domínio Inet, redes Internet SOCK_STREAM - orientado à ligação, comunicação fiável e sequencial. SOCK_DGRAM - sem ligação, mensagens limitadas no comprimento, comunicação sem garantia de sequencialidade, fiabilidade ou não existência de duplicações. protocol - depende do domínio. Normalmente é colocado a zero, que indica o protocolo por omissão no domínio respectivo (TCP, UDP). int bind (int s, struct sockaddr *name, int namelen) ; Associa um nome a um socket já criado. s - identificador do socket. name - o nome depende do domínio onde o socket foi criado. No domínio UNIX corresponde a um "pathname". No domínio Internet é do tipo struct sockaddr_in, que é composto pelo endereço da máquina, protocolo e número de porto. namelen - inteiro igual a sizeof(*name) int close (int s) ; 1

3 Connectionless (SOCK_DGRAM) Servidor socket ( ) bind ( ) recvfrom ( ) Cliente socket ( ) bloqueia até receber dados de um cliente processa pedido sendto ( ) dados(pedido) dados(resposta) sendto ( ) recvfrom ( ) int sendto (int s, char *msg, int len, int flags, struct sockaddr *to, int tolen) ; Envia uma mensagem através do socket s para o socket especificado em to independentemente de existir ou não ligação estabelecida entre os dois sockets. msg - mensagem a enviar. len - dimensão da mensagem a enviar flags : MSG_OOB - Out of band to - endereço do socket para onde vai ser enviada a mensagem. tolen - inteiro igual a sizeof(*to) int recvfrom (int s, char *buf, int len, int flags, struct sockaddr *from, int * fromlen) ; ou int recv (int s, char *buf, int len, int flags) ; ou int read (int s, char *buf, int len) ; Recebe uma mensagem através do socket s de um socket remoto independentemente de existir ou não ligação estabelecida entre os dois. Devolve o tamanho da mensagem lida. buf - buffer para a mensagem a receber. len - dimensão do buffer. flags : MSG_OOB - Out of band. MSG_PEEK- Ler sem consumir. from - endereço do socket que enviou a mensagem. fromlen - ponteiro para inteiro inicializado a sizeof(*from). 2

4 Connection-oriented (SOCK_STREAM) Servidor socket ( ) bind ( ) listen ( ) accept ( ) bloqueia até ter ligação de um cliente estabelecimento de ligação Cliente socket ( ) connect ( ) read ( ) processa pedido write ( ) dados(pedido) dados(resposta) write ( ) read ( ) int connect (int s, struct sockaddr *name, int namelen) ; Estabelece uma ligação entre o socket s e o outro socket indicado em name. int listen (int s, int backlog) ; Indica que o socket s pode receber ligações. backlog - comprimento da fila de espera de novos pedidos de ligação. int accept (int s, struct sockaddr *addr, int * addrlen) ; Bloqueia o processo até um processo remoto estabelecer uma ligação. Retorna o identificador de um novo socket para transferência de dados. int send (int s, char *msg, int len, int flags) ; ou int write(int s, char *msg, int len) ; Envia uma mensagem através do socket s para o socket remoto associado. Retorna o número de bytes efectivamente enviados, ou -1 em caso de erro. No caso de a ligação ser cortada, o processo pode receber um signal SIGPIPE. int recv (int s, char *buf, int len, int flags) ; ou int read (int s, char *buf, int len) ; Recebe uma mensagem do socket remoto através do socket s. Retorna o número de bytes lidos, ou 0 se a ligação foi cortada, ou -1 se a operação foi interrompida. int shutdown (int s, int how) ; how: 0 - no more reading, 1 - no more writing, 2 - no more reading or writing. 3

5 Multiplexagem das Entradas/Saídas ( select ) #include <sys/types.h> #include <sys/time.h> int select ( int width, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout) ; Bloqueia o processo até que uma das operações de E/S pendentes se realize. Entradas: Saídas : máscaras readfds, writefds, exceptfds - padrão de bits indicando os descritores de E/S sobre os quais se pretende efectuar operações de Leitura, Escrita ou processar Excepções. width - número do maior descritor a considerar na máscara + 1. Este parâmetro pode ser preenchido com o valor retornado pela função getdtablesize() que retorna o número máximo de descritores que pode estar associado a um processo, ou com a macro FD_SETSIZE. timeout - tempo de espera (0 = bloqueio) máscaras readfds, writefds, exceptfds - padrão de bits indicando os descritores "ready". Retorna - número de descritores "ready", 0 se expirou o timeout, -1 se foi interrompido ou se houve um erro. Para modificar os bits das máscaras são utilizadas as funções (macros): FD_ZERO (fd_set *fdset) Coloca todos os bits da máscara a 0. FD_SET (int fd, fd_set *fdset) Liga o bit correspondente ao descritor de ficheiro fd. FD_CLR (int fd, fd_set *fdset) Limpa o bit correspondente ao descritor de ficheiro fd. FD_ISSET (int fd, fd_set *fdset) Testa se o bit correspondente ao descritor de ficheiro fd está activo. Em versões antigas do Unix foi utilizado o tipo int em vez de fd_set, mas nesse caso, o máximo valor de width suportado é 32. É possível obter o descritor do teclado com: fileno(stdin) 4

6 Exemplo de utilização ( leitura bloqueante de mensagens de 2 descritores ) : #define NO_DESC 0 #define BLOCK 0 fd_set rmask; /* máscara de leitura */ int sd1, sd2, /* Descritores de sockets */ n; FD_ZERO(&rmask); FD_SET(sd1, &rmask); FD_SET(sd2, &rmask); n= select (getdtablesize(), &rmask, NO_DESC, NO_DESC, BLOCK); if (n <= 0) { fprintf(stderr, "Interruption of select\n");... else { if (FD_ISSET(sd1, &rmask)) { /* Há dados disponíveis para leitura no socket sd1 */... if (FD_ISSET(sd2, &rmask)) { /* Há dados disponíveis para leitura no socket sd2 */... Configurar um socket para escrita não bloqueante Para que uma chamada sistema de escrita num socket s não seja bloqueante devese ligar a flag NDELAY: #include <sys/fcntl.h> int flags; if ((flags= fcntl(s, F_GETFL)) < 0) perror("fcntl error getting socket flags"); flags = O_NDELAY; if (fcntl(s, F_SETFL, flags) < 0) perror("fcntl error setting NO DELAY on socket"); Outro método de obter o mesmo resultado: #include <sys/filio.h> int nonblock=1; if (ioctl(s, FIONBIO, &nonblock) < 0) perror("ioctl error setting NO DELAY on socket"); 5

7 As funções apresentadas anteriormente retornam o valor -1 em caso de falha. A variável errno é afectada com o código da ocorrência. perror escreve a mensagem de erro do sistema operativo associada a esse código de erro. Em seguida apresenta-se a definição de alguns dos tipos referidos anteriormente: <sys/time.h>: struct timeval { long tv_sec; /* seconds */ long tv_usec; /* and microseconds */ ; <sys/socket.h>: struct sockaddr { u_short sa_family; /* Address family : AF_xxx */ char sa_data[14]; /* up to 14 bytes of protocol specific address */ ; <netinet/in.h>: struct in_addr { u_long s_addr; /* 32-bit netid/hostid network byte ordered */ ; struct sockaddr_in { short sin_family; /* AF_INET */ u_short sin_port; /* 16-bit port number network byte ordered */ struct in_addr sin_addr; /* 32-bit netid/hostid network byte ordered */ char sin_zero[8]; /* unused */ ; <netdb.h>: struct hostent { char *h_name; /* official name of host */ char **h_aliases; /* alias list */ int h_addrtype; /* host address type */ int h_length; /* length of address */ char **h_addr_list; /* list of addresses, null terminated */ ; #define h_addr h_addr_list[0] /* first address, network byte order */ <sys/types.h>: typedef long fd_mask; typedef struct fd_set { fd_mask fds_bits[... ]; fd_set; 6

8 Dados fora de banda (OOB) em sockets orientados à conexão Os sockets orientados à conexão suportam o envio de dados fora de banda constituídos por um byte de informação. Uma possível utilização é o envio de CONTROL-C. O envio de dados fora de banda é feito utilizando a função send() com a flag MSG_OOB. A recepção dos dados pode ser síncrona, mantendo-se a ordem em relação aos dados normais com que foram enviados. Nesse caso, pode-se utilizar qualquer das primitivas descritas anteriormente para ler dados de sockets. A função ioctl permite descobrir se os próximos dados lidos do socket s são "fora de banda" ou normais: int yes; ioctl (s, SIOCATMARK, &yes); if (yes) { /* dados fora de banda */ else { /* dados normais */ Outra hipótese será fazer leitura assíncrona, associando o signal SIGURG à recepção de dados fora de banda. Essa associação é feita utilizando a função ioctl sobre o socket s, fornecendo como parâmetro o pid do processo vezes -1, como está representado: #ifdef sun #include <sys/sockio.h> #else #include <sys/ioctl.h> #endif int pid= -getpid(); if (ioctl(s, SIOCSPGRP, (char *)&pid) < 0) { perror ("ioctl: SIOCSPGRP,"); Neste caso, os dados fora de banda são lidos na rotina de tratamento do signal, utilizando a função recv() ou recvfrom() com a flag MSG_OOB. 7

9 Funções auxiliares Existem definidas um conjunto de funções de biblioteca. struct hostent *gethostbyname(char *hostname); Devolve o identificador de host/rede associado ao hostname. unsigned long inet_addr(char *cp); Converte uma string cp na notação standard da Internet d.d.d.d no endereço IP em formato rede, devolvendo -1 em caso de erro. char *inet_ntoa(struct in_addr in); Converte o endereço IP in, no formato rede para uma string com o endereço d.d.d.d associado. No quadro seguinte apresenta-se um excerto de um programa com o preenchimento de uma estrutura sockaddr_in com um endereço dado pelo número de porto e nome do host (máquina). #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <netdb.h> char *host_name= "mega.ist.utl.pt"; struct sockaddr_in addr; struct hostent *hp;... hp= gethostbyname(host_name); if (hp == NULL) { fprintf (stderr, "%s : unknown host\n", host_name);... bzero((char *)&addr, sizeof addr); bcopy (hp->h_addr, (char *) &addr.sin_addr, hp->h_length); addr.sin_family= AF_INET; addr.sin_port= htons(port_number); printf("built address %s:%d\n", inet_ntoa(addr.sin_addr), (int)ntohs(addr.sin_port)); 8

10 Quando se está a preencher a estrutura para uma chamada à função bind, pode-se inicializar o campo sin_addr.s_addr com INADDR_ANY, que fica automaticamente associado a todos os endereços IP do host local. Se o porto for inicializado a 0, então é atribuído um valor durante a chamada a bind. int getsockname ( int s, struct sockaddr *addr, int *addrlen ); Utilizada para obter a estrutura com o endereço associado ao socket s. Em seguida apresenta-se um excerto de um programa, onde se obtém o número de porto associado a um socket s. struct sockaddr_in addr; int len= sizeof(addr);... if (getsockname(s, &addr, &len)) { fprintf(stderr, "Error getting socket name\n"); if (addr.sin_family!= AF_INET) { fprintf(stderr, "Nao e' socket INET\n");... printf("socket has port #%d\n", ntohs(addr.sin_port)); Outras funções C Run-time Routines : Call bcmp (s1, s2, n) bcopy (s1, s2, n) bzero (base, n) htonl (val) htons (val) ntohl (val) ntohs (val) Synopsis Compare byte-strings; 0 if same, not 0 otherwise Copy n bytes from s1 to s2 Zero-fill n bytes starting at base 32-bit quantity (long) from host into network byte order 16-bit quantity (short) from host into network byte order 32-bit quantity (long) from network into host byte order 16-bit quantity (short) from network into host byte order 9

11 Para permitir a portabilidade do código para máquinas que utilizem uma ordem dos bytes diferentes da ordem utilizada na rede, devem ser utilizadas as rotinas?to?? (em <netinet/in.h>) para manipular as componentes dos endereços. Estas funções também podem ser utilizadas para possibilitar a transmissão de shorts e ints entre máquinas que usam uma ordem diferente dos bytes. Note-se que a função memcpy tem os argumentos pela ordem inversa de bcopy, e o seu correcto funcionamento não é garantido quando as zonas de memória se sobrepõem. A função bcopy trata correctamente de sobreposições. Em alguns sistemas operativos tem o nome memmove. A função bzero pode ser substituída por memset com os parâmetros adequados. Por razões de eficiência, deve-se evitar cópias e limpezas de memória desnecessárias. 10

12 Exemplo de envio de dados datagram no domínio Internet. #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <netdb.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #define DATA "The sea in calm tonight, the tide is full..." /* * Here I send a datagram to a receiver whose name I get * from the command line arguments. */ main (int argc, char *argv[]) { int sock; struct sockaddr_in name; struct hostent *hp; /* Create socket on which to send. */ sock = socket(pf_inet, SOCK_DGRAM, 0); if (sock < 0) { perror("opening datagram socket"); /* * Construct name, with no wildcards, of the socket to send * to. Gethostbyname() returns a structure including the * network address of the specified host. The port number * is taken from the command line. */ hp = gethostbyname(argv[1]); if (hp == 0) { fprintf(stderr, "%s: unknown host\n", argv[1]); exit(2); bcopy(hp->h_addr, &name.sin_addr, hp->h_length); name.sin_family = AF_INET; name.sin_port = htons(atoi(argv[2])); /* Send message. */ if (sendto(sock, DATA, strlen(data)+1, 0, &name, sizeof(name)) < 0) perror("sending datagram message"); close(sock); 11

13 Exemplo de recepção de dados datagram no domínio Internet. #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <stdio.h> #include <unistd.h> /* * This program creates a datagram socket, binds a name * to it, then reads from the socket. */ #define BUFSIZE 1024 main () { int struct sockaddr_in int char sock, length; name, from; fromlen= sizeof(from); buf[bufsize]; /* Create socket on which to read. */ sock = socket(pf_inet, SOCK_DGRAM, 0); if (sock < 0) { perror("opening datagram socket"); /* Create name with wildcards. */ name.sin_family = AF_INET; name.sin_addr.s_addr = INADDR_ANY; name.sin_port = 0; if (bind(sock, &name, sizeof(name))) { perror("binding datagram socket"); /* Find assigned port value and print it out. */ length = sizeof(name); if (getsockname(sock, &name, &length)) { perror("getting socket name"); printf("socket has port #%d\n", ntohs(name.sin_port)); /* Read from the socket */ if (recvfrom(sock, buf, BUFSIZE, 0, &from, &fromlen) < 0) perror("receiving datagram packet"); printf("-->%s\n", buf); close(sock); 12

14 Exemplo de envio de dados stream no domínio Internet. #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <netdb.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #define DATA "Half a league, half a league..." /* * This program creates a socket and initiates a connection * with the socket given in the command line. One message * is sent over the connection and then the socket is * closed, ending the connection. */ main (int argc, char *argv[]) { int sock; struct sockaddr_in server; struct hostent *hp; /* Create socket */ sock = socket(pf_inet, SOCK_STREAM, 0); if (sock < 0) { perror("opening stream socket"); /* Connect socket using name specified by command line. */ hp = gethostbyname(argv[1]); if (hp == 0) { fprintf(stderr, "%s: unknown host\n", argv[1]); bcopy(hp->h_addr, &server.sin_addr, hp->h_length); server.sin_family = AF_INET; server.sin_port = htons(atoi(argv[2])); if (connect(sock, &server, sizeof(server)) < 0) { perror("connecting stream socket"); if (write(sock, DATA, strlen(data)+1) < 0) perror("writing on stream socket"); close(sock); 13

15 Exemplo de recepção de dados stream no domínio Internet. #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <netdb.h> #include <stdio.h> #include <unistd.h> #define BUFSIZE 1024 main () { int sock, msgsock, length, n; struct sockaddr_in server; char buf[bufsize+1]; /* Create socket on which to read. */ sock = socket(pf_inet, SOCK_STREAM, 0); if (sock < 0) { perror("opening stream socket"); /* Create name with wildcards. */ server.sin_family = AF_INET; server.sin_addr.s_addr = INADDR_ANY; server.sin_port = 0; if (bind(sock, &server, sizeof(server))) { perror("binding stream socket"); /* Find assigned port value and print it out. */ length = sizeof(server); if (getsockname(sock, &server, &length)) { perror("getting socket name"); printf("socket has port #%d\n", ntohs(server.sin_port)); /* Start accepting connections */ listen (sock, 5); while (1) { msgsock = accept(sock, 0, 0); if (msgsock == -1) perror("accept"); else { if ((n=read(msgsock, buf, BUFSIZE)) < 0) perror("receiving stream data"); else if (n==0) fprintf(stderr, "EOF\n"); else { buf[n]='\0'; printf("-->%s\n", buf); close(msgsock); 14

16 Exemplo de utilização da instrução select()com sockets orientados à conexão no domínio Internet. /* Processo Servidor */ #include <sys/types.h> #include <sys/socket.h> #define BUFSIZE 1024 #define BLOCK 0 #define NO_DESC 0 int which (fd_set *mask) {... procurar primeiro bit ligado... main () { int fd_set char struct sockaddr_in sd, ns, n, fromlen, active; rmask, Rmask; buf[bufsize]; NameSocket, OtherSocket; sd = socket (PF_INET, SOCK_STREAM, 0);... Preenchimento do endereço em NameSocket... bind (sd, &NameSocket, sizeof(struct sockaddr_in)); listen (sd, 1); FD_ZERO(&rmask); FD_SET(sd, &rmask); fromlen= sizeof(struct sockaddr_in); for ( ; ; ) { memcpy(&rmask, &rmask, sizeof(rmask)); select (FD_SETSIZE, &Rmask, NO_DESC, NO_DESC, BLOCK); active= which (&Rmask); if (active == sd) { /* Recepção no socket de Ligações */ ns= accept (sd, &OtherSocket, &fromlen); FD_SET (ns, &rmask); else { /* Recepção num socket ordinário */ n= read (active, buf, BUFSIZE); if (n>0) printf("o serviço recebeu %.*s\n", n, buf); else { /* == 0: fim de ligação; == -1: erro */... Tratamento do fim de ligação, ou erro... FD_CLR(active, &rmask); close(active); 15

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

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

Leia mais

Sistemas de Operação Sockets

Sistemas 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 mais

Programação com Sockets TCP e UDP - Cliente. Gustavo Leitão

Programaçã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 mais

sockets interprocess communication Taisy Weber

sockets 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 mais

Cliente/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 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 mais

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

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

Leia mais

Sistemas Distribuídos (Parte 4 - Aplicação Distribuída)

Sistemas Distribuídos (Parte 4 - Aplicação Distribuída) Unidade de Gestão da Educação Presencial - GEDUP Pós-graduação em Redes de Computadores Sistemas Distribuídos (Parte 4 - Aplicação Distribuída) Prof. Ms. Tomás Dias Sant Ana Varginha, 2006 Sumário 1. INTRODUÇÃO...1

Leia mais

MC823 Atividade 1: Cliente/Servidor TCP Iterativo. 3 Modificando o servidor para retornar data e hora

MC823 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 mais

Aula de Socket. Rafael De Tommaso do Valle

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

Leia mais

Programação de Sockets em C/C++

Programação de Sockets em C/C++ Programação de Sockets em C/C++ Redes de Comunicação 2011/2012 1 Programação de Sockets em C/C++ 2 TCP 3 UDP Introdução Os sockets são um método de criar conexão entre processos, independente do protocolo.

Leia mais

06/10/2015. Modelo TCP/IP Camada de Transporte DISCIPLINA: TECNOLOGIA DE REDES DE COMPUTADORES. UDP User Datagram Protocol. UDP User Datagram Protocol

06/10/2015. Modelo TCP/IP Camada de Transporte DISCIPLINA: TECNOLOGIA DE REDES DE COMPUTADORES. UDP User Datagram Protocol. UDP User Datagram Protocol Tecnologia em Jogos Digitais Modelo TCP/IP Camada de Transporte DISCIPLINA: TECNOLOGIA DE REDES DE COMPUTADORES O transporte dos dados na INTERNET é realizado por dois protocolos. PROTOCOLOS TCP E UDP

Leia mais

Obter conhecimentos básicos sobre programação socket para desenvolver softwares clientes.

Obter conhecimentos básicos sobre programação socket para desenvolver softwares clientes. Objetivo: Obter conhecimentos básicos sobre programação socket para desenvolver softwares clientes. Atividade 1 Estude, compile, corrija (se necessário) e teste o programa hostbyaddr.c. Modifique o programa

Leia mais

Tutorial de Sockets - Parte I Por: Frederico Perim

Tutorial de Sockets - Parte I Por: Frederico Perim Tutorial de Sockets - Parte I Por: Frederico Perim O que é um Socket? Você já deve ter ouvido faler sobre Sockets e talvez esteja imaginando do que se trata exatamente. Bem, resumindo: através de Sockets

Leia mais

Comunicação entre Processos

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

Leia mais

1 Projeto de software de clientes. 1

1 Projeto de software de clientes. 1 1 Projeto de software de clientes. 1 1.1 Introdução Aplicações clientes são conceitualmente mais simples que aplicações servidoras pois, normalmente, não manipulam concorrência explicita com múltiplos

Leia mais

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

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

Leia mais

Aula Prática. Comunicação em SOCKTS. Disciplina: INF01151

Aula 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 mais

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

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

Leia mais

Um Tutorial sobre Sockets Parte I

Um Tutorial sobre Sockets Parte I Um Tutorial sobre Sockets Parte I Por Antonio Marcelo Iniciando As grandes ferramentas utilizadas por especialistas de segurança, hackers e crakers tem como base a linguagem C ANSI ou C ++. Muitos dos

Leia mais

REDES INTEGRADAS DE TELECOMUNICAÇÕES I 2012 / 2013

REDES INTEGRADAS DE TELECOMUNICAÇÕES I 2012 / 2013 Departamento de Engenharia Electrotécnica REDES INTEGRADAS DE TELECOMUNICAÇÕES I 2012 / 2013 Mestrado Integrado em Engenharia Electrotécnica e Computadores 4º ano 7º semestre Introdução ao desenvolvimento

Leia mais

INF01018 Aula Prática 1 Cliente-Servidor e Multicast

INF01018 Aula Prática 1 Cliente-Servidor e Multicast 1 / 30 INF01018 Aula Prática 1 Cliente-Servidor e Multicast Lucas Mello Schnorr, Alexandre Silva Caríssimi {lmschnorr,asc}@inf.ufrgs.br http://www.inf.ufrgs.br/ lmschnorr/ad/ INF01018 Sistemas Operacionais

Leia mais

Introdução à Programação Sockets

Introduçã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 mais

Comunicação entre processos. Sistema centralizado

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

Leia mais

MC823 Laboratório de Teleprocessamento e Redes

MC823 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 mais

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

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

Leia mais

Resolução de Nomes e Endereços

Resolução de Nomes e Endereços Resolução de Nomes e Endereços MC833 Programação em Redes de Computadores Instituto de Computação UNICAMP Carlos A. Astudillo Trujillo Roteiro 1.Noção sobre nomes e funcionamento do DNS 2.Funções para

Leia mais

Comunicaçã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 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 mais

Programação TCP/IP (sockets)

Programaçã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 mais

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

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

Leia mais

Programação de Sistemas. Sockets. Programação de Sistemas Sockets : 1/66

Programação de Sistemas. Sockets. Programação de Sistemas Sockets : 1/66 Programação de Sistemas Sockets Programação de Sistemas Sockets : 1/66 Introdução à Internet (1) A. Modelo de comunicação na rede de computadores O mais divulgado é a Internet. Baseada numa pilha de protocolos

Leia mais

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

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

Leia mais

TP4. Apoio ao projeto 4: tópicos avançados de sockets

TP4. Apoio ao projeto 4: tópicos avançados de sockets TP4. Apoio ao projeto 4: tópicos avançados de sockets Pedro Ferreira pmf@ciencias.ulisboa.pt Departamento de Informática Faculdade de Ciências da Universidade de Lisboa Fonte da imagem: http://www.dsn.jhu.edu

Leia mais

Redes de Computadores. 1 Questões de múltipla escolha. TE090 - Prof. Pedroso. 30 de novembro de 2010. Exercício 1: Considere:

Redes de Computadores. 1 Questões de múltipla escolha. TE090 - Prof. Pedroso. 30 de novembro de 2010. Exercício 1: Considere: TE090 - Prof. Pedroso 30 de novembro de 2010 1 Questões de múltipla escolha Exercício 1: Considere: I. O serviço de DNS constitui-se, em última instância, de um conjunto de banco de dados em arquitetura

Leia mais

29-Aug-07. Histórico. Interfaces e Periféricos Redes como interfaces. Abstração da infraestrutura de rede como interface

29-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 mais

Cliente-servidor com Sockets TCP

Cliente-servidor com Sockets TCP Cliente-servidor com Sockets TCP Paulo Sérgio Almeida Grupo de Sistemas Distribuídos Departamento de Informática Universidade do Minho 2006/2007 c 2000 2006 Paulo Sérgio Almeida Cliente-servidor com Sockets

Leia mais

Engenharia Elétrica Eletrônica Slides 20: TCP/IP em Winsocks 2. API do Windows para programar utilizando o protocolo TCP/IP Prof. Jean Marcelo SIMÃO

Engenharia Elétrica Eletrônica Slides 20: TCP/IP em Winsocks 2. API do Windows para programar utilizando o protocolo TCP/IP Prof. Jean Marcelo SIMÃO Engenharia Elétrica Eletrônica Slides 20: TCP/IP em Winsocks 2. API do Windows para programar utilizando o protocolo TCP/IP Prof. Jean Marcelo SIMÃO Engenharia Elétrica Eletrônica Tutorial: Programação

Leia mais

Comunicação em Sistemas Distribuídos. Conceitos: Paradigma C/S. Conceitos: Paradigma C/S. Paradigma Cliente/Servidor

Comunicação em Sistemas Distribuídos. Conceitos: Paradigma C/S. Conceitos: Paradigma C/S. Paradigma Cliente/Servidor Comunicação em Sistemas Distribuídos Paradigma / Os processos em um SD estão lógica e fisicamente separados. Precisam se comunicar para que possam interagir O desempenho de um SD depende criticamente do

Leia mais

Sistema de Entrada/Saída

Sistema de Entrada/Saída Conteúdo Ficheiros (jpo@di.uminho.pt) Grupo de Sistemas Distribuídos Departamento de Informática Escola de Engenharia Universidade do Minho Sistemas Operativos 2006-2007 2 Descritores de ficheiros Descritores

Leia mais

Relatório do Laboratório 3

Relatório do Laboratório 3 Relatório do Laboratório 3 Diogo Costa e Lucas Magrini Rigo 180188 e 161064 23 de setembro de 2011 Universidade Federal do Rio Grande do Sul INF01154 Redes de Computadores N For: Valter Roesler 1 Introdução

Leia mais

Modelo Cliente/Servidor e Introdução a Sockets

Modelo 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 mais

Tubos ou Pipes de Comunicação

Tubos ou Pipes de Comunicação 1 Tubos ou Pipes de Comunicação 1. Introdução Os tubos (ou pipes) constituem um mecanismo fundamental de comunicação unidirecional entre processos. Eles são um mecanismo de I/O com duas extremidades, ou

Leia mais

Eng.ª Informática. Redes de Computadores. Frequência. 4 de Julho de 2006

Eng.ª Informática. Redes de Computadores. Frequência. 4 de Julho de 2006 Eng.ª Informática Redes de Computadores 4 de Julho de 2006 Leia atentamente as perguntas seguintes e responda de forma breve e precisa. Pode acompanhar a suas respostas com figuras de forma a torná-las

Leia mais

6. Comunicação entre processos - Pipes

6. Comunicação entre processos - Pipes 6. Comunicação entre s - Pipes 6.1 O que são pipes Os pipes em UNIX constituem um canal de comunicação unidirecional entre s com um ascendente comum (entre um pai e um seu descendente). Uma vez estabelecido

Leia mais

Sistemas de Telecomunicações 2011/2012

Sistemas de Telecomunicações 2011/2012 UNIVERSIDADE NOVA DE LISBOA Faculdade de Ciências e Tecnologia Departamento de Engenharia Electrotécnica Sistemas de Telecomunicações 2011/2012 Introdução aos Sockets no Ambiente Delphi 4 Mestrado Integrado

Leia mais

Sistemas Operacionais:

Sistemas Operacionais: Sistemas Operacionais: Sistemas Distribuídos e Programação em Redes de Computadores Dierone Cesar Foltran Junior dcfoltran at yahoo.com Sistemas Distribuídos Sistemas Computacionais Distribuídos Lamport:

Leia mais

http://www.csl.mtu.edu/cs4411/www/notes/process/fork/create.html

http://www.csl.mtu.edu/cs4411/www/notes/process/fork/create.html http://www.csl.mtu.edu/cs4411/www/notes/process/fork/create.html FORK() SYSTEM CALL * UTILIZADO PARA CRIAR SUBPROCESSO * PROCESSO QUE CRIA É PAI * PROCESSO CRIADO É O FILHO * APÓS A CRIAÇÃO AMBOS OS PROCESSO

Leia mais

Redes de Computadores (PPGI/UFRJ)

Redes de Computadores (PPGI/UFRJ) Redes de Computadores (PPGI/UFRJ) Aula 1: Apresentação do curso e revisão de interface de sockets 03 de março de 2010 1 2 O que é a Internet 3 4 Objetivos e página do curso Objetivos Apresentar a motivação,

Leia mais

UMA ABORDAGEM SOBRE A INTERFACE DE PROGRAMAÇÃO DE APLICAÇÕES SOCKETS E A IMPLEMENTAÇÃO DE UM SERVIDOR HTTP

UMA ABORDAGEM SOBRE A INTERFACE DE PROGRAMAÇÃO DE APLICAÇÕES SOCKETS E A IMPLEMENTAÇÃO DE UM SERVIDOR HTTP UMA ABORDAGEM SOBRE A INTERFACE DE PROGRAMAÇÃO DE APLICAÇÕES SOCKETS E A IMPLEMENTAÇÃO DE UM SERVIDOR HTTP Alan Jelles Lopes Ibrahim, alan.jelles@hotmail.com Eduardo Machado Real, eduardomreal@uems.br

Leia mais

Sistemas Distribuídos Java Sockets

Sistemas Distribuídos Java Sockets Sistemas Distribuídos Java Sockets Departamento de Informática, UFMA Graduação em Ciência da Computação Francisco José da Silva e Silva 1 Introdução a Java Sockets Socket é o ponto final de um enlace de

Leia mais

Programação com sockets (em Java)

Programação com sockets (em Java) com sockets (em Java) Prof. Dr. Julio Arakaki Depto. Ciência da 1 Comunicação entre processos // aplicações - é um dos mecanismos mais utilizados - Java oferece modos de utilização:. TCP ( Transmission

Leia mais

UNIVERSIDADE. Sistemas Distribuídos

UNIVERSIDADE. Sistemas Distribuídos UNIVERSIDADE Sistemas Distribuídos Ciência da Computação Prof. Jesus José de Oliveira Neto Comunicação Inter-Processos Sockets e Portas Introdução Sistemas distribuídos consistem da comunicação entre processos

Leia mais

Protocolos de Aplicação

Protocolos de Aplicação AP 1 Protocolos de Aplicação (2º trabalho laboratorial) FEUP/DEEC RC / CDRC I 2005/06 MPR/JAR AP 2 Introdução Introdução à pilha de comunicações TCP/IP Interface de sockets Protocolos de aplicação» POP3,

Leia mais

3. Projeto e implementação de Servidores

3. Projeto e implementação de Servidores 3. Projeto e implementação de Servidores 3.1 Introdução Este capítulo discute questões fundamentais relacionadas ao projeto de software servidor, incluindo acesso com conexão vs. sem conexão a servidores

Leia mais

Protocolos de Aplicação

Protocolos de Aplicação AP 1 Protocolos de Aplicação (2º trabalho laboratorial) FEUP/DEEC Redes de Computadores MIEIC 2009/10 José Ruela AP 2 Sumário Pilha protocolar TCP/IP Interface de sockets Protocolos de aplicação» POP3,

Leia mais

Cliente-servidor com Sockets TCP

Cliente-servidor com Sockets TCP Cliente-servidor com Sockets TCP Paulo Sérgio Almeida Grupo de Sistemas Distribuídos Departamento de Informática Universidade do Minho 2007/2008 c 2000 2007 Paulo Sérgio Almeida Cliente-servidor com Sockets

Leia mais

Introdução. Manipulação de arquivos em C. Estrutura de Dados II Prof Jairo Francisco de Souza

Introdução. Manipulação de arquivos em C. Estrutura de Dados II Prof Jairo Francisco de Souza Introdução Manipulação de arquivos em C Estrutura de Dados II Prof Jairo Francisco de Souza Manipulação de Arquivo em C Existem dois tipos possíveis de acesso a arquivos na linguagem C : sequencial (lendo

Leia mais

Protocolos de Aplicação

Protocolos de Aplicação AP 1 Protocolos de Aplicação (2º trabalho laboratorial) FEUP/DEEC Redes de Computadores MIEIC 2009/10 José Ruela AP 2 Sumário Pilha protocolar TCP/IP Interface de sockets Protocolos de aplicação» POP3,

Leia mais

Comunicação entre pai e filho

Comunicação entre pai e filho 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 o resultado de um processo possa ser recebido pelo outro? Exemplos: Processo

Leia mais

Comunicação entre Processos

Comunicaçã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 mais

Protocolo de resolução de endereços: ARP

Protocolo de resolução de endereços: ARP Protocolo de resolução de endereços: ARP Introdução, cache ARP, formato do pacote ARP, exemplos de ARP em acção, proxy ARP, ARP "Gratuito, comando arp. Endereço físico Os endereços IP fazem apenas sentido

Leia mais

Terminologia. computador onde executam aplicações do usuário ou do sistema. que solicita serviços a um Servidor em benefício de um usuário.

Terminologia. computador onde executam aplicações do usuário ou do sistema. que solicita serviços a um Servidor em benefício de um usuário. Host Terminologia computador onde executam aplicações do usuário ou do sistema Gateway computador que conecta hosts de uma rede local a uma ou mais redes externas Roteador computador intermediário que

Leia mais

Sockets. Bruno Guimarães Lucas Rossini

Sockets. Bruno Guimarães Lucas Rossini Sockets Bruno Guimarães Lucas Rossini Introdução Comunicação entre processos: Memória compartilhada Memória distribuída - Mensagens pela rede Um sistema distribuído é ausente de memória compartilhada,

Leia mais

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

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

Leia mais

Manipulação de Arquivos

Manipulação de Arquivos Manipulação de Arquivos Estrutura de Dados II Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Departamento de Computação DECOM Tipo

Leia mais

Redes de Computadores (RCOMP 2014/2015)

Redes de Computadores (RCOMP 2014/2015) Redes de Computadores (RCOMP 2014/2015) Desenvolvimento de aplicações de rede UDP e TCP 1 Protocolo UDP ( User Datagram Protocol ) Tal como o nome indica, trata-se de um serviço de datagramas, ou seja

Leia mais

Programação de Sistemas

Programação de Sistemas Programação de Sistemas FIFOs Programação de Sistemas FIFOs : 1/13 Introdução APUE 15.5 Os tubos só podem ser usados por processos que tenham um antecessor comum. Para resolver a limitação dos tubos, o

Leia mais

socket Objetivo: aprender a construir aplicações cliente/servidor que se comunicam usando sockets

socket Objetivo: aprender a construir aplicações cliente/servidor que se comunicam usando sockets Programação de Sockets Mário Meireles Teixeira. UFMA-DEINF Programação de Sockets Objetivo: aprender a construir aplicações cliente/servidor que se comunicam usando s API de Sockets: introduzida no UNIX

Leia mais

Redes de Computadores II

Redes de Computadores II Redes de Computadores II Prof. Celio Trois portal.redes.ufsm.br/~trois/redes2 DNS - DOMAIN NAME SYSTEM Mecanismo que converte uma string ASCII em endereço de rede (IP) Motivação: No início da ARPANET,

Leia mais

INTRODUÇÃO ÀS REDES DE COMPUTADORES

INTRODUÇÃO ÀS REDES DE COMPUTADORES INTRODUÇÃO ÀS REDES DE COMPUTADORES CAMADA DE TRANSPORTE Teresa Vazão 2 INTRODUÇÃO Fiabilidade na net.. 1973 Vincent Cerf and Robert Kahn: Inventores do protocolo TCP Vincent Cerf é o Chief Internet- Evangelist,

Leia mais

Passagem de Mensagens

Passagem de Mensagens Passagem de Mensagens Francisco José da Silva e Silva Laboratório de Sistemas Distribuídos (LSD) Departamento de Informática / UFMA http://www.lsd.deinf.ufma.br 22 de novembro de 2011 Francisco Silva (UFMA/LSD)

Leia mais

Programação em C/C++

Programação em C/C++ OO Engenharia Eletrônica - Programação em C/C++ Slides 20: TCP/IP em Winsocks 2. API do Windows para programar aplicativos que utilizam o protocolo TCP/IP. Prof. Jean Marcelo SIMÃO TCP/IP em Winsocks 2

Leia mais

Estrutura da linguagem de programação C Prof. Tiago Eugenio de Melo tiago@comunidadesol.org

Estrutura da linguagem de programação C Prof. Tiago Eugenio de Melo tiago@comunidadesol.org Estrutura da linguagem de programação C Prof. Tiago Eugenio de Melo tiago@comunidadesol.org Breve Histórico A linguagem de programação C foi criada na década de 70, por Dennis Ritchie, que a implementou,

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos LICENCIATURA EM COMPUTAÇÃO Prof. Adriano Avelar Site: www.adrianoavelar.com Email: eam.avelar@gmail.com Mecanismos de Comunicação Voltando ao exemplo da calculadora... Rede local

Leia mais

OProtocolo RPC é um dos protocolos de aplicação mais utilizados, pois permite

OProtocolo RPC é um dos protocolos de aplicação mais utilizados, pois permite Laboratório de Redes. Remote Procedure Call - RPC Pedroso 9 de março de 2006 1 Introdução 2 Conceitos básicos OProtocolo RPC é um dos protocolos de aplicação mais utilizados, pois permite que sejam criadas

Leia mais

REDES INTEGRADAS DE TELECOMUNICAÇÕES II 2005 / 2006

REDES INTEGRADAS DE TELECOMUNICAÇÕES II 2005 / 2006 UNIVERSIDADE NOVA DE LISBOA Faculdade de Ciências e Tecnologia Departamento de Engenharia Electrotécnica REDES INTEGRADAS DE TELECOMUNICAÇÕES II 2005 / 2006 Licenciatura em Engenharia Electrotécnica e

Leia mais

Prof. Luiz Fernando Bittencourt MC714. Sistemas Distribuídos 2 semestre, 2013

Prof. Luiz Fernando Bittencourt MC714. Sistemas Distribuídos 2 semestre, 2013 MC714 Sistemas Distribuídos 2 semestre, 2013 Tipos de comunicação Middleware: serviço intermediário na comunicação de nível de aplicação. Fig. 67 Ex.: correio eletrônico Comunicação é persistente. Middleware

Leia mais

Resumo da Introdução de Prática de Programação com C. A Linguagem C

Resumo da Introdução de Prática de Programação com C. A Linguagem C Resumo da Introdução de Prática de Programação com C A Linguagem C O C nasceu na década de 70. Seu inventor, Dennis Ritchie, implementou-o pela primeira vez usando um DEC PDP-11 rodando o sistema operacional

Leia mais

Sistemas Operacionais INF 09344 Prof. José Gonçalves

Sistemas Operacionais INF 09344 Prof. José Gonçalves Sistemas Operacionais INF 09344 Prof. José Gonçalves 1 o Trabalho de Programação Período: 2014/1 Data de Entrega: 2/6/2014 Parte I. Usando Fork e Wait Você deve criar um programa C partei.c. Durante a

Leia mais

LEIC/LERC 2012/13 2º Teste de Sistemas Operativos 15/Janeiro/2013

LEIC/LERC 2012/13 2º Teste de Sistemas Operativos 15/Janeiro/2013 Número: Nome: LEIC/LERC 2012/13 2º Teste de Sistemas Operativos 15/Janeiro/2013 Identifique todas as folhas. Responda no enunciado, apenas no espaço fornecido. Justifique todas as respostas. Duração: 1h30m

Leia mais

Notas da Aula 15 - Fundamentos de Sistemas Operacionais

Notas da Aula 15 - Fundamentos de Sistemas Operacionais Notas da Aula 15 - Fundamentos de Sistemas Operacionais 1. Software de Entrada e Saída: Visão Geral Uma das tarefas do Sistema Operacional é simplificar o acesso aos dispositivos de hardware pelos processos

Leia mais

Comunicação Inter-Processos. Prof. Adriano Fiorese. Conceitos Iniciais

Comunicação Inter-Processos. Prof. Adriano Fiorese. Conceitos Iniciais Comunicação Inter-Processos Conceitos Iniciais 1 Características para Comunicação Inter-Processos. Passagem de Mensagem pode ser suportada por duas operações de comunicação (send e receive). A comunicação

Leia mais

3 Introdução às chamadas ao sistema

3 Introdução às chamadas ao sistema 3 Introdução às chamadas ao sistema 3.1 Chamadas ao sistema e à BIOS As chamadas ao sistema ou System Calls consistem nos serviços disponibilizados pelo núcleo do sistema operativo. O principio é semelhante

Leia mais

Sockets em Ruby. Curso de Tecnologia em Redes de Computadores Programação para Redes

Sockets em Ruby. Curso de Tecnologia em Redes de Computadores Programação para Redes Sockets em Ruby Curso de Tecnologia em Redes de Computadores Programação para Redes Sockets em Ruby A biblioteca padrão de Ruby oferece um conjunto de classes para a manipulação de sockets. require socket

Leia mais

Redes de Computadores. Trabalho de Laboratório Nº7

Redes de Computadores. Trabalho de Laboratório Nº7 Redes de Computadores Curso de Eng. Informática Curso de Eng. de Electrónica e Computadores Trabalho de Laboratório Nº7 Análise do tráfego na rede Protocolos TCP e UDP Objectivo Usar o Ethereal para visualizar

Leia mais

Conceitos de Sistemas Operacionais: Chamadas de Sistema. Prof Rafael J. Sandim

Conceitos de Sistemas Operacionais: Chamadas de Sistema. Prof Rafael J. Sandim Conceitos de Sistemas Operacionais: Chamadas de Sistema Prof Rafael J. Sandim Conceitos de Sistema Operacional Interface entre o SO e os Programas de usuário é definida pelo conjunto de instruções estendidas

Leia mais

Fragmentação IP (Exploring IP Fragmentation for Fun and Profit)

Fragmentação IP (Exploring IP Fragmentation for Fun and Profit) Fragmentação IP (Exploring IP Fragmentation for Fun and Profit) Felipe de Oliveira (Khun) - khun@hexcodes.org (20/05/2008) ################################## Anatomia e o Ataque ###############################

Leia mais

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Professora: Ana Paula Couto DCC 064 Comunicação- Protocolos, Tipos, RPC Capítulo 4 Agenda Protocolos em Camadas Pilhas de Protocolos em Sistemas Distribuídos Tipos de Comunicação

Leia mais

ICORLI. INSTALAÇÃO, CONFIGURAÇÃO e OPERAÇÃO EM REDES LOCAIS e INTERNET

ICORLI. INSTALAÇÃO, CONFIGURAÇÃO e OPERAÇÃO EM REDES LOCAIS e INTERNET INSTALAÇÃO, CONFIGURAÇÃO e OPERAÇÃO EM REDES LOCAIS e INTERNET 2010/2011 1 Protocolo TCP/IP É um padrão de comunicação entre diferentes computadores e diferentes sistemas operativos. Cada computador deve

Leia mais

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

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

Leia mais

Entradas/Saídas. Programação por interrupções Conceitos gerais Programação da porta série Transmissão

Entradas/Saídas. Programação por interrupções Conceitos gerais Programação da porta série Transmissão Entradas/Saídas Programação por interrupções Conceitos gerais Programação da porta série Transmissão Problemas a resolver Como identificar a interrupção? Motivo da interrupção Que rotina executar? Como

Leia mais

Linguagem C. Programação Estruturada. Fundamentos da Linguagem. Prof. Luis Nícolas de Amorim Trigo nicolas.trigo@ifsertao-pe.edu.

Linguagem C. Programação Estruturada. Fundamentos da Linguagem. Prof. Luis Nícolas de Amorim Trigo nicolas.trigo@ifsertao-pe.edu. Programação Estruturada Linguagem C Fundamentos da Linguagem Prof. Luis Nícolas de Amorim Trigo nicolas.trigo@ifsertao-pe.edu.br Sumário Estrutura Básica Bibliotecas Básicas Tipos de Dados Básicos Variáveis/Declaração

Leia mais

Sistemas Distribuídos 59. Sistemas Distribuídos 61. "Receive não-bloqueante:

Sistemas Distribuídos 59. Sistemas Distribuídos 61. Receive não-bloqueante: 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 Área Compartilhda!

Leia mais

Comunicação através da API sockets sobre TCP/IP

Comunicação através da API sockets sobre TCP/IP Capítulo 5 Comunicação através da API sockets sobre TCP/IP When writing communications code, everything can and does fail Victor R. Volkman 1 TCP/IP ("Transmission Control Protocol / Internet Protocol")

Leia mais

V JOLIM. C e Linux Dicas e Truques. Márcio Fuckner marciofk@ppgia.pucpr.br

V JOLIM. C e Linux Dicas e Truques. Márcio Fuckner marciofk@ppgia.pucpr.br V JOLIM C e Linux Dicas e Truques Márcio Fuckner marciofk@ppgia.pucpr.br Agenda Introdução Entrada e Saída C em Redes Multithreading Utilidades Introdução Apresentação Márcio Fuckner Bacharel em Sistemas

Leia mais