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

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

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

Transcrição

1 Laboratório de Redes. Remote Procedure Call - RPC Pedroso 9 de março de Introdução 2 Conceitos básicos OProtocolo RPC é um dos protocolos de aplicação mais utilizados, pois permite que sejam criadas aplicações cliente servidor em um ambiente de rede sem que o programador tenha a necessidade de implementar um protocolo. O Protocolo RPC estende o conceito de chamada à procedimentos locais. O objetivo do protocolo será tornar transparentes chamadas à procedimentos cujo código está localizado em servidores remotos. O sistema procura tornar as mensagens trocadas para a invocação do procedimento e retorno de parâmetros transparente para o usuário. A Figura 1 representa a seqüência executada quando uma chamada a um procedimento é executada a partir de um cliente. A figura não mostra um acesso anterior realizado na porta 111 do servidor, onde está escutando um processo chamado portmapper. O portmapper é responsável por realizar o mapeamento dos procedimentos remotos operados pelo servidor e a porta onde está o servidor do procedimento propriamente dito. Todo o segredo está na geração de um stub cliente e um stub servidor. O stub irá implementar a função desejada e esconder o código utilizado na troca de mensagens quando da chamada do procedimento. Para a geração do stub cliente e servidor, é utilizado um programa chamado rpcgen. O rpcgen irá criar os stubs a partir de um arquivo de definição de procedimentos na linguagem RPC. 2.1 Exemplo Considere o arquivo escrito na linguagem RPC abaixo:

2 Figura 1: Seqüência de chamadas do sistema RPC /* msg.x: Remote msg printing protocol */ program MESSAGEPROG { version PRINTMESSAGEVERS { int PRINTMESSAGE(string) = 1; = 1; = 0x ; A definição acima informa que o servidor contendo um programa remoto chamado MESSAGEPROG, com um único procedimento remoto chamado PRINTMESSAGE. O procedimento PRINTMESSAGE é o de número 1 dentro do programa, o parâmetro de retorno é do tipo inteiro e o parâmetro é uma string. O número de identificação do programa remoto MESSAGEPROG é 0x Esta versão deve ser alterada quando forem adicionadas novas facilidades, como a inserção ou retirada de procedimentos, ou mesmo a modificação de parâmetros dos procedimentos existentes. A compilação do arquivo, realizada com o comando: Laboratório de Redes. Remote Procedure Call - RPC 2

3 # rpcgen msg.x irá gerar os seguintes arquivos: Msg clnt.c: é o stub cliente; Msg svc: é o stub servidor; Msg.h: é o cabeçalho necessário para todos os programas que utilizam chamadas dos procedimentos remotos. Laboratório de Redes. Remote Procedure Call - RPC 3

4 2.2 Programa Cliente /** cliente.c: client for MESSAGEPROC #include <stdio.h> #include "msg.h" /* msg.h generated by rpcgen */ main(int argc, char **argv) { CLIENT *clnt; int *result; char *server; char *message; if (argc!= 3) { fprintf(stderr, "usage: %s host message\n", argv[0]); server = argv[1]; message = argv[2]; /*Create client "handle" used for calling MESSAGEPROG on the server designated on the command line. */ clnt = clnt_create(server, MESSAGEPROG, PRINTMESSAGEVERS, "tcp"); if (clnt == (CLIENT *)NULL) { /** Couldn t establish connection with server. */ /* Print error message and die. */ printf (" Erro clnt_create" ); clnt_pcreateerror(server); fflush (stdout); /* Call the remote procedure "printmessage" on the server */ result = printmessage_1(&message, clnt); Laboratório de Redes. Remote Procedure Call - RPC 4

5 if (result == (int *)NULL) { /* An error occurred while calling the server. */ /* Print error message and die. */ printf("rpc falhou"); clnt_perror(clnt, server); /* Okay, we successfully called the remote procedure.*/ if (*result == 0) { /* Server was unable to print our message. */ /* Print error message and die. */ fprintf(stderr, "%s: could not print your message\n",argv[0]); /* The message got printed on the server s console */ printf("message delivered to %s\n", server); clnt_destroy( clnt ); exit(0); Laboratório de Redes. Remote Procedure Call - RPC 5

6 2.3 Programa Servidor /* msg_sv.c: server implementation of PRINTMESSAGE */ /* procedure for MESSAGEPROC program */ #include <stdio.h> #include "msg.h" /* msg.h generated by rpcgen */ int * printmessage_1_svc(char **msg, struct svc_req *req) { static int result; /* must be static! */ FILE *f; f = fopen("/dev/console", "w"); if (f == (FILE *)NULL) { result = 0; return (&result); fprintf(f, "%s\n", *msg); fclose(f); result = 1; return (&result); Para obter os executáveis: 1. Compile o código cliente: # gcc cliente.c msg_clnt.c -o cliente 2. Compile o servidor: # gcc servidor.c msg_svc.c -o servidor Para testar, execute o servidor e depois o cliente. Laboratório de Redes. Remote Procedure Call - RPC 6

7 Exercício 1: Escreva um segundo procedimento remoto, sem parâmetros, que imprime o seu nome no vídeo. Implemente um programa cliente que realiza a chamada remota ao procedimento remoto criado. Exercício 2: Escreva um procedimento remoto que calcula o fatorial de um número. Implemente também o programa cliente que utiliza este procedimento remoto. Exercício 3: Escreva um procedimento remoto que realiza o comando ls (list), permitindo a visualização dos diretórios remotos. Implemente o cliente de modo que o usuário entre com o caminho do diretório a ser visualizado. Laboratório de Redes. Remote Procedure Call - RPC 7

Sistemas Distribuídos Arquiteturas Middlewares

Sistemas Distribuídos Arquiteturas Middlewares Sistemas Distribuídos Arquiteturas s Arquitetura Arquitetura de um sistema é sua estrutura em termos dos componentes e seus relacionamentos Objetivo: garantir que a estrutura satisfará as demandas presentes

Leia mais

Chamadas Remotas de Procedimentos (RPC)

Chamadas Remotas de Procedimentos (RPC) Chamadas Remotas de Procedimentos (RPC) Chamada Remota de Procedimento (RPC) ou Chamada de Função ou Chamada de Subrotina Método de transferência de controle de parte de um processo para outra parte Procedimentos

Leia mais

1ª versão. #include <stdio.h> #include <string.h> #include <stdlib.h> #define maxdiscos 1000

1ª versão. #include <stdio.h> #include <string.h> #include <stdlib.h> #define maxdiscos 1000 #include #include #include #define maxdiscos 1000 typedef struct { char nomeautor[80]; char nomedisco[100]; int numdiscosvendidos; DISCO; 1ª versão int main() { DISCO listadiscos[maxdiscos];

Leia mais

Chamadas Remotas de Procedimentos (RPC) O Conceito de Procedimentos. RPC: Programa Distribuído. RPC: Modelo de Execução

Chamadas Remotas de Procedimentos (RPC) O Conceito de Procedimentos. RPC: Programa Distribuído. RPC: Modelo de Execução Chamadas Remotas de Chamada Remota de Procedimento (RPC) ou Chamada de Função ou Chamada de Subrotina Método de transferência de controle de parte de um processo para outra parte Procedimentos => permite

Leia mais

FTP FILE F TRANSFER PROTOCOL. Tópicos

FTP FILE F TRANSFER PROTOCOL. Tópicos FTP FILE F TRANSFER PROTOCOL Tópicos Revisão da aplicação FTP Implementação simples em Java de uma conexão FTP Implementação simples em Java de um comando de transferência de arquivo Descrição dos exercícios

Leia mais

PIP/CA - Programa Interdisciplinar de Pós-Graduação em Computação Aplicada da UNISINOS ALGORITMOS & ESTRUTURAS DE DADOS

PIP/CA - Programa Interdisciplinar de Pós-Graduação em Computação Aplicada da UNISINOS ALGORITMOS & ESTRUTURAS DE DADOS PIP/CA - Programa Interdisciplinar de Pós-Graduação em Computação Aplicada da UNISINOS Disciplina de Nivelamento - 2000/1: ALGORITMOS & ESTRUTURAS DE DADOS Professor Responsável: Prof. Fernando Santos

Leia mais

Princípios de Sistemas Distribuídos. Tecnologias utilizadas em sistemas distribuídos Aula 5

Princípios de Sistemas Distribuídos. Tecnologias utilizadas em sistemas distribuídos Aula 5 Princípios de Sistemas Distribuídos Tecnologias utilizadas em sistemas distribuídos Aula 5 Conceitos de comunicação entre processos Interprocess Communication (IPC) Sistemas distribuídos são construídos

Leia mais

Sistemas Operacionais e Introdução à Programação. Programação com linguagem C

Sistemas Operacionais e Introdução à Programação. Programação com linguagem C Sistemas Operacionais e Introdução à Programação Programação com linguagem C 1 Variáveis na linguagem C: tipo char O tipo char representa um caractere ASCII (ocupa só 1 byte) int main(int argc, char **

Leia mais

Comunicação entre processos (RPC) COMUNICAÇÃO ENTRE PROCESSOS Remote Procedure Call - RPC. Comunicação entre processos (RPC)

Comunicação entre processos (RPC) COMUNICAÇÃO ENTRE PROCESSOS Remote Procedure Call - RPC. Comunicação entre processos (RPC) COMUNICAÇÃO ENTRE PROCESSOS Remote Procedure Call - RPC IPC por passagem de mensagens: cada aplicação tem um protocolo específico formato de mensagens; forma de tratamento de erros; ex.: servidor de operações

Leia mais

Sistemas Distribuídos RPC Remote Procedure Call

Sistemas Distribuídos RPC Remote Procedure Call Sistemas Distribuídos RPC Remote Procedure Call Universidade Federal do ABC Turma: Ciência da Computação Prof. Dr. Francisco Isidro Massetto Cliente/Servidor Quais os problemas? Baseado em E/S Erro propagado

Leia mais

Grupo I [6v] Considere o seguinte extracto de um programa de definição de uma calculadora apenas com a função soma de dois valores reais

Grupo I [6v] Considere o seguinte extracto de um programa de definição de uma calculadora apenas com a função soma de dois valores reais Número: Nome: Página 1 de 5 LEIC/LERC 2012/13, Repescagem do 1º Teste de Sistemas Distribuídos, 25 de Junho de 2013 Responda no enunciado, apenas no espaço fornecido. Identifique todas as folhas. Duração:

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Comunicação Remota Gustavo Reis gustavo.reis@ifsudestemg.edu.br 1 Comunicação entre processos está no coração de todo sistema distribuído. Não tem sentido estudar sistemas distribuídos

Leia mais

Sun RPC: Arquitectura

Sun RPC: Arquitectura Sun RPC: Arquitectura 12/13 Sistemas Distribuídos 38 Arquitectura Código do cliente Código do servidor stubs Run-Time Library Protocolo de apresentação Protocolo de sessão stubs (ou ties) Run-Time Library

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

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

Na disciplina de Cálculo Numérico, vamos trabalhar com a linguagem C++ e o compilador que vamos usar é o Dev C++.

Na disciplina de Cálculo Numérico, vamos trabalhar com a linguagem C++ e o compilador que vamos usar é o Dev C++. Data: 14/8 Página 1 de 9 Primeiros passos Introdução Na disciplina de Cálculo Numérico, vamos trabalhar com a linguagem C++ e o compilador que vamos usar é o Dev C++. No tutorial anterior, mostramos como

Leia mais

Aplicações de RPC no Ambiente SUN-OS

Aplicações de RPC no Ambiente SUN-OS Universidade de São Paulo Instituto de Ciências Matemáticas de São Carlos Departamento de Ciências de Computação e Estatística Aplicações de RPC no Ambiente SUN-OS Márcio Augusto de Souza Paulo Sérgio

Leia mais

Fundamentos de Programação

Fundamentos de Programação TeSP Redes e Sistemas Informáticos Luís Correia Até agora aprendemos que podemos armazenar vários elementos, mas esses elementos têm que ser todos do mesmo tipo Exemplos: int v[20]; float matriz[5][10];

Leia mais

Arquivos. Estruturas de Dados II Vanessa Braganholo

Arquivos. Estruturas de Dados II Vanessa Braganholo Arquivos Estruturas de Dados II Vanessa Braganholo Entidades } Aplicações precisam armazenar dados sobre as mais diversas entidades, que podem ser concretas ou abstratas } Funcionário de uma empresa (concreto)

Leia mais

Sistemas de Operação (2018/2019) Teste de Auto-Avaliação Prática

Sistemas de Operação (2018/2019) Teste de Auto-Avaliação Prática Sistemas de Operação (2018/2019) Teste de Auto-Avaliação Prática (duração 1 hora) Resolva as 3 questões que se seguem da forma mais independente possível, evitando consultar a Internet ou os materiais

Leia mais

Desenvolvimento de Aplicações Java/CORBA

Desenvolvimento de Aplicações Java/CORBA Tutorial Desenvolvimento de Aplicações Java/CORBA Emerson Ribeiro de Mello, Fábio Favarim e Joni da Silva Fraga {emerson, fabio, fraga@das.ufsc.br Este tutorial ensina como criar uma aplicação distribuída

Leia mais

UFSM Introdução ao Dev-C++ Profa. Patrícia Pitthan. Introdução ao Dev-C++

UFSM Introdução ao Dev-C++ Profa. Patrícia Pitthan. Introdução ao Dev-C++ Introdução ao Dev-C++ O Dev-C++ oferece um ambiente que integra um editor de textos a um compilador para linguagem C. O compilador usado pelo Dev-C++ é o gcc (Gnu C Compiler). 1) Primeiro programa Para

Leia mais

Computação II Orientação a Objetos

Computação II Orientação a Objetos Computação II Orientação a Objetos Fabio Mascarenhas - 2014.1 http://www.dcc.ufrj.br/~fabiom/java Introdução Esse não é um curso de Java! O objetivo é aprender os conceitos da programação orientada a objetos,

Leia mais

Sistemas Distribuídos RPC x RMI. Edeyson Andrade Gomes www.edeyson.com.br

Sistemas Distribuídos RPC x RMI. Edeyson Andrade Gomes www.edeyson.com.br Sistemas Distribuídos RPC x RMI Edeyson Andrade Gomes www.edeyson.com.br Roteiro da Aula Chamada Remota a Procedimento Definição Passagem de Parâmetros STUBS Semântica de Falhas 2 RPC Chamada Remota a

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

Linguagem de Programação C

Linguagem de Programação C ICMC USP Linguagem de Programação C Aula: Funções em C Prof Alneu de Andrade Lopes MODULARIZAÇÃO Um problema complexo é melhor abordado se for dividido primeiramente em vários subproblemas MODULARIZAÇÃO

Leia mais

MIDDLEWARE Aplicativos RMI, RPC e eventos Camadas Protocolo Requesição-Respostal Middleware Representação Externa dos Dados Sistemas Operacionais

MIDDLEWARE Aplicativos RMI, RPC e eventos Camadas Protocolo Requesição-Respostal Middleware Representação Externa dos Dados Sistemas Operacionais RMI JAVA MIDDLEWARE Aplicativos RMI, RPC e eventos Protocolo Requesição-Respostal Camadas Middleware Representação Externa dos Dados Sistemas Operacionais RMI REMOTE METHOD INVOCATION Invocação remota

Leia mais

Java 2 Standard Edition. Fundamentos de. Objetos Remotos. Helder da Rocha www.argonavis.com.br

Java 2 Standard Edition. Fundamentos de. Objetos Remotos. Helder da Rocha www.argonavis.com.br Java 2 Standard Edition Fundamentos de Objetos Remotos Helder da Rocha www.argonavis.com.br 1 Sobre este módulo Este módulo tem como objetivo dar uma visão geral, porém prática, da criação e uso de objetos

Leia mais

PROGRAMAÇÃO ESTRUTURADA. CC 2º Período

PROGRAMAÇÃO ESTRUTURADA. CC 2º Período PROGRAMAÇÃO ESTRUTURADA CC 2º Período PROGRAMAÇÃO ESTRUTURADA Aula 07: Funções O comando return Protótipo de funções O tipo void Arquivos-cabeçalho Escopo de variáveis Passagem de parâmetros por valor

Leia mais

rpcgen - Funcionamento rpcgen Exemplo de arquivo de especificação: Passo 1: Construir uma Aplicaçao Convencional

rpcgen - Funcionamento rpcgen Exemplo de arquivo de especificação: Passo 1: Construir uma Aplicaçao Convencional rpcgen - Funcionamento rpcgen procedimentos servidores prog_proc.c stub servidor cc prog_svc.c especificação RPC prog.x rpcgen prog.h biblioteca RPC cliente prog_clnt.c rprog.c stub cliente cc programa

Leia mais

Sistemas Distribuídos RPC

Sistemas Distribuídos RPC Sistemas Distribuídos RPC Disciplina: Sistemas Distribuídos Prof.: Edmar Roberto Santana de Rezende Faculdade de Engenharia de Computação Centro de Ciências Exatas, Ambientais e de Tecnologias Pontifícia

Leia mais

Comunicação em Sistemas Distribuídos. Bruno M. Carvalho Sala: 3B2 Horário: 35T34

Comunicação em Sistemas Distribuídos. Bruno M. Carvalho Sala: 3B2 Horário: 35T34 Comunicação em Sistemas Distribuídos Bruno M. Carvalho Sala: 3B2 Horário: 35T34 Comunicação em Sistemas Distribuídos Protocolos regras que os processos que estão se comunicando tem de seguir Protocolos

Leia mais

Grupo I [7v] 1. [1,0] Apresente o conteúdo do IDL relativo a este programa. Assuma PROGRAM=62015 e VERSION=1.

Grupo I [7v] 1. [1,0] Apresente o conteúdo do IDL relativo a este programa. Assuma PROGRAM=62015 e VERSION=1. Número: Nome: Página 1 de 6 LEIC/LETI, 2014/15, Repescagem do 1º Teste de Sistemas Distribuídos 30 de Junho de 2015 Responda no enunciado, apenas no espaço fornecido. Identifique todas as folhas. Duração:

Leia mais

Uma Introdução à Arquitetura CORBA. O Object Request Broker (ORB)

Uma Introdução à Arquitetura CORBA. O Object Request Broker (ORB) Uma Introdução à Arquitetura Francisco C. R. Reverbel 1 Copyright 1998-2006 Francisco Reverbel O Object Request Broker (ORB) Via de comunicação entre objetos (object bus), na arquitetura do OMG Definido

Leia mais

Comunicação em Sistemas Distribuídos

Comunicação em Sistemas Distribuídos Comunicação em Sistemas Distribuídos Sockets Aplicações Protocolo de Aplicação FTP, SMTP, HTTP, Telnet, SNMP, etc. sockets TCP, UDP IP Data Link Ethernet, Token Ring, FDDI, etc Física Conjunto de APIs

Leia mais

Programação Estruturada I

Programação Estruturada I Programação Estruturada I Introdução a Linguagem C Prof. Thiago Caproni Tavares 1 Prof. Mateus dos Santos 2 1 thiago.tavares@ifsuldeminas.edu.br 2 mateus.santos@ifsuldeminas.edu.br Última Atualização:

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

Edwar Saliba Júnior. Dicas, Comandos e Exemplos Comparativos entre Linguagem Algorítmica e Linguagem C / C++

Edwar Saliba Júnior. Dicas, Comandos e Exemplos Comparativos entre Linguagem Algorítmica e Linguagem C / C++ Edwar Saliba Júnior Dicas, Comandos e Exemplos Comparativos entre Linguagem Algorítmica e Linguagem C / C++ Belo Horizonte 2009 Sumário 1 Nota:... 2 2 Comandos e Palavras Reservadas:... 3 3 Dicas... 4

Leia mais

Tipo de Dados em Linguagem C

Tipo de Dados em Linguagem C Tipo de Dados em Linguagem C Principais tipos de dados em C int : tipo de dados inteiros (exemplo: 1, -3, 100, -9, 18, etc.) float : tipo de dados reais (exemplo: 1.33, 3.14, 2.00, -9.0, 1.8, etc.) Ocupa

Leia mais

Curso de C: uma breve introdução

Curso de C: uma breve introdução V Semana de Engenharia Elétrica - UFBA Licença de uso e distribuição Todo o material aqui disponível pode, posteriormente, ser utilizado sobre os termos da: Creative Commons License:

Leia mais

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

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

Leia mais

Tipos de Dados, Tipos Abstratos de Dados Estruturas de Dados

Tipos de Dados, Tipos Abstratos de Dados Estruturas de Dados Tipos de Dados, Tipos Abstratos de Dados Estruturas de Dados Tipo de dados, tipo abstrato de dados, estruturas de dados Termos parecidos, mas com significados diferentes Tipo de dado Em linguagens de programação

Leia mais

MANUAL AGENDADOR DE TAREFAS LOGIX

MANUAL AGENDADOR DE TAREFAS LOGIX Outubro 2011 rev. 01 MANUAL AGENDADOR DE TAREFAS LOGIX Elaboração: Rubens Dos Santos Filho Framework rubens.santos@totvs.com.br Objetivo Este documento tem como objetivo relatar a funcionalidade de agendamento

Leia mais

ESCOLA SUPERIOR DE TECNOLOGIA DE TOMAR DEPARTAMENTO DE ENGENHARIA INFORMÁTICA 2005/2006. 0.5 Valores

ESCOLA SUPERIOR DE TECNOLOGIA DE TOMAR DEPARTAMENTO DE ENGENHARIA INFORMÁTICA 2005/2006. 0.5 Valores ESCOLA SUPERIOR DE TECNOLOGIA DE TOMAR DEPARTAMENTO DE ENGENHARIA INFORMÁTICA INTRODUÇÃO À PROGRAMAÇÃO (ENG. INFORMÁTICA) COMPUTADORES E PROGRAMAÇÃO I (ENG. ELECTROTÉCNICA) 2005/2006 TRABALHO PRÁTICO Nº

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

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

Introdução a POO. Introdução a Linguagem C++ e POO

Introdução a POO. Introdução a Linguagem C++ e POO Introdução a POO Marcio Santi Linguagem C++ Introdução a Linguagem C++ e POO Programação Orientada a Objetos (POO) e C++ Recursos C++ não relacionados às classes Incompatibilidades entre C e C++ Classes

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

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Chamada Remota de Procedimento Referência Sistemas operacionais modernos Andrew S. TANENBAUM Prentice-Hall, 1995 Seção 10.3 pág. 285-304 2 Conteúdo Introdução Operação básica Objetivos

Leia mais

Firewalls de Aplicação WEB, Idiomas e Expressões Regulares. Condições de Bypass

Firewalls de Aplicação WEB, Idiomas e Expressões Regulares. Condições de Bypass Firewalls de Aplicação WEB, Idiomas e Expressões Regulares Condições de Bypass Glaudson Ocampos 18 de Novembro de 2009 SUMÁRIO 1 - INTRODUÇÃO... 03 2 - DESCRIÇÃO DO PROBLEMA...

Leia mais

Adriano Reine Bueno Rafael Barros Silva

Adriano Reine Bueno Rafael Barros Silva Adriano Reine Bueno Rafael Barros Silva Introdução RMI Tecnologias Semelhantes Arquitetura RMI Funcionamento Serialização dos dados Criando Aplicações Distribuídas com RMI Segurança Exemplo prático Referências

Leia mais

struct LISTA item quant

struct LISTA item quant UNIVERSIDADE SÃO JUDAS TADEU ESTRUTURA DE DADOS - PROF. H. Senger IMPLEMENTAÇÃO DE LISTAS COM VETORES A implementação de listas utilizando vetores é simples. Existe apenas uma pequena questão, com relação

Leia mais

Introdução à Programação

Introdução à Programação Aula Teórica/Pratica 5: ciclos e funções Getchar e putchar Escrever e ler caracteres A função getchar da biblioteca stdio.h permite de receber exatamente um (1) carácter da o "teclado"ou stdin Definição:

Leia mais

Linguagem C Tipos de Dados. void; escalares; sizeof Vectores; strings em C Estruturas Introdução ao pré-processador

Linguagem C Tipos de Dados. void; escalares; sizeof Vectores; strings em C Estruturas Introdução ao pré-processador Linguagem C Tipos de Dados void; escalares; sizeof Vectores; strings em C Estruturas Introdução ao pré-processador Funções void void pode ser usado em lugar de um tipo, para indicar a ausência de valor

Leia mais

Prof. Yandre Maldonado - 1 PONTEIROS. Prof. Yandre Maldonado e Gomes da Costa

Prof. Yandre Maldonado - 1 PONTEIROS. Prof. Yandre Maldonado e Gomes da Costa Prof. Yandre Maldonado - 1 PONTEIROS Prof. Yandre Maldonado e Gomes da Costa PONTEIROS Prof. Yandre Maldonado - 2 Ponteiro é uma variável que possui o endereço de outra variável; É um poderoso recurso

Leia mais

INSTITUTO SUPERIOR DE CIÊNCIAS DO TRABALHO E DA EMPRESA. Filas de mensagem

INSTITUTO SUPERIOR DE CIÊNCIAS DO TRABALHO E DA EMPRESA. Filas de mensagem Página 1 de 5 INSTITUTO SUPERIOR DE CIÊNCIAS DO TRABALHO E DA EMPRESA Sistemas Operativos ETI - IGE Filas de mensagem 2º Semestre 2003/2004 Aula 04 1. Criar uma fila de mensagens. Mandar uma mensagem.

Leia mais

Distributed Systems Principles and Paradigms

Distributed Systems Principles and Paradigms Distributed Systems Principles and Paradigms Maarten van Steen VU Amsterdam, Dept. Computer Science (Tradução e Adaptação Ricardo Anido - IC/Unicamp) Capítulo 04: Comunicação Versão: 20 de março de 2014

Leia mais

Busca. Pesquisa sequencial

Busca. Pesquisa sequencial Busca Banco de dados existem para que, de tempos em tempos, um usuário possa localizar o dado de um registro, simplesmente digitando sua chave. Uma tabela ou um arquivo é um grupo de elementos, cada um

Leia mais

Projecto hipotético para resolvermos hoje

Projecto hipotético para resolvermos hoje Projecto hipotético para resolvermos hoje 12/13 Sistemas Distribuídos 1 Projecto hipotético para resolvermos hoje Implementar servidor de contagem que mantém contador e oferece estas operações aos clientes:

Leia mais

Projeto de Software Orientado a Objeto

Projeto de Software Orientado a Objeto Projeto de Software Orientado a Objeto Ciclo de Vida de Produto de Software (PLC) Analisando um problema e modelando uma solução Prof. Gilberto B. Oliveira Estágios do Ciclo de Vida de Produto de Software

Leia mais

Curso de Linguagem C

Curso de Linguagem C Curso de Linguagem C 1 Aula 1 - INTRODUÇÃO...4 AULA 2 - Primeiros Passos...5 O C é "Case Sensitive"...5 Dois Primeiros Programas...6 Introdução às Funções...7 Introdução Básica às Entradas e Saídas...

Leia mais

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

Sistemas de Operação (2018/2019) Ficha 4 Sistemas de Operação (2018/2019) Ficha 4 Q1. Considere a seguinte implementação de um comando mycat (semelhante ao cat da shell Bash) utilizando directamente a API do Unix (system calls) em vez da Biblioteca

Leia mais

Hugo Pedro Proença, 2007

Hugo Pedro Proença, 2007 Stored Procedures À medida que a complexidade dos sistemas aumenta, torna-se cada vez mais difícil a tarefa de integrar o SQL com as aplicações cliente. Além disto, é necessário que todas as aplicações

Leia mais

Introdução a Computação

Introdução a Computação Introdução a Computação Aula 02 Introdução a Linguagem C Edirlei Soares de Lima Lógica de Programação Lógica de Programação é a técnica de criar sequências lógicas de ações para

Leia mais

Chamada Remota de Procedimento (RPC)

Chamada Remota de Procedimento (RPC) Chamada Remota de Procedimento (RPC) padrão cliente-servidor A (cliente) B (servidor) send (B, pedido) receive(b, &resp) receive (A, ) processa pedido send(a, ) repetição de padrão de comunicação encapsulação

Leia mais

Infra-Estrutura de Software. Introdução. (cont.)

Infra-Estrutura de Software. Introdução. (cont.) Infra-Estrutura de Software Introdução (cont.) O que vimos Complexidade do computador moderno, do ponto de vista do hardware Necessidade de abstrações software Sistema computacional em camadas SO como

Leia mais

Algoritmos e Programação Estruturada

Algoritmos e Programação Estruturada Algoritmos e Programação Estruturada Virgínia M. Cardoso Linguagem C Criada por Dennis M. Ritchie e Ken Thompson no Laboratório Bell em 1972. A Linguagem C foi baseada na Linguagem B criada por Thompson.

Leia mais

Manual de backup do banco de dados PostgreSQL - Versão 2. Setembro-2011

Manual de backup do banco de dados PostgreSQL - Versão 2. Setembro-2011 Manual de backup do banco de dados PostgreSQL - Versão 2 Setembro-2011 E-Sales Oobj Tecnologia da Informação Av. D, n. 246, Qd. A-04, Lt.02, Ap. 02, Jardim Goiás Goiânia/GO, CEP: 74805-090 Fone: (62) 3086-5750

Leia mais

Introdução à Programação

Introdução à Programação Aula Teórica 5: ciclos e funções Getchar e putchar Escrever e ler caracteres A função getchar da biblioteca stdio.h permite de receber exatamente um (1) carácter da o "teclado"ou stdin Definição: int getchar(void)

Leia mais

3. Comunicação em Sistemas Distribuídos

3. Comunicação em Sistemas Distribuídos 3. Comunicação em 3.1.Troca de mensagens As mensagens são objetos de dados cuja estrutura e aplicação são definidas pelas próprias aplicações que a usarão. Sendo a troca de mensagens feita através de primitivas

Leia mais

Trabalho 3: Agenda de Tarefas

Trabalho 3: Agenda de Tarefas INF 1620 Estruturas de Dados Semestre 08.2 Trabalho 3: Agenda de Tarefas O objetivo deste trabalho é a implementação de um conjunto de funções para a manipulação de uma agenda de tarefas diárias, de forma

Leia mais

Protocolo de Sinalização SIP

Protocolo de Sinalização SIP Protocolos de Sinalização Protocolos com processamento distribuído e clientes/terminais inteligentes SIP - Session Initiation Protocol, desenvolvido pelo IETF para comunicação multimídia pela Internet

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos 11 Objetivos Este capítulo apresenta uma introdução aos sistemas distribuídos em geral Arquiteturas de cliente servidor Características das arquiteturas de 2 e 3 camadas Ambiente

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

Java. Marcio de Carvalho Victorino www.dominandoti.eng.br

Java. Marcio de Carvalho Victorino www.dominandoti.eng.br Java Marcio de Carvalho Victorino www.dominandoti.eng.br 3. Considere as instruções Java abaixo: int cont1 = 3; int cont2 = 2; int cont3 = 1; cont1 += cont3++; cont1 -= --cont2; cont3 = cont2++; Após a

Leia mais

Criando uma System Call no Minix

Criando uma System Call no Minix Criando uma System Call no Minix Tarcísio E. M. Crocomo Universidade Federal de Santa Catarina 25 de Maio de 2011 Sumário Introdução ao sistema de mensagens. Criando nossa syscall Criando nossa função

Leia mais

Curso de C. Procedimentos e Funções. 6/4/200901/04/09 09:42 Copyright@Arnaldo V Moura, Daniel F Ferber 1

Curso de C. Procedimentos e Funções. 6/4/200901/04/09 09:42 Copyright@Arnaldo V Moura, Daniel F Ferber 1 Curso de C Procedimentos e Funções 6/4/200901/04/09 09:42 Copyright@Arnaldo V Moura, Daniel F Ferber 1 Funções Roteiro: Funções Declaração e chamada Funções importantes Exemplos de funções Variáveis Globais,

Leia mais

UNIVERSIDADE. Sistemas Distribuídos

UNIVERSIDADE. Sistemas Distribuídos UNIVERSIDADE Sistemas Distribuídos Ciência da Computação Aula 19-20: Arquitetura CORBA (continuação) Exemplo de cliente e servidor em CORBA Interfaces IDL Shape e ShapeList Exemplo de cliente e servidor

Leia mais

TAD: Tipo Abstrato de Dados (parte 2)

TAD: Tipo Abstrato de Dados (parte 2) TAD: Tipo Abstrato de Dados (parte 2) SCC0202 Algoritmos e Estruturas de Dados I Prof. Thiago A. S. Pardo Modularização em C Programa em C pode ser dividido em vários arquivos Arquivos fonte com extensão.c

Leia mais

Vetores. Vetores. Figura 1 Exemplo de vetor com 10 elementos

Vetores. Vetores. Figura 1 Exemplo de vetor com 10 elementos Vetores Nos capítulos anteriores estudamos as opções disponíveis na linguagem C para representar: Números inteiros em diversos intervalos. Números fracionários com várias alternativas de precisão e magnitude.

Leia mais

Capítulo 2: Introdução à Linguagem C

Capítulo 2: Introdução à Linguagem C Capítulo 2: Introdução à Linguagem C INF1005 Programação 1 Pontifícia Universidade Católica Departamento de Informática Programa Programa é um algoritmo escrito em uma linguagem de programação. No nosso

Leia mais

INF 1005 Programação I

INF 1005 Programação I INF 1005 Programação I Aula 03 Introdução a Linguagem C Edirlei Soares de Lima Estrutura de um Programa C Inclusão de bibliotecas auxiliares: #include Definição de constantes:

Leia mais

TAD: Tipo Abstrato de Dados (parte 2)

TAD: Tipo Abstrato de Dados (parte 2) TAD: Tipo Abstrato de Dados (parte 2) SCC0502 Algoritmos e Estruturas de Dados I Programa em C pode ser dividido em vários arquivos Arquivos fonte com extensão.c Denominados de módulos Cada módulo deve

Leia mais

Programação científica C++

Programação científica C++ Programação científica C++ NIELSEN CASTELO DAMASCENO Slide 1 Linguagens de Programação Uma linguagem de programação é um método padronizado para expressar instruções para um computador. É um conjunto

Leia mais

Listas (cont.) K&R: Capitulo 6. Lista Simplesmente Ligada IAED, 2012/2013. Conjunto de nós. Cada nó contém. head NULL. typedef struct node {

Listas (cont.) K&R: Capitulo 6. Lista Simplesmente Ligada IAED, 2012/2013. Conjunto de nós. Cada nó contém. head NULL. typedef struct node { Listas (cont.) K&R: Capitulo 6 Lista Simplesmente Ligada Conjunto de nós head NULL Cada nó contém Informação útil Ponteiro para o próimo nó typedef struct node Item item; struct node *net; *link; Item

Leia mais

Computação 2. Aula Profª. Fabiany Listas Duplamente Encadeadas

Computação 2. Aula Profª. Fabiany Listas Duplamente Encadeadas Computação 2 Aula 10.1 Listas Duplamente Encadeadas Profª. Fabiany fabianyl@utfpr.edu.br ListaEncadeada.h #ifndef _LISTAENCADEADA_H_ #define _LISTAENCADEADA_H_ #include #include #include

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Prof. Jó Ueyama Apresentação baseada nos slides da Profa. Kalinka Castelo Branco, do Prof. Dr. Antônio Carlos Sementille e da Profa. Dra. Luciana A. F. Martimiano e nas transparências

Leia mais

MC102 Algoritmos e programação de computadores Aula 3: Variáveis

MC102 Algoritmos e programação de computadores Aula 3: Variáveis MC102 Algoritmos e programação de computadores Aula 3: Variáveis Variáveis Variáveis são locais onde armazenamos valores na memória. Toda variável é caracterizada por um nome, que a identifica em um programa,

Leia mais

Programação 2009/2010 MEEC

Programação 2009/2010 MEEC Programação 2009/2010 MEEC Laboratório 1 Semana de 28 de Setembro de 2009 SCDEEC Leia com atenção as regras de funcionamento da Sala de Computadores do DEEC (http://scdeec.ist.utl.pt/ e http://scdeec.ist.utl.pt/regras_utilizacao).

Leia mais

CONTRA CONTROLE DE ACESSOS E MODULARIZADOR DE SISTEMAS

CONTRA CONTROLE DE ACESSOS E MODULARIZADOR DE SISTEMAS MINISTÉRIO DO DESENVOLVIMENTO AGRÁRIO SUBSECRETARIA DE PLANEJAMENTO, ORÇAMENTO E ADMINISTRAÇÃO COORDENAÇÃO-GERAL DE MODERNIZAÇÃO E INFORMÁTICA CONTRA CONTROLE DE ACESSOS E MODULARIZADOR DE SISTEMAS MANUAL

Leia mais

Criando scanner para FreeSSHd vulnerável ao exploit do Metasploit Inj3cti0n P4ck3t. Inj3cti0n P4ck3t

Criando scanner para FreeSSHd vulnerável ao exploit do Metasploit Inj3cti0n P4ck3t. Inj3cti0n P4ck3t Criando scanner para FreeSSHd vulnerável ao exploit do Metasploit Inj3cti0n P4ck3t. Inj3cti0n P4ck3t São Paulo 2010 Nome: Fernando Henrique Mengali de Souza Contato: fer_henrick@hotmail.com Linguagem de

Leia mais

Sistemas Distribuídos e Redes de Sensores

Sistemas Distribuídos e Redes de Sensores Aula 5: abril de 2013 sobre nosso exemplo cliente-servidor servidor espera pedido e passa a tratá-lo e pedidos que cheguem durante tratamento? cliente envia pedido de leitura... pode ou não receber resposta?

Leia mais

5 Apresentando a linguagem C

5 Apresentando a linguagem C 5 Apresentando a linguagem C O criador da linguagem de programação C foi Dennis Ritchie que, na década de 70, programou-a por meio de um computador DEC PDP-11 rodando sistema operacional Unix. Entretanto,

Leia mais

Invocação de Métodos Remotos

Invocação de Métodos Remotos Invocação de Métodos Remotos Java RMI (Remote Method Invocation) Tópicos Tecnologia RMI Introdução Modelo de camadas do RMI Arquitetura Fluxo de operação do RMI Passos para implementação Estudo de caso

Leia mais