El Llamado de procedimientos remotos

Tamaño: px
Comenzar la demostración a partir de la página:

Download "El Llamado de procedimientos remotos"

Transcripción

1 petición respuesta El Llamado de procedimientos remotos Principios teóricos y programación en Unix Dr. Roberto Gómez C. Diapo. No. 1 Cliente/Servidor envío/recepción mensajes cliente (leer FA45 de arch1) servidor cliente (ack) servidor cliente ( F3247A) servidor cliente (ack) servidor Dr. Roberto Gómez C. Diapo. No. 2 1

2 Desventajas paradigma envio/recepción mensajes Paradigma envio/recepción es del tipo Entrada/Salida procedimientos send(), receive() están dedicados a realizar E/S E/S no es un concepto clave para los sistemas centralizados; pero si para la computación o cálculo distribuido Objetivo hacer el cálculo distribuido como si fuera cálculo centralizado Cálculo centralizado llamadas de procedimientos y/o funciones Dr. Roberto Gómez C. Diapo. No. 3 Ejecución de una llamada de procedimiento local main() count = read(fd, bytes, buf) main() count = read(fd, bytes, buf) main() count = read(fd, bytes, buf) Variables locales al main SP Variables locales al main bytes buf fd dirección regreso SP Variables locales al main SP a) Stack antes llamada read b) Stack durante ejecución read c) Stack después llamada read Dr. Roberto Gómez C. Diapo. No. 4 2

3 Tipos de paso de parámetros Por valor en el stack se copia el valor del parámetro valor de salida es igual al valor de entrada Por referencia en el stack se almacena la dirección de la variable es posible modificar el valor del parámetro call-by-copy/restore se copia el valor de la variable en el stack, (como en paso por valor) al final de la ejecución local se copia el valor que tiene la variable dentro del procedimiento, en el stack el procedimiento que mandó llamar al procedimiento copia el valor final en condiciones normales tiene el mismo efecto que el paso por referencia Dr. Roberto Gómez C. Diapo. No. 5 El RPC Creado por Birrel & Nelson en 1984 Permiten a los programas llamar procedimientos localizados en otras máquinas Un proceso x en una máquina A, puede llamar un procedimiento localizado en una máquina B Información puede llevarse del proceso invocador al invocado dentro de los parámetros Ningún mensaje u operación de E/S es visible para el programador Problemas a resolver procedimientos invocador e invocado se ejecutan en diferentes máquinas, i.e. diferentes direcciones y posiblemente diferentes arquitecturas ambas máquinas pueden fallar Dr. Roberto Gómez C. Diapo. No. 6 3

4 Principio funcionamiento del RPC Máquina Cliente Máquina Servidor stub del cliente stub del servidor cliente call return Pack parámetros Unpack resultado Unpack parámetros Pack resultado call return servidor kernel kernel Mensaje transportado en la red Dr. Roberto Gómez C. Diapo. No. 7 Proveniencia de los stubs Varios sistemas generados automáticamente rpcgen de Sun generacion archivos esqueleto, para cliente y servidor, a partir de un compilador y de la especificación del servicio Rutinas de especificación de stubs rutinas de alto y bajo nivel posibilidad de definir más aspectos timeouts protocolos Dr. Roberto Gómez C. Diapo. No. 8 4

5 Máquina Cliente El paso de parámetros stubs Máquina Servidor n=sum(4,7); mensaje sum 4 7 mensaje sum(i,j) sum int i,j; 4 return(i+j); 7 kernel kernel Dr. Roberto Gómez C. Diapo. No. 9 Aspectos a considerar en el paso de parámetros Tipos de paso de parámetros por valor por referencia call-by-copy/restore Problemas a resolver diferencias entre representación de datos diferencias en formatos paso de apuntadores, (estructuras complejas) Optimización especificación parámetros de entrada y salida registros para paso de apuntadores Dr. Roberto Gómez C. Diapo. No. 10 5

6 Binding dinámico especificación formal servidor #include <header.h> specification of file_server, version 3.1 long read(in char name[max_path], out char buf[buf_size], in long bytes, in long position); long write(in char name[max_path], in char buf[buf_size], in long bytes, in long position); int create(in char[max_path], in int mode); int delete(in char[max_path]); end. Dr. Roberto Gómez C. Diapo. No. 11 Registro del servidor SERVIDOR Binder Nombre Num. versión Id.único Manejador, (handler) Otros (autentificación) Sistema Distribuido Dr. Roberto Gómez C. Diapo. No. 12 6

7 Petición cliente error 3 servicio NO disponible Binder proceso solicitante 1 stub cliente 2 Nombre, Num. versión, Id.único, Manejador servicio disponible 3 Dr. Roberto Gómez C. Diapo. No. 13 Parámetros entrada/salida de la interfaz binder Acción Parámetros Entrada Salida Registrar Suprimir Nombre, versión, manejador, id único Nombre, versión, id único Buscar Nombre, versión Manejador, id único Dr. Roberto Gómez C. Diapo. No. 14 7

8 Registro y localización de un servidor RPC Servidor Paso 1 Este es PRIMEPROG Version 1, Estoy usando el puerto 1061 Puerto 111 Portmapper Puerto 1061 Paso 2 Donde esta PRIMEPROG Version 1? Prog Vers Puerto Paso 4 Llama procedimiento 1. Aquí están los datos Paso 3 Esta en el puerto 1061 Cliente Dr. Roberto Gómez C. Diapo. No. 15 Binding y nombramiento servicios Convención para números de programa de Sun FFFFFFF definido por y administrado por Sun FFFFFFF dfiid definido por el usuario FFFFFFF de tránsito, (aplicaciones con generación de números) FFFFFFFF reservado para un futuro uso El comando rpcinfo Realiza una llamada RPC a un servidor RPC y reporta lo que encuentra. Dependiendo de los parámetros es posible - listar todos los servicios de un RPC en un host - listar todos los servicios RPC registrados con rpcbind versión 2 - realizar una llamada RPC al procedimiento 0 de un determinado programa y de una determinada versión en un host dado. Dr. Roberto Gómez C. Diapo. No. 16 8

9 Sintaxis Sintaxis y opciones rpcinfo rpcinfo [ -m -s ] [ host ] rpcinfo -p [ host ] rpcinfo -T transport host prognum [ versnum ] rpcinfo -l [ -T transport ] host prognum [ versnum ] rpcinfo -b [-T transport ] prognum versnum rpcinfo -d [-T transport ] prognum versnum Algunas opciones -T especifica el transporte sobre el cual el servicio es requerido -a utiliza el parámetro como la dirección universal en el transporte -b realiza un broadcast al procedimiento 0 de los prognum y versnum especificados y reporta todos los hosts que respondieron -d borra el regsitro correpondiente al prognum y versnum especificados -l despliega una lista de entradas que contienen un prognum y un versnum en el host especificado -s despliega una lista consisa de todos los programas RPC registrados en host. Si no se especifica ningún host tomo el host local Dr. Roberto Gómez C. Diapo. No. 17 Ejemplo rpcinfo armagnac45>rpcinfo -s toto program version(s) netid(s) service owner ,3,4 udp, tcp, tictls, ticosord, ticots rpcbin superuser ,1 ticots, ticotsord, ticlts keyserv superuser ticots, ticotsord, ticlts kerbd superuser udp admind superuser ticlts, udp rquotad superuser ,2 ticlts, udp rusersd superuser ticots, ticotsord, ticlts - superuser ticlts, udp sprayd superuser ticlts, udp walld superuser ,3,2 ticlts, udp rstad superuser ticots, ticotsord, ticlts, tcp, udp status superuser ,3,1 ticots, ticotsord, ticlts, tcp, udp nlockmgr superuser ,2 tcp armagnac46> Dr. Roberto Gómez C. Diapo. No. 18 9

10 Pasos de una Llamada a un Procedimiento Remoto Máquina Servidora Portmapper Programa Servidor procedimientos servicio función dispatch callrpc () host, programa, versión, procedimiento, argumentos errores o resultados Programa Cliente Máquina Cliente Dr. Roberto Gómez C. Diapo. No. 19 Niveles del Protocolo TCP/IP 5-7. SESIÓN Aplicación Usuario 4. TRANSPORTE TCP UDP 3. RED IP NIVELES OSI 1-2.ENLACE / FÍSICO Interface Hardware R E D Dr. Roberto Gómez C. Diapo. No

11 Pasos en la ejecución de un RPC 1. El procedimiento del cliente llama al client-stub normalmente. 2. El client-stub construye un mensaje y lo pasa al kernel. 3. El kernel envía el mensaje al kernel remoto. 4. El kernel remoto pasa el mensaje al server-stub. 5. El server-stub desempaca los parámetros y llama al servidor. 6. El servidor realiza el trabajo y regresa el resultado al stub. 7. El server-stub lo empaqueta en un mensaje y lo pasa al kernel. 8. El kernel remoto envía un mensaje al cliente. 9. El kernel del cliente le da el mensaje al client-stub. 10. El stub desempaca el resultado y lo regresa al cliente. Dr. Roberto Gómez C. Diapo. No. 21 Ruta crítica de cliente a servidor Máquina Cliente Máquina Servidor Cliente Llamar procedimientos stub Realizar sevicio Servidor Servidor Stub Cliente Preparar mensaje buffer Marshall los parámetros en el buffer Poner los encabezados a los mensajes Pasar al kernel Llamar al servidor Poner los parametros en el stack Unmarshall parametros Server Stub Kernel Máquina Contexto switch al kernel Copiar mensaje en el kernel Determinar direcciones destino Poner dirección en encabezado mensaje Establecer la interfaz de la red Hechar a andar el timer Switch contexto a server stub Copiar mensaje en server stub Ver si stub esta esperando Decidir a que stub darselo Checar el paquete para validación Interrupción de proceso Kernel Máquina Dr. Roberto Gómez C. Diapo. No

12 EL RPC DE SUN El rpcgen y el lenguaje de especificación RPCL Ejemplos - Llamada procedimientos con un solo parámetro - Llamada remota con múltiples parámetros Dr. Roberto Gómez C. Diapo. No. 23 user developed Especificación RPC Desarrollo de una Aplicación de Red con un Compilador de Protocolo RPC RPC and data representation libraries Compilador RPC stub del cliente filtros comunes y archivo encabezado stub del servidor compilar y ligar compilar y ligar código cliente funciones cliente librerías de RPC y de representación de datos funciones servidor código servidor Dr. Roberto Gómez C. Diapo. No

13 El lenguaje RPC (RPCL) RPCL -Comentarios Igual que en lenguaje C Equivalente en C -Constantes simbólicas const MAX_SIZE = 8192 #define MAX_SIZE Enumeraciones enum coloresrojo = 0, VERDE=1, AZUL=2; -Booleanos bool termino; -Arreglos tamaño fijo int alumnos[10]; enum colores ROJO=0, VERDE=1, AZUL=2; typedef enum colores colores; bool_t termino; int alumnos[10]; Dr. Roberto Gómez C. Diapo. No. 25 RPCL Equivalente en C -Arreglos tamaño variable int a <12> /* a los mas 12 elementos*/ struct u_int a_len; int *a_val; a; int b<> /* cualquier numero de elementos */ struct u_int b_len; int *b_val; b; Tamaño máximo = parámetro maxsize en xdr_array() No especificación máximo => máximo valor puede tomar u_int; Solo es posible trabajar con arreglos unidimensionales -Estructuras struct punto struct punto int x; int x; int y; int y; ; ; typedef struct punto punto; Dr. Roberto Gómez C. Diapo. No

14 -Strings No existen en C, RPCL convención de terminación en NULL Tamaño especifica máximo número caracteres permitidos en string No especificado => tamaño máximo = máximo valor u_int; string nombre <32> string nombresote<> char *nombre; char *nombresote; -Uniones Más cercanas al registro variante de Pascal union resultado switch (int errno) struct resultado case 0 int errno; opaque data[1024]; union case 1 char data[1024] int valor; int valor; default resultado_u; void ; ; typedef struct resultado resultado; Dr. Roberto Gómez C. Diapo. No. 27 RPCL -Datos opacos Usados para describir datos que no tienen tipo Dato puede ser de tamaño fijo o variable Equivalente en C opaque diskblock[512]; char diskblock[512]; opaque filedata<1024> struct u_int filedata_len; char *filedata_val; filedata -Typedef RPCL Misma sintaxis que en C Ejemplo define un fname_type usado para declarar strings de nombres de archivos que tienen una longitud máxima de 255 caracteres typedef string fname_type <255> typedef char *fname_type; - Identificadores Compuestos de letras, números y el underscore Distinción entre mayusculas y minusculas Dr. Roberto Gómez C. Diapo. No

15 Pasos para convertir llamadas locales en remotas - Diseñar programa usando llamadas locales. - Restructurar cada función de tal forma que sólo tenga un parámetro pasado por valor y asegurarse que trabaja bien localmente. - Crear un archivo de especificación con extensión.x. - Ejecutar rpcgen con opciones -a y -C para generar archivos necesarios. - Usar el makefile generado para compilar los archivos. Es posible detectar errores en las definiciones de tipos en el archivo de especificación. - Insertar programa que va a llamar a la función en el archivo _client.c generado por rpcgen. - Insertar código función local en el archivo _server.c generado por rpcgen. - Intentar compilar los programas usando el makefile generado. - Jugar, (fiddle), con el _server.c y el _client.c hasta que trabajen. Este juego puede no ser necesario si solo se utilizan tipos simples de datos. Dr. Roberto Gómez C. Diapo. No. 29 Ejemplo aplicación perímetro y área de un cuadro perimetro (a) area(a) per = perimetro(20) sup = area(20 int double 4*a a*a Dr. Roberto Gómez C. Diapo. No

16 Paso I Diseño del servicio i local l Dr. Roberto Gómez C. Diapo. No. 31 #include <stdio.h> Calculo perímetro y área de un cuadrado main(int argc, char *argv[]) int a; int per; double sup; if (argc!=2 ) int perimetro(int a) return 4*a; double area (int a) return a*a; fprintf(stderr,"error,uso %s a \n",argv[0]); exit(1); a = atoi(argv[1]); per = perimetro(a); sup = area(a); printf("el perimetro del cuadrado es %d \n",per); printf("el area del cuadrado es %d \n",sup); Dr. Roberto Gómez C. Diapo. No

17 Código del servidor local servidor.c #include cuad.h int perimetro(int a) int res; res = 4*a; return(res); double area(int a) double res; res = a*a; return(res); Dr. Roberto Gómez C. Diapo. No. 33 Código del cliente local cliente.c #include <stdio.h> #include cuad.h main(int argc, char *argv[]) int a; int per; double sup; if (argc!=2 ) fprintf(stderr,"error, uso %s a \n",argv[0]); exit(1); a = atoi(argv[1]); per = perimetro(a); sup = area(a); printf("el perimetro del cuadrado es %d \n",per); printf("el area del cuadrado es %d \n",sup); Dr. Roberto Gómez C. Diapo. No

18 El archivo de encabezado cuad.h int perimetro(int); double area(int); Dr. Roberto Gómez C. Diapo. No. 35 Compilando y ejecutando rogomez@cuba93>gcc cliente.c servidor.c -o cuadro rogomez@cuba94>cuadro 5 El perimetro del cuadrado es 20 El area del cuadrado es 25 rogomez@cuba95>cuadro 2 El perimetro del cuadrado es 8 El area del cuadrado es 4 rogomez@cuba96> Dr. Roberto Gómez C. Diapo. No

19 Paso II Diseño del archivo de configuración y uso de rpcgen Dr. Roberto Gómez C. Diapo. No. 37 El archivo de especificación cuadro.x /*Nombre archivo cuadro.x */ program CUADRO_PROG version CUADRO_VERS int PERIMETRO(int) = 1; double AREA(int) = 2; = 1; = 0x ; Dr. Roberto Gómez C. Diapo. No

20 Números de programas remotos Rango (hexadecimal) Administrador Tiempo de vida Distribución FFFFFFF Sun Permanente Pública FFFFFFF Local Desconocido Local FFFFFFF Desarrollador Temporal Local FFFFFFF Reservado FFFFFFF Reservado A BFFFFFFF Reservado C DFFFFFFF Reservado E FFFFFFFF Reservado Dr. Roberto Gómez C. Diapo. No. 39 Sintáxis del rpcgen rpcgen infile rpcgen [ -a ] [ -A ] [ -b ] [ -C ] [-D name [ = value] ] [ -i size ] [ -I [ -K seconds ] ] [ -L ] [ -M ] [ -N ] [ -T ] [ -Y pathname ] infile rpcgen [ -c -h -m -t -Sc - Ss -Sm ] [ -o outfile ] [ infile ] rpcgen [ -s nettype ] [ -o outfile ] [ infile] rpcgen [ -n netid ] [ -o outfile ] [ infile ] Dr. Roberto Gómez C. Diapo. No

21 Opciones rpcgen -Dnombre[=valor] Define un símbolo (igual que #define) -I Genera un código para soporte de inted en el servidor (SunOS 4.1) -K segundos Servidor existe después de segundos de inactividad -L Los errores del servidor serán impresos en el syslog -T Genera código para soportar tablas de atención de RPC -s transporte Genera el código del servidor que soporta el transporte -o archivo-salida Nombre del archivo de salida -c Sólo genera rutinas XDR -h Sólo genera el archivo de encabezado -l Sólo genera los stubs del cliente -m Sólo genera los stubs del servidor -t Genera la tabla de atención de RPC -a Genera todos los archivos -b Modo backward de compatibilidad (genera código para SunOS4.1) -C Genera lenguaje C de ANSI -i tamaño Tamaño a partir del cual se empieza a generar código in-line -N Soporta varios argumentos y llamado por valor -Sc Genera esqueleto cliente que usa procedimientos remotos -Ss Genera esqueleto servidor que define los procedimientos remotos -Y path Nombre del directorio para encontrar pre-procesadores de C (cpp) Dr. Roberto Gómez C. Diapo. No. 41 Archivos generados por rpcgen Comando a ejecutar Archivos generados $ rpcgen -C -a cuadro.x makefile.cuadro makefile para compilar el código del cliente y del servidor. cuadro_clnt.c contiene el stub del cliente, el cual usualmente no es modificado. cuadro_svc.c contiene stub servidor cuadro.h contiene todos los tipos XDR generados a partir de la espcecificación. Dr. Roberto Gómez C. Diapo. No

22 Archivos generados por rpcgen cuadro_client.cclient c programa esqueleto del cliente con llamadas dummy al servicio remoto. Inserta código para asignar los valores de los argumentos para el servicio remoto. cuadro_server.c contiene stubs para servicios remotos. Inserta código para la versión local dentro de los stubs. cuadro_xdr.c contiene filtros XDR necesarios para los stubs del cliente y servidor. Dr. Roberto Gómez C. Diapo. No. 43 Archivos generados por rpcgen del archivo cuadro.x cuadro_ server.c cuadro_svc.c archivos servidor cuadro_xdr.c cuadro.x rpcgen cuadro.h archivos comunes makefile.cuadro cuadro_clnt.c cuadro_client.c archivos cliente Dr. Roberto Gómez C. Diapo. No

23 Paso III Insertar código en archivos generados por rpcgen Dr. Roberto Gómez C. Diapo. No. 45 Programa cuadro_client.c generado por rpcgen /* * This is sample code generated by rpcgen. * These are only templates and you can use them * as a guideline for developing your own functions. */ #include "cuadro.h" void cuadro_prog_1(char *host) CLIENT *clnt; int *result_1; int perimetro_1_arg; double *result_2; int area_1_arg; Dr. Roberto Gómez C. Diapo. No

24 #ifndef DEBUG clnt = clnt_create (host, CUADRO_PROG, CUADRO_VERS, "udp"); if (clnt == NULL) clnt_pcreateerror (host); exit (1); #endif /* DEBUG */ result_1 = perimetro_1(&perimetro_1_arg, clnt); if (result_1 == (int *) NULL) clnt_perror (clnt, "call failed"); result_2 = area_1(&area_1_arg, clnt); if (result_2 == (double *) NULL) clnt_perror (clnt, "call failed"); #ifndef DEBUG clnt_destroy (clnt); #endif /* DEBUG */ Dr. Roberto Gómez C. Diapo. No. 47 int main (int argc, char *argv[]) char *host; if (argc < 2) printf ("usage %s server_host\n", argv[0]); exit (1); host = argv[1]; cuadro_prog_1 (host); exit (0); Dr. Roberto Gómez C. Diapo. No

25 #include "cuadro.h" Versión final del programa cuadro_client.c int main (int argc, char *argv[]) CLIENT *clnt; char *host; int a; int *per; double *sup; if (argc!=3 ) fprintf(stderr,"error, uso %s a host \n",argv[0]); exit(1); a = atoi(argv[1]); host = argv[2]; Dr. Roberto Gómez C. Diapo. No. 49 clnt = clnt_create (host, CUADRO_PROG, CUADRO_VERS, "udp"); if (clnt == NULL) clnt_pcreateerror (host); exit (1); per = perimetro_ 1(&a, clnt); if (per == (int *) NULL) clnt_perror (clnt, "call failed"); sup = area_1(&a, clnt); if (sup == (double *) NULL) clnt_perror (clnt, "call failed"); printf("el perimetro del cuadrado es %d \n",*per); printf("el area del cuadrado es %d \n",*sup); clnt_destroy(clnt); Dr. Roberto Gómez C. Diapo. No

26 Archivo esqueleto de cuadro_server.c generado por rpcgen #include "cuadro.h" int * perimetro_1_svc(int *argp, struct svc_req *rqstp) static int result; /* * insert server code here */ return &result; double * area_1_svc(int *argp, struct svc_req *rqstp) static double result; /* * insert server code here */ return &result; Dr. Roberto Gómez C. Diapo. No. 51 #include "cuadro.h" Versión final del programa servidor int * perimetro_1_svc(int *argp, struct svc_req *rqstp) static int result; result = 4* (*argp); return &result; double * area_1_svc(int *argp, struct svc_req *rqstp) static double result; result = (*argp) * (*argp); return &result; Dr. Roberto Gómez C. Diapo. No

27 Paso IV Compilando y ejecutando los programas Dr. Roberto Gómez C. Diapo. No Usar makefile generado por rpcgen rogomez@costarica281>make -f makefile.cuadro cc g -c cuadro_clnt.c -o cuadro_clnt.o cc -g -c cuadro_client.c -o cuadro_client.o cc -g -o cuadro_client cuadro_clnt.o cuadro_client.o -lnsl cc -g -c cuadro_svc.c -o cuadro_svc.o cc -g -c cuadro_server.c -o cuadro_server.o cc -g -o cuadro_server cuadro_svc.o cuadro_server.o -lnsl rogomez@costarica282> 2. Se producen dos archivosejecutables cuadro_client y cuadro_server Dr. Roberto Gómez C. Diapo. No

28 2. Registrando al servidor de generación de números aleatorios -aux grep cuadro rogomez pts/4 R grep cuadro rogomez ? S cuadro_server rogomez@costarica284> 3. Ejecutando el programa cliente rogomez@cuba26>cuadro_client costarica 5 El perimetro del cuadrado es 20 El area del cuadrado es 25 rogomez@cuba27>cuadro_client client costarica 2 El perimetro del cuadrado es 8 El area del cuadrado es 4 rogomez@cuba28> Dr. Roberto Gómez C. Diapo. No. 55 Ejemplos de códigos de stub Dr. Roberto Gómez C. Diapo. No

29 Ejemplo de archivo stub-cliente cuadro-clnt.c /* * Please do not edit this file. * It was generated using rpcgen. */ #include <memory.h> /* for memset */ #include "cuadro.h" /* Default timeout can be changed using clnt_control() */ static struct timeval TIMEOUT = 25, 0 ; Dr. Roberto Gómez C. Diapo. No. 57 int * perimetro_1(int *argp, CLIENT *clnt) static int clnt_res; memset((char *)&clnt_res, 0, sizeof(clnt_res)); if (clnt_call (clnt, PERIMETRO, (xdrproc_t) xdr_int, (caddr_t) argp, (xdrproc_t) xdr_int, (caddr_t) &clnt_res, TIMEOUT)!= RPC_SUCCESS) return (NULL); return (&clnt_res); Dr. Roberto Gómez C. Diapo. No

30 double * area_1(int *argp, CLIENT *clnt) static double clnt_ res; memset((char *)&clnt_res, 0, sizeof(clnt_res)); if (clnt_call (clnt, AREA, (xdrproc_t) xdr_int, (caddr_t) argp, (xdrproc_t) xdr_double, (caddr_t) &clnt_res, TIMEOUT)!= RPC_SUCCESS) return (NULL); return (&clnt_res); Dr. Roberto Gómez C. Diapo. No. 59 Ejemplo archivo stub-servidor cuadro_svc.c /* * Please do not edit this file. * It was generated using rpcgen. */ #include "cuadro.h" #include <stdio.h> #include <stdlib.h> static void cuadro_prog_1(struct svc_req *rqstp, register SVCXPRT *transp) union int perimetro_1_arg; int area_1_arg; argument; char *result; xdrproc_t _xdr_argument, _xdr_result; char *(*local)(char *, struct svc_req *); Dr. Roberto Gómez C. Diapo. No

31 switch (rqstp->rq_proc) case NULLPROC (void) svc_sendreply (transp, (xdrproc_t) xdr_void, (char *)NULL); return; case PERIMETRO _xdr_argument = (xdrproc_t) xdr_int; _xdr_result = (xdrproc_t) xdr_int; local = (char *(*)(char *, struct svc_req *)) perimetro_1_svc; break; case AREA _xdr_argument = (xdrproc_t) xdr_int; _xdr_result = (xdrproc_t) xdr_double; local = (char *(*)(char *, struct svc_req *)) area_1_svc; break; Dr. Roberto Gómez C. Diapo. No. 61 int main (int argc, char **argv) register SVCXPRT *transp; if (!svc_register(transp, CUADRO_PROG, CUADRO_VERS, cuadro_prog_1, IPPROTO_UDP)) fprintf (stderr, "%s", "unable to register (CUADRO_PROG, CUADRO_VERS, udp)."); exit(1); svc_run (); fprintf (stderr, "%s", "svc_run returned"); exit (1); /* NOTREACHED */ Dr. Roberto Gómez C. Diapo. No

32 Ejemplo archivo encabezado cuadro.h /* * Please do not edit this file. * It was generated using rpcgen. */ #ifndef _CUADRO_H_RPCGEN #define _CUADRO_H_RPCGEN #include <rpc/rpc.h> #ifdef cplusplus extern "C" #endif #define CUADRO_PROG 0x #define CUADRO_VERS 1 Dr. Roberto Gómez C. Diapo. No. 63 Ejemplo archivo encabezado cuadro.h #if defined( STDC ) defined( cplusplus) #define PERIMETRO 1 extern int * perimetro_1(int *, CLIENT *); extern int * perimetro_1_svc(int *, struct svc_req *); #define AREA 2 extern double * area_1(int *, CLIENT *); extern double * area_1_svc(int *, struct svc_req *); extern int cuadro_prog_1_freeresult (SVCXPRT *,xdrproc_t,caddr_t); #else /* K&R C */ #define PERIMETRO 1 extern int * perimetro_1(); extern int * perimetro_1_svc(); #define AREA 2 extern double * area_1(); extern double * area_1_svc(); extern int cuadro_prog_1_freeresult (); #endif /* K&R C */ Dr. Roberto Gómez C. Diapo. No

33 Llamadas con más de un parámetro problemas y soluciones Dr. Roberto Gómez C. Diapo. No. 65 Ejemplo aplicación solución ecuaciones 2do. grado a,b,c res1 = raiz(a,b,c) res2 = complejo(a,b,c) r1, r2 real, imag b b ac res = ± 4 2 a 2 b b ac complex = ( 4 ) ± j 2 a 2 a 2 Dr. Roberto Gómez C. Diapo. No

34 Diseño del servicio a nivel local Código del servidor Código del cliente Contenido del archivo encabezado Compilación y ejecución Dr. Roberto Gómez C. Diapo. No. 67 #include "encabeza.h" Servidor Local struct raiz resuelve(a,b,c) float a,b,c; int temp; struct raiz res; res.error=0; temp = (b*b) - (4*a*c); if (temp < 0) res.error=1; else res.r1 = (-b + sqrt((double)temp)) / (2*a); res.r2 = (-b - sqrt((double)temp)) / (2*a); return res; struct complex complejo(a,b,c) float a,b,c; float temp; struct complex res; temp = (b*b) - (4*a*c); res.real = (-b)/(2*a); res.imag = (temp)/(2*a); ( ); return(res); Dr. Roberto Gómez C. Diapo. No

35 Cliente Local #include "encabeza.h" main(argc, argv) int argc; char *argv[]; struct complex rescom; struct raiz result; float a,b,c; if (argc!= 4) fprintf(stderr,"error, uso %s a b c\n", argv[0]); exit(1); result=resuelve(a,b,c); if (! result.error ) printf("la solucion de (%.1f %.1f %.1f)\n",a,b,c); printf("es %.5f y %.5f\n",result.r1, result.r2); else rescom=complejo(a,b,c); printf("la solucion de (%.1f %.1f %.1f)\n",a,b,c); printf("es (%.5f %.5fj) y (%.5f %.5fj)\n", rescom.real, rescom.imag, rescom.real, (-1)*rescom.imag); a=(float)atoi(argv[1]); b=(float)atoi(argv[2]); c=(float)atoi(argv[3]); Dr. Roberto Gómez C. Diapo. No. 69 Archivo de encabezado local #include <stdio.h> #include <math.h> struct raiz float r1; float r2; int error; ; struct complex float real; float imag; ; Dr. Roberto Gómez C. Diapo. No

36 Compilando y ejecutando rogomez@armagnac156>cc cliente.c servicio.c -lm -o toto rogomez@armagnac157>toto 157>tt La solucion de ( ) es ( j) y ( j) rogomez@armagnac158>toto La solucion de ( ) es y rogomez@armagnac159>toto La solucion de ( ) es ( j) y ( j) rogomez@armagnac160>toto La solucion de ( ) es ( j) y ( j) rogomez@armagnac161> Dr. Roberto Gómez C. Diapo. No. 71 Diseño del sistema a nivel remoto Especificación del archivo raiz.x Compilación con rpcgen Reescritura del archivo servidor remoto Reescritura del archivo cliente remoto Compilación y ejecución Dr. Roberto Gómez C. Diapo. No

37 Archivo especificación raiz.x struct datos float a; float b; RAIZ PROG float c; ; struct raiz float r1; float r2; int error; ; struct complex float real; float imag; ; program RAIZ_PROG version RAIZ_VERS struct raiz RESUELVE(datos) = 1; struct complex COMPLEJO(datos) = 2; = 1; = 0x ; Dr. Roberto Gómez C. Diapo. No. 73 Esqueleto del servidor #include "raiz.h" #include <stdio.h> #include <stdlib.h> /* getenv, exit */ struct complex * #include <signal.h> complejo_1_svc(datos lj (dt *argp, struct svc_req *rqstp) struct raiz * resuelve_1_svc(datos *argp, struct svc_req *rqstp) static struct raiz result; /* * insert server code here */ static struct complex result; /* * insert server code here */ return (&result); return (&result); Dr. Roberto Gómez C. Diapo. No

38 Servidor remoto #include "raiz.h" struct raiz * resuelve_1_svc(datos *argp, struct svc_req *rqstp) static struct raiz res; int temp; res.error=0; temp = (argp->b*argp->b) - (4*argp->a*argp->c); if (temp < 0) res.error=1; else res.r1=(-argp->b + sqrt((double)temp))/ (2*argp->a); res.r2=(-argp->b - sqrt((double)temp))/(2*argp->a); return (&res); struct complex * complejo_1_svc(datos lj (dt *argp, struct t svc_req *rqstp) t) static struct complex res; float temp; temp = (argp->b*argp->b) - (4*argp->a*argp->c); res.real = (-argp->b)/(2*argp->a); res.imag = (temp)/(2*argp->a); return (&res); Dr. Roberto Gómez C. Diapo. No. 75 Esqueleto del cliente #include "raiz.h" #include <stdio.h> #include <stdlib.h> /* getenv, exit */ void raiz_prog_1(char *host) CLIENT *clnt; struct raiz *result_1; datos resuelve_1_arg; struct complex *result_2; datos complejo_1_arg; #ifndef DEBUG clnt = clnt_create(host, RAIZ_PROG, RAIZ_VERS, "netpath"); if (clnt == (CLIENT *) NULL) clnt_pcreateerror(host); exit(1); #endif /* DEBUG */ Dr. Roberto Gómez C. Diapo. No

39 #ifndef result_1 = resuelve_1(&resuelve_1_arg, clnt); if (result_1 == (struct raiz *) NULL) clnt_perror(clnt, "call failed"); result_2 = complejo_1(&complejo_1_arg, clnt); if (result _ 2 == (struct complex *) NULL) ) clnt_perror(clnt, "call failed"); DEBUG clnt_destroy(clnt); #endif /* DEBUG */ main(int argc, char *argv[]) char *host; if (argc < 2) host = argv[1]; raiz_prog_1(host); printf("usage %s server_host\n", argv[0]); exit(1); Dr. Roberto Gómez C. Diapo. No. 77 Cliente remoto #include "raiz.h" CLIENT *clnt; struct raiz *raices; datos data; struct complex *rescom; main(argc, argv) int argc; g; char *argv[]; char *host; if (argc!=5) printf("uso %s host a b c \n", argv[0]); exit(1); host = argv[1]; data.a =(float)atoi(argv[2]); data.b =(float)atoi(argv[3]); data.c =(float)atoi(argv[4]); clnt = clnt_create(host, RAIZ_PROG, RAIZ_VERS, "netpath"); if (clnt == (CLIENT *) NULL) clnt_pcreateerror(host); exit(1); raices = resuelve_1(&data, clnt); if (raices == (struct raiz *) NULL) clnt_perror(clnt, "call failed"); Dr. Roberto Gómez C. Diapo. No

40 if (! raices->error ) printf("la solucion de (%.1f %.1f %.1f)\n",data.a,data.b,data.c); printf("es %.5f y %.5f\n",raices->r1, raices->r2); else rescom = complejo_1(&data, clnt); if (rescom == (struct complex *) NULL) clnt_perror(clnt, "call failed"); printf("la solucion de (%.1f %.1f %.1f)\n",data.a,data.b,data.c); printf("es (%.5f %.5fj) y (%.5f %.5fj)\n",rescom->real, rescom->imag, rescom->real, (-1)*(rescom->imag)); clnt_destroy(clnt); Dr. Roberto Gómez C. Diapo. No. 79 Compilación rogomez@costarica81> make -f makefile.raiz cc -g -c raiz_clnt.c -o raiz_clnt.o cc -g -c raiz_client.c c -o raiz_client.o cc -g -c raiz_xdr.c -o raiz_xdr.o cc -g -o raiz_client raiz_clnt.o raiz_client.o raiz_xdr.o -lnsl cc -g -c raiz_svc.c -o raiz_svc.o cc -g -c raiz_server.c -o raiz_server.o raiz_server.c In function `resuelve_1_svc' raiz_server.c20 warning type mismatch in implicit declaration for built-in function `sqrt' cc -g -o raiz_server raiz_svc.o raiz_server.o raiz_xdr.o -lnsl Undefined first referenced symbol in file sqrt raiz_server.o ld fatal Symbol referencing errors. No output written to raiz_server make *** [raiz_server] Error 1 [1] - Done /usr/4local/bin/xvile raiz.x rogomez@costarica82> Dr. Roberto Gómez C. Diapo. No

41 Makefile generado por rpcgen # This is a template makefile generated by rpcgen # Parameters CLIENT = raiz_client SERVER = raiz_server SOURCES_CLNT.c = SOURCES_CLNT.h = SOURCES_SVC.c = SOURCES_SVC.h = SOURCES.x = raiz.x TARGETS_SVC.c = raiz_svc.c raiz_server.c raiz_xdr.c TARGETS_CLNT.c = raiz_clnt.c raiz_client.c raiz_xdr.c TARGETS = raiz.h raiz_xdr.c raiz_clnt.c raiz_svc.c raiz_client.c raiz_server.c OBJECTS_CLNT = $(SOURCES_CLNT.c%.c=%.o) $(TARGETS_CLNT.c%.c=%.o) OBJECTS_SVC = $(SOURCES_SVC.c%.c=%.o) $(TARGETS_SVC.c%.c=%.o) # Compiler flags CFLAGS += -g LDLIBS += -lnsl -lm RPCGENFLAGS = Dr. Roberto Gómez C. Diapo. No. 81 Compilando de nuevo rogomez@costarica82>!ma make -f makefile.raiz cc -g -o raiz_server raiz_svc.o raiz_server.o raiz_xdr.o -lnsl -lm rogomez@costarica83> Dr. Roberto Gómez C. Diapo. No

42 Ejecución máquina servidor Ejecución máquina cliente cuba La solucion de ( ) es ( j) y ( j) rogomez@costarica85>raiz_client cuba La solucion de ( ) es y rogomez@costarica86>raiz_client i cuba La solucion de ( ) es ( j) y ( j) rogomez@costarica87>raiz_client cuba La solucion de ( ) es ( j) y ( j) rogomez@costarica88>raiz_client cuba La solucion de ( ) es ( j) y ( j) rogomez@costarica89>raiz_client client cuba La solucion de ( ) es y rogomez@costarica90>raiz_client cuba La solucion de ( ) es y Dr. Roberto Gómez C. Diapo. No

SOR -::- Prácticas -::- Curso 05/06. RCP es un estándar desarrollado por Sun Microsystems y usado por muchos distribuidores de sistemas UNIX.

SOR -::- Prácticas -::- Curso 05/06. RCP es un estándar desarrollado por Sun Microsystems y usado por muchos distribuidores de sistemas UNIX. RPC RCP es un estándar desarrollado por Sun Microsystems y usado por muchos distribuidores de sistemas UNIX. El RPC es una interfaz de programación de aplicación (API) disponible para el desarrollo de

Más detalles

RPC. Llamadas a Procedimientos Remotos (RPC) Paradigmas. Conceptos. Modelo Conceptual

RPC. Llamadas a Procedimientos Remotos (RPC) Paradigmas. Conceptos. Modelo Conceptual Llamadas a Procedimientos Remotos (RPC) Basado en el libro Internetworking with TCP/IP. Vol III. D. E Comer y D. Stevens Algunas Ilustraciones se tomaron de Practical Unix Programming. K. Robbins y Robbins

Más detalles

RPC. ONC (Open Network Compu2ng) n Ru2nas para la conversión de datos XDR. n XDR maneja estructuras complejas n Herramienta de generación de programas

RPC. ONC (Open Network Compu2ng) n Ru2nas para la conversión de datos XDR. n XDR maneja estructuras complejas n Herramienta de generación de programas 3-1.- Linux RPC RPC ONC (Open Network Compu2ng) n Ru2nas para la conversión de datos XDR n XDR maneja estructuras complejas n Herramienta de generación de programas 2 Proceso de programación RPC n Programación

Más detalles

EJERCICIOS PRÁCTICOS: LLAMADAS A PROCEDIMIENTOS REMOTOS

EJERCICIOS PRÁCTICOS: LLAMADAS A PROCEDIMIENTOS REMOTOS EJERCICIOS PRÁCTICOS: LLAMADAS A PROCEDIMIENTOS REMOTOS El objetivo de estos ejercicios es familiarizarse con la programación de servicios utilizando RPCs. A continuación se incluye una guía de programación

Más detalles

LENGUAJE. Tema 1 - Introducción

LENGUAJE. Tema 1 - Introducción LENGUAJE Tema 1 - Introducción HISTORIA DEL LENGUAJE C El lenguaje de programación C fue creado por Dennis Ritchie cuando trabajaba en Bell Laboratories de AT&T junto con Ken Thompson en el diseño del

Más detalles

Llamadas a Procedimientos Remotos (RPC) INTRODUCCIÓN

Llamadas a Procedimientos Remotos (RPC) INTRODUCCIÓN Llamadas a Procedimientos Remotos (RPC) INTRODUCCIÓN Sistema de Procesamiento Distribuido: Conjunto de computadoras conectadas en red que le dan la sensación al usuario de ser una sola computadora Ventajas:

Más detalles

Construcción de un servidor de archivos remoto

Construcción de un servidor de archivos remoto Práctica 4: Construcción de un servidor de archivos remoto Objetivo de la práctica: Construir un sencillo servidor de archivos en red sin estado utilizando (RPC) Llamadas a Procedimiento Remoto mediante

Más detalles

Tema 4: INVOCACIÓN REMOTA

Tema 4: INVOCACIÓN REMOTA Tema 4: INVOCACIÓN REMOTA E. U. Informática en Segovia Departamento de Informática Universidad de Valladolid SD_TE04_20050509 EUI-SG/INFOR.UVA.ES 1 4.1 Introducción Invocación remota: integra programas

Más detalles

Lección 8 Introducción a las llamadas a procedimientos remotos (RPC) Universidad de Oviedo / Dpto. de Informática

Lección 8 Introducción a las llamadas a procedimientos remotos (RPC) Universidad de Oviedo / Dpto. de Informática Lección 8 Introducción a las llamadas a procedimientos remotos (RPC) Objetivo Extender a los sistemas distribuidos el mecanismo de llamadas a procedimientos y subrutinas de los lenguajes de programación.

Más detalles

2.3 Llamada a procedimientos remotos (RPC)

2.3 Llamada a procedimientos remotos (RPC) 2.3 Llamada a procedimientos remotos (RPC) (a) Concepto y objetivos Idea: Ocultar/abstraer los detalles relativos a la comunicación que son comunes a diversas aplicaciones Gestión de los diálogos petición-respuesta

Más detalles

Introduccion al Lenguaje C. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia

Introduccion al Lenguaje C. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia Introduccion al Lenguaje C Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia Introducción C es un lenguaje de programación creado en 1972 por

Más detalles

Se guardan en archivos con extencion c y los cabezales con extension h

Se guardan en archivos con extencion c y los cabezales con extension h Se guardan en archivos con extencion c y los cabezales con extension h Tipos de Variables: Tipo Tamaño(bytes) Limite inferior Limite superior char 1 -- -- unsigned char 1 0 255 short int 2-32768 +32767

Más detalles

EL MODELO DE ESTRATIFICACIÓN POR CAPAS DE TCP/IP DE INTERNET

EL MODELO DE ESTRATIFICACIÓN POR CAPAS DE TCP/IP DE INTERNET 1 EL MODELO DE ESTRATIFICACIÓN POR CAPAS DE TCP/IP DE INTERNET Cada capa de la pila añade a los datos a enviar a la capa inferior, información de control para que el envío sea correcto. Esta información

Más detalles

Sistemas Operativos Distribuidos

Sistemas Operativos Distribuidos Fundamento de las RPC RPC: Llamada a procedimiento remoto RPC de Sun/ONC Cliente Cliente msg send(msg) rpy receive(rpy) Paso de mensajes (visión de bajo nivel) x=buscar(1556)? receive(msg) send(rpy) int

Más detalles

Tema 5: Diseño modular. Índice. Notas. Programación 2. Curso 2014-2015. Notas. Ejemplo. La herramienta make. 1 Diseño modular.

Tema 5: Diseño modular. Índice. Notas. Programación 2. Curso 2014-2015. Notas. Ejemplo. La herramienta make. 1 Diseño modular. : Programación 2 Curso 2014-2015 Índice 1 2 3 (1/2) Cuando el programa crece es necesario dividirlo en módulos Cada módulo agrupa una serie de funciones con algo en común El módulo puede reutilizarse en

Más detalles

VARIABLES, CONSTANTES Y EXPRESIONES ASIGNACIÓN. TIPOS ELEMENTALES. PRECEDENCIA DE LOS ESTRUCTURAS DE CONTROL. CONDICIONAL E

VARIABLES, CONSTANTES Y EXPRESIONES ASIGNACIÓN. TIPOS ELEMENTALES. PRECEDENCIA DE LOS ESTRUCTURAS DE CONTROL. CONDICIONAL E Java Java es un lenguaje de programación presentado en 1995 enfocado a: soportar los fundamentos de la programación orientada a objetos. generar código independiente de la arquitectura de la computadora

Más detalles

El lenguaje de Programación C. Fernando J. Pereda <ferdy@gentoo.org>

El lenguaje de Programación C. Fernando J. Pereda <ferdy@gentoo.org> El lenguaje de Programación C Fernando J. Pereda Por qué aprender C? Portable y muy extendido Estándar (C89, C99) El lenguaje de los sistemas Un lenguaje fácil (no, no es broma) Por

Más detalles

Identificadores, palabras reservadas, tipos de datos, operadores aritméticos y el sistema estándar de salida en Java

Identificadores, palabras reservadas, tipos de datos, operadores aritméticos y el sistema estándar de salida en Java Identificadores, palabras reservadas, tipos de datos, operadores aritméticos y el sistema estándar de salida en Java Identificadores Las variables se utilizan en programación para almacenar temporalmente

Más detalles

Sistemas Informáticos Industriales

Sistemas Informáticos Industriales Escuela Técnica Superior de Ingeniería y Diseño Industrial Universidad Politécnica de Madrid Llamadas a Procedimientos Remotos (RPC) Sistemas Informáticos Industriales 2017/2018 Raquel CEDAZO LEÓN

Más detalles

RPC: Llamada a procedimiento remoto

RPC: Llamada a procedimiento remoto RPC: Llamada a procedimiento remoto RPC de Sun/ONC Índice Introducción Arquitecturas de comunicación Cliente-servidor Peer-to-peer Paso de mensajes Comunicación punto a punto Comunicación de grupo Llamadas

Más detalles

DISEÑO DE UNA ARQUITECTURA CLIENTE/SERVIDOR MEDIANTE OBJETOS DISTRIBUIDOS EN JAVA

DISEÑO DE UNA ARQUITECTURA CLIENTE/SERVIDOR MEDIANTE OBJETOS DISTRIBUIDOS EN JAVA DISEÑO DE UNA ARQUITECTURA CLIENTE/SERVIDOR MEDIANTE OBJETOS DISTRIBUIDOS EN JAVA José Luis Pastrana Brincones (pastrana@lcc.uma.es) Dpto. Lenguajes y Ciencias de la Computación. Universidad de Málaga

Más detalles

Práctica de gsoap. int ns enviar (unsigned nodo, std::string cadena, std::string &resultado); int ns recibir(unsigned nodo, std::string &resultado);

Práctica de gsoap. int ns enviar (unsigned nodo, std::string cadena, std::string &resultado); int ns recibir(unsigned nodo, std::string &resultado); Práctica de gsoap Para desarrollar programas que utilicen gsoap para llevar a cabo las comunicaciones, debemos bajar el paquete gsoap linux 2.7.tgz disponible en: http://atc.ugr.es/pedro/docencia/irhc/irhc.html

Más detalles

Objetivo de aprendizaje del tema

Objetivo de aprendizaje del tema Computación II Tema 3. Identificadores, palabras clave y tipos de datos Objetivo de aprendizaje del tema Al finalizar el tema serás capaz de: Distinguir i entre modificadores d válidos y no válidos. Enumerar

Más detalles

Real Time Workshop (RTW)

Real Time Workshop (RTW) Real Time Workshop (RTW) Laboratorio de Automatización - UNQ Pág. 1 RTW Simulación de algoritmos en tiempo real. Modelo del Controlador. Modelo de la Planta. Pasos para crear un algoritmo en tiempo real:

Más detalles

Tecnólogo Informático- Estructuras de Datos y Algoritmos- 2009

Tecnólogo Informático- Estructuras de Datos y Algoritmos- 2009 Árboles Ejemplos de estructuras arborescentes: con forma de árbol Regla de Alcance: los objetos visibles en un procedimiento son aquellos declarados en él mismo o en cualquier ancestro de él (cualquier

Más detalles

Un Ejemplo: RPC de Sun

Un Ejemplo: RPC de Sun El Modelo de las RPC Desarrollado en 1990 para soportar el modelo cliente-servidor de NFS Stub del Cliente Un Ejemplo: RPC de Sun Definición del servicio en XDR Unix - NFS PC-NFS... Compilador de Interfaces

Más detalles

PRÁCTICA DE LABORATORIO 3 Tipo Abstrato de Dato

PRÁCTICA DE LABORATORIO 3 Tipo Abstrato de Dato ESCUELA DE INGENIERÍA DE SISTEMAS DEPARTAMENTO DE COMPUTACIÓN PROGRAMACIÓN 2 PRÁCTICA DE LABORATORIO 3 Tipo Abstrato de Dato Contenido Introducción...1 Dato...1 Valor...1 Tipo de Dato...2 Tipo Abstracto

Más detalles

TEMA 3: EL LENGUAJE C: PRESENTACIÓN

TEMA 3: EL LENGUAJE C: PRESENTACIÓN TEMA 3: EL LENGUAJE C: PRESENTACIÓN Historia del lenguaje C Características del lenguaje C Estructura de un programa en C El editor de textos: elementos Funciones: de usuario y de librería Librerías de

Más detalles

Tema 6 Llamadas a procedimientos remotos

Tema 6 Llamadas a procedimientos remotos Tema 6 Llamadas a procedimientos remotos F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García Sistemas Distribuidos Grado en Ingeniería Informática Universidad Carlos III

Más detalles

Universidad de Pamplona Materia: Programación 1 Docente: Ing. Lusbin Raúl Vargas LENGUAJE C ESTRUCTURA DE UN PROGRAMA EN C

Universidad de Pamplona Materia: Programación 1 Docente: Ing. Lusbin Raúl Vargas LENGUAJE C ESTRUCTURA DE UN PROGRAMA EN C Universidad de Pamplona Materia: Programación 1 Docente: Ing. Lusbin Raúl Vargas LENGUAJE C ESTRUCTURA DE UN PROGRAMA EN C Directivas del procesador Main() { Declaraciones Definiciones proposiciones }

Más detalles

RPC Llamadas a Procedimientos Remotos

RPC Llamadas a Procedimientos Remotos RPC Llamadas a Procedimientos Remotos TABLA DE CONTENIDO 1.INTRODUCCIÓN... 3 2.GENERALIDADES... 3 3.CARACTERÍSTICAS DE TRANSPARENCIA... 6 3.1.PASE DE PARÁMETROS... 7 3.2.ENLACE... 7 3.3.PROTOCOLO DE TRANSPORTE...

Más detalles

1. Manejo de memoria estática 2. Manejo de memoria dinámica

1. Manejo de memoria estática 2. Manejo de memoria dinámica 1. Manejo de memoria estática 2. Manejo de memoria dinámica *La administración de memoria de una computadora es una tarea fundamental debido a que la cantidad de memoria es limitada. *El sistema operativo

Más detalles

1. Visión general de RMI

1. Visión general de RMI 1. Visión general de RMI Java RMI permite al programador ejecutar métodos de objetos remotos utilizando la misma semántica que si fueran invocaciones locales (Véase Figura 1). Máquina Local (Cliente) Máquina

Más detalles

Los bloques DLL (Figura A.1) externos permiten al usuario escribir su propio código y

Los bloques DLL (Figura A.1) externos permiten al usuario escribir su propio código y Apéndice A Bloques DLL Los bloques DLL (Figura A.1) externos permiten al usuario escribir su propio código y programarlo en lenguaje C, compilarlo dentro de un archivo DLL usando el Microsoft C/C++ o el

Más detalles

CURSO de C++ Ignacio López

CURSO de C++ Ignacio López CURSO de C++ Ignacio López Introducción al lenguaje C++ Visión General Objetivos del Curso C++ Conceptos básicos de la programación orientada a objetos (OOP) Visión General I Curso de C++ Introducción

Más detalles

Elementos léxicos del lenguaje de programación Java

Elementos léxicos del lenguaje de programación Java Elementos léxicos del lenguaje de programación Java Elementos léxicos del lenguaje de programación Java Palabras reservadas Identificadores Literales Operadores Delimitadores Comentarios Apéndices Operadores

Más detalles

Informática I. Código 2547100 Semestre 2014-2. Para Ingeniería Electrónica e Ingeniería de Telecomunicaciones Profesor: Sebastián Isaza

Informática I. Código 2547100 Semestre 2014-2. Para Ingeniería Electrónica e Ingeniería de Telecomunicaciones Profesor: Sebastián Isaza Informática I Código 2547100 Semestre 2014-2 Para Ingeniería Electrónica e Ingeniería de Telecomunicaciones Profesor: Sebastián Isaza Programming tools Editor de texto (gedit, kate, vim, wordpad, etc):

Más detalles

ARQUITECTURA DE REDES Laboratorio

ARQUITECTURA DE REDES Laboratorio 1nsloo.cl ARQUITECTURA DE REDES Laboratorio Práctica 2: Ejercicios de aplicación de Sockets en C 1. OBJETIVOS. El objetivo de esta práctica es que el alumno llegue a conocer los principales conceptos relacionados

Más detalles

servicios. El API es definido al nivel de código fuente y proporciona el nivel de

servicios. El API es definido al nivel de código fuente y proporciona el nivel de GLOSARIO API Application Program -ming- Interface Es la interfaz por la cual una aplicación accede al sistema operativo u a otros servicios. El API es definido al nivel de código fuente y proporciona el

Más detalles

Escuela Politécnica Superior de Ingeniería Departamento de Ingeniería Informática

Escuela Politécnica Superior de Ingeniería Departamento de Ingeniería Informática Escuela Politécnica Superior de Ingeniería Departamento de Ingeniería Informática Fundamentos de la informática 2. Algoritmos, diagramas de flujo y pseudocódigo Contenido Algoritmos Diagramas de flujo

Más detalles

Punteros. Definición Un puntero es un dato que contiene una dirección de memoria.

Punteros. Definición Un puntero es un dato que contiene una dirección de memoria. Punteros Definición Un puntero es un dato que contiene una dirección de memoria. NOTA: Existe una dirección especial que se representa por medio de la constante NULL (definida en ) y se emplea

Más detalles

Sistemas de Operación II

Sistemas de Operación II Sistemas de Operación II Sistemas de Archivos Distribuidos Prof. Carlos Figueira Basado en material de Yudith Cardinale (USB) Andrew Tanembaum y Marteen van Steen Contenido Introducción Requisitos Aspectos

Más detalles

Problemas de Redes de Computadores. Conjunto de problemas 1

Problemas de Redes de Computadores. Conjunto de problemas 1 Problemas de Redes de Computadores. Ingeniería Técnica en Informática de Gestión Conjunto de problemas 1 Pregunta 1.1: Si configuro mi servidor Web para que no acepte conexiones desde la dirección IP 130.206.1.1,

Más detalles

Introducción a Java LSUB. 15 de enero de 2015 GSYC

Introducción a Java LSUB. 15 de enero de 2015 GSYC Introducción a LSUB GSYC 15 de enero de 2015 (cc) 2014 Laboratorio de Sistemas, Algunos derechos reservados. Este trabajo se entrega bajo la licencia Creative Commons Reconocimiento - NoComercial - SinObraDerivada

Más detalles

LENGUAJE ANSI C Guía de referencia

LENGUAJE ANSI C Guía de referencia Apéndice W2 LENGUAJE ANSI C Guía de referencia C.1. Elementos básicos de un programa El lenguaje C fue desarrollado en Bell laboratories para su uso en investigación y se caracteriza por un gran número

Más detalles

"Binary Diffing" visual en Linux con Radare2 "UNA IMAGEN DICEN MÁS QUE MIL PALABRAS"

Binary Diffing visual en Linux con Radare2 UNA IMAGEN DICEN MÁS QUE MIL PALABRAS "Binary Diffing" visual en Linux con Radare2 Binary Diffing o simplemente Bindiffing es una técnica utilizada para la visualización de código (mayormente en ensamblador) y así detectar patrones de conducta,

Más detalles

El lenguaje C: Elementos básicos del lenguaje

El lenguaje C: Elementos básicos del lenguaje Facultad de Ciencias Exactas, Ingeniería y Agrimensura Departamento de Sistemas e Informática Escuela de Electrónica Informática II El lenguaje C: Elementos básicos del lenguaje Este material debe utilizarse

Más detalles

Contenido. Capítulo 1. Introducción a lenguaje C 1

Contenido. Capítulo 1. Introducción a lenguaje C 1 Contenido Capítulo 1. Introducción a lenguaje C 1 Introducción... 2 Qué es un lenguaje de programación?... 2 Tipos de lenguajes de programación... 2 Introducción a lenguaje C... 2 Historia de lenguaje

Más detalles

Programación Orientada a Objetos con Java

Programación Orientada a Objetos con Java Programación Orientada a Objetos con Java M.C. Jorge Eduardo Ibarra Esquer jorgeeie@uabc.mx Sobrecarga de métodos Java permite la definición de dos o más métodos que tengan el mismo nombre, dentro de la

Más detalles

Práctica 2: Simón dice

Práctica 2: Simón dice Práctica 2: Simón dice Fecha de entrega: 31 de enero de 2016 0.- Descripción del juego (Wikipedia.org) Simon dice es un juego electrónico, creado por Ralph Baer, que consiste en reproducir una secuencia

Más detalles

El lenguaje C. #define MAX LINEA 1000 /* maximo tamanio de linea de entrada */

El lenguaje C. #define MAX LINEA 1000 /* maximo tamanio de linea de entrada */ Principios de Programación El lenguaje C 1. Variables locales y globales 1.1. Variables locales Las funciones permiten al programador modularizar un programa. Todas las variables declaradas en las definiciones

Más detalles

Dirección IP Binario Clase 145.32.59.24 200.42.129.16 14.82.19.54 163.10.200.5 224.1.1.25 10.1.1.25

Dirección IP Binario Clase 145.32.59.24 200.42.129.16 14.82.19.54 163.10.200.5 224.1.1.25 10.1.1.25 EXPLICAR Y JUSTIFICAR TODAS LAS RESPUESTAS Ejercicio 1. 1. Si no hay disponible un servidor DHCP, indicar qué parámetros de configuración tiene que introducir el administrador de un ordenador para que

Más detalles

Programación en MIPS

Programación en MIPS Programación en MIPS Programación en MIPS Camino típico: 1. Ensamblador de MIPS. Traduce instrucciones de lenguaje ensamblador a lenguaje de máquina. 2. Probar el código en un simulador de MIPS. 3. Correr

Más detalles

ATLAS MANUAL DE USUARIO DEL INSTALADOR INNO SETUP 5 Versión 1.0 UNIDAD DE ARQUITECTURA DE SOFTWARE DE APLICACIONES

ATLAS MANUAL DE USUARIO DEL INSTALADOR INNO SETUP 5 Versión 1.0 UNIDAD DE ARQUITECTURA DE SOFTWARE DE APLICACIONES ATLAS MANUAL DE USUARIO DEL INSTALADOR INNO SETUP 5 Versión 1.0 UNIDAD DE ARQUITECTURA DE SOFTWARE DE APLICACIONES Hoja de Control Título MANUAL DE USO DEL INSTALADOR INNO SETUP 5 Documento de Referencia

Más detalles

Fundamentos de la Programación

Fundamentos de la Programación Fundamentos de la Programación El Software Las operaciones que debe realizar el hardware son especificadas con una lista de instrucciones, llamadas programas o software. Dos grandes grupos de software

Más detalles

TEMA 5. CONTROL DE FLUJO DEL PROGRAMA. Sentencia Instrucción Expresión Operadores + Operandos Sintaxis: Sentencia ;

TEMA 5. CONTROL DE FLUJO DEL PROGRAMA. Sentencia Instrucción Expresión Operadores + Operandos Sintaxis: Sentencia ; TEMA 5. CONTROL DE FLUJO DEL PROGRAMA 5.1 Sentencias Una sentencia es una expresión seguida de un punto y coma. Sentencia Instrucción Expresión Operadores + Operandos Sintaxis: Sentencia ; El ; es obligatorio

Más detalles

Sistemas Operativos Práctica 3

Sistemas Operativos Práctica 3 Sistemas Operativos Práctica 3 Ing. Andrés Bustamante afbustamanteg@unal.edu.co Ingeniería de Sistemas Facultad de Ingeniería Universidad de la Amazonia 2009 1. Objetivo El objetivo de la práctica es que

Más detalles

EDITRAN/TR. Windows/Unix. Manual de referencia

EDITRAN/TR. Windows/Unix. Manual de referencia EDITRAN/TR Windows/Unix Manual de referencia INDRA 30 de octubre de 2014 ÍNDICE 1. INTRODUCCIÓN.... 1-1 2. INTERFAZ DE PROGRAMACIÓN.... 2-1 2.1. DESCRIPCION... 2-1 2.2. FUNCIONES DE ENVIO Y RECEPCION...

Más detalles

Sistemas Operativos I Manual de prácticas

Sistemas Operativos I Manual de prácticas Sistemas Operativos I Manual de prácticas Grupo de Sistemas Operativos (DSIC/DISCA) Práctica 3: Procesos POSIX ANTES DE EMPEZAR...... 2 PRÁCTICA 3: PROCESOS POSIX... 2 CREACIÓN DE PROCESOS MEDIANTE FORK...

Más detalles

Sistemas Operativos. Pedro Cabalar TEMA III. PROCESOS. Depto. de Computación Universidade da Coruña

Sistemas Operativos. Pedro Cabalar TEMA III. PROCESOS. Depto. de Computación Universidade da Coruña Sistemas Operativos Pedro Cabalar Depto. de Computación Universidade da Coruña TEMA III. PROCESOS. P. Cabalar Sistemas( Operativos Depto. de Computación Universidade Tema da Coruña III. Procesos ) 1 /

Más detalles

Introducción al Dev-C++

Introducción al Dev-C++ Introducción al Dev-C++ El Entorno de Desarrollo Dev-C++ http://www.bloodshed.net/devcpp.html Incluye todas las operaciones necesarias para crear o modificar un programa. Posee un editor, un compilador

Más detalles

Componentes de un S.O.

Componentes de un S.O. Componentes de un S.O. En Particular Minix está dividido en módulos 1) MicroKernel 2) Tareas E/S 3) Procesos Servidores 4) Procesos de Usuarios Son módulos independientes Para arquitectura FLYNN - SISD

Más detalles

Objetivos. Comprender el funcionamiento de Internet y los protocolos que la hacen funcionar

Objetivos. Comprender el funcionamiento de Internet y los protocolos que la hacen funcionar Internet Jorge Juan Chico , Julián Viejo Cortés 2011-14 Departamento de Tecnología Electrónica Universidad de Sevilla Usted es libre de copiar, distribuir y comunicar

Más detalles

EL MODELO DE ESTRATIFICACIÓN POR CAPAS DE TCP/IP DE INTERNET

EL MODELO DE ESTRATIFICACIÓN POR CAPAS DE TCP/IP DE INTERNET 1 EL MODELO DE ESTRATIFICACIÓN POR CAPAS DE TCP/IP DE INTERNET La familia de protocolos TCP/IP fue diseñada para permitir la interconexión entre distintas redes. El mejor ejemplo es Internet: se trata

Más detalles

Objetivos. El alumno conocerá los elementos indispensables de un ambiente de programación y será capaz de realizar programas básicos en lenguaje C.

Objetivos. El alumno conocerá los elementos indispensables de un ambiente de programación y será capaz de realizar programas básicos en lenguaje C. Objetivos El alumno conocerá los elementos indispensables de un ambiente de programación y será capaz de realizar programas básicos en lenguaje C. Al final de esta práctica el alumno podrá: 1. Decir cuáles

Más detalles

MPI es un estándar de programación en paralelo mediante paso de mensajes que permite crear programas portables y eficientes.

MPI es un estándar de programación en paralelo mediante paso de mensajes que permite crear programas portables y eficientes. Programación paralela en MPI MPI es un estándar de programación en paralelo mediante paso de mensajes que permite crear programas portables y eficientes. Introducción a MPI MPI fue creado en 1993 como

Más detalles

Preliminares. Tipos de variables y Expresiones

Preliminares. Tipos de variables y Expresiones Preliminares. Tipos de variables y Expresiones Felipe Osorio Instituto de Estadística Pontificia Universidad Católica de Valparaíso Marzo 5, 2015 1 / 20 Preliminares Computadoras desarrollan tareas a un

Más detalles

Comunicación en Sistemas Distribuidos

Comunicación en Sistemas Distribuidos Sistemas de Operación II Comunicación en Sistemas Distribuidos Prof. Carlos Figueira Basado en material de Yudith Cardinale (USB) Andrew Tanembaum y Marteen van Steen Contenido Protocolos de Comunicación

Más detalles

Modulo 1 El lenguaje Java

Modulo 1 El lenguaje Java Modulo 1 El lenguaje Java 13 - Codificación en Java Una de las grandes diferencias entre Java y Pascal en cuando a la codificación es que Java se trata de un lenguaje de los llamados case sensitive Esto

Más detalles

Ubuntu (Zesty Zapus) NOMBRE rpc rutinas de biblioteca para llamadas a procedimientos remotos

Ubuntu (Zesty Zapus) NOMBRE rpc rutinas de biblioteca para llamadas a procedimientos remotos NOMBRE rpc rutinas de biblioteca para llamadas a procedimientos remotos SINOPSIS Y DESCRIPCIÓN Estas rutinas permiten a los programas en C realizar llamadas a procedimientos en otras máquinas a través

Más detalles

Tema: Arreglos de Objetos en C++.

Tema: Arreglos de Objetos en C++. Programación II. Guía 5 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Arreglos de Objetos en C++. Objetivos Específicos Describir la implementación de arreglos de Objetos.

Más detalles

CAPITULO 3 MOVILIDAD EN LA NAVEGACIÓN Y ALMACENAMIENTO EN BASES DE DATOS

CAPITULO 3 MOVILIDAD EN LA NAVEGACIÓN Y ALMACENAMIENTO EN BASES DE DATOS CAPITULO 3 MOVILIDAD EN LA NAVEGACIÓN Y ALMACENAMIENTO EN BASES DE DATOS La introducción de las redes locales marca una nueva etapa en la evolución de las computadoras personales al permitir ligar varias

Más detalles

Tema: INTÉRPRETE ENSAMPOCO/3

Tema: INTÉRPRETE ENSAMPOCO/3 Compiladores. Guía 11 1 Facultad: Ingeniería Escuela: Computación Asignatura: Compiladores Tema: INTÉRPRETE ENSAMPOCO/3 Contenido En esta práctica se desarrollará un intérprete de lenguaje ENSAMPOCO/3

Más detalles

Examen Principios de Programación Febrero 2012

Examen Principios de Programación Febrero 2012 Por favor siga las siguientes indicaciones: Escriba con lápiz. Escriba su nombre y número de documento en todas las hojas que entregue. Numere las hojas e indique el total de hojas en la primera de ellas.

Más detalles

Introducción a C++ y Code::Blocks

Introducción a C++ y Code::Blocks Introducción a C++ y Práctica Imperativo Clase 1 Luis Agustín Nieto Departamento de Computación, FCEyN,Universidad de Buenos Aires. 28 de mayo de 2010 Menu de esta Tarde Funcional Vs. Imperativo (Intérprete

Más detalles

Práctica 2: Java Remote Method Invocation (RMI)

Práctica 2: Java Remote Method Invocation (RMI) Práctica 2: Java Remote Method Invocation (RMI) Aplicaciones Telemáticas II Introducción El objetivo de esta práctica es conocer un poco más sobre el paradigma de objetos remotos. La idea principal es

Más detalles

Introducción a la programación orientada a objetos

Introducción a la programación orientada a objetos Introducción a la programación orientada a objetos 1. Introducción a la programación orientada a objetos 2. Las clases 3. El tipo Struct 4. Diferencias entre Class y Struct 5. Pilares de la Programación

Más detalles

Listados y Etiquetas personalizados de PrefGest WhitePaper Julio 2008

Listados y Etiquetas personalizados de PrefGest WhitePaper Julio 2008 Listados y Etiquetas personalizados de PrefGest WhitePaper Julio 2008 Contenidos 1. Propósito 3 2. Introducción 4 3. Listados personalizados 5 3.1. Ejemplos prácticos 7 3.2. Consideraciones adicionales

Más detalles

Estructuras y funciones de programación de sockets.

Estructuras y funciones de programación de sockets. Estructuras y funciones de programación de sockets. Introducción. En estos apuntes se incluye una breve descripción de las estructuras y funciones cuyo uso puede ser necesario para el desarrollo de las

Más detalles

ISTP CIDET COMPUTACION E INFORMATICA ARREGLOS EN JAVA

ISTP CIDET COMPUTACION E INFORMATICA ARREGLOS EN JAVA ARREGLOS EN JAVA I I N T R O D U C C I Ó N En las sesiones anteriores, los datos manejados en los programas han sido datos simples (carácter, entero, reales) En un gran número de problemas es necesario

Más detalles

Arreglos. // Incluir E/S y Librerías Standard #include <stdlib.h> #include <stdio.h>

Arreglos. // Incluir E/S y Librerías Standard #include <stdlib.h> #include <stdio.h> Arreglos Introducción. En los temas anteriores se han estudiado los diferentes tipos de datos simples de C++, usados para representar valores simples como enteros, reales o caracteres. Sin embargo, en

Más detalles

Tema 3: Herencia en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle

Tema 3: Herencia en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle Tema 3: Herencia en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle Contenido Tipos de herencia Herencia y niveles de visibilidad Herencia y creación Redefinición de métodos Conversión

Más detalles

Vdd MIC29302. Vss PF.0 CS DI DAT CLK PE.7 PD.4 PD.5 PB.0. CAN-054, Utilización de tarjetas MMC en bajo nivel

Vdd MIC29302. Vss PF.0 CS DI DAT CLK PE.7 PD.4 PD.5 PB.0. CAN-054, Utilización de tarjetas MMC en bajo nivel Nota de Aplicación: CAN-054 Título: Utilización de tarjetas MMC en bajo nivel Autor: Sergio R. Caprile, Senior Engineer, colaboración IT&T (distr. Cika en Mendoza) Revisiones Fecha Comentarios 0 02/09/06

Más detalles

INTRODUCCIÓN AL TIPO COMPUESTO CADENA CONTENIDOS

INTRODUCCIÓN AL TIPO COMPUESTO CADENA CONTENIDOS CONTENIDOS 1. Introducción a las cadenas 2. Definición 3. Declaración de cadenas 4. Inicialización de cadenas 5. Escritura y Lectura de datos tipo cadena 6. Funciones de manipulación de cadenas 7. Arrays

Más detalles

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA UNED Centro Asociado de Cádiz RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA 1. OBJETOS Cualquier elemento del programa es un objeto. Un programa es un conjunto de objetos que se comunican entre sí

Más detalles

Arquitecturas aplicativas

Arquitecturas aplicativas Arquitecturas aplicativas 100 Arquitectura Arquitectura::= Arte de proyectar y construir Dada la funcionalidad que deberá tener el aplicativo, establecer una división modular para su implementación Enumerar

Más detalles

Cómo nombrar variables ( 2&

Cómo nombrar variables ( 2& &'()*+,, *)-.&'*/0+!" #$ # http://www.escet.urjc.es/~aiiq/ Introducción a Visual Studio.NET Aprendiendo el IDE de Visual Basic.NET Elementos del lenguaje. Variables y estructuras de datos Introducción

Más detalles

Tema: Sobrecarga de Operadores.

Tema: Sobrecarga de Operadores. Programación II. Guía 7 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Sobrecarga de Operadores. Objetivos Describir como redefinir (sobrecargar) operadores para que funcionen

Más detalles

WbS Web Services. Roberto Gómez Cárdenas rogomez@itesm.mx http://homepage.cem.itesm.mx/rogomez. Web Services

WbS Web Services. Roberto Gómez Cárdenas rogomez@itesm.mx http://homepage.cem.itesm.mx/rogomez. Web Services WbS Web Services Roberto Gómez Cárdenas rogomez@itesm.mx http://homepage.cem.itesm.mx/rogomez mx/rogomez Lámina 1 Web Services Servicios web. Interfaz red a una aplicación basada en tecnologías internet

Más detalles

2. Estructura de un programa en Java

2. Estructura de un programa en Java 24 A. García-Beltrán y J.M. Arranz 2. Estructura de un programa en Java Objetivos: a) Describir la estructura del código fuente de una aplicación Java b) Presentar los conceptos de comentario y de identificador

Más detalles

LEER Y ESCRIBIR ARCHIVOS O FICHEROS EN C. FOPEN, FCLOSE, MODOS DE ACCESO READ, WRITE Y APPEND (CU00536F)

LEER Y ESCRIBIR ARCHIVOS O FICHEROS EN C. FOPEN, FCLOSE, MODOS DE ACCESO READ, WRITE Y APPEND (CU00536F) APRENDERAPROGRAMAR.COM LEER Y ESCRIBIR ARCHIVOS O FICHEROS EN C. FOPEN, FCLOSE, MODOS DE ACCESO READ, WRITE Y APPEND (CU00536F) Sección: Cursos Categoría: Curso básico de programación en lenguaje C desde

Más detalles

SOLUCION EXAMEN junio 2006

SOLUCION EXAMEN junio 2006 SOLUCION EXAMEN junio 2006 1. Explique razonadamente si las siguientes afirmaciones son verdaderas o falsas: I) (1 p) En UNIX únicamente se distinguen dos tipos de procesos: los procesos de usuario y los

Más detalles

Programa Java. El lenguaje de programación Java. Comentarios. Programa Java. Palabras reservadas. Identificadores

Programa Java. El lenguaje de programación Java. Comentarios. Programa Java. Palabras reservadas. Identificadores El lenguaje de programación Java Programa Java Un programa Java está formado por un conjunto de clases que interactúan entre sí La clase es la unidad básica de programación La ejecución depende de la clase

Más detalles

8.1 Un primer bucle FOR... 5 8.2 Varias formas de utilizar el bucle FOR... 5 8.3 Calcular el factorial de un número mediante un bucle FOR...

8.1 Un primer bucle FOR... 5 8.2 Varias formas de utilizar el bucle FOR... 5 8.3 Calcular el factorial de un número mediante un bucle FOR... PROGRAMACIÓN EN C++ PRÁCTICA 08 INTRODUCCIÓN A C++ SENTENCIAS DE CONTROL DEL FLUJO DE UN PROGRAMA: Ejercicio 1. Un primer programa en C++....1 Ejercicio 2. Una conversación en C++....2 Ejercicio 3. Una

Más detalles

Inside. Gestión de Expedientes y Documentos Electrónicos

Inside. Gestión de Expedientes y Documentos Electrónicos Inside Gestión de Expedientes y Documentos Electrónicos Documento de Integración Sistemas Desarrollo Versión 1.0 Fecha de revisión 25/02/2013 Realizado por Sistemas Desarrollo Inside v_1.0 / 1 ÍNDICE 1

Más detalles

Sistemas Operativos. Curso 2016 Procesos

Sistemas Operativos. Curso 2016 Procesos Sistemas Operativos Curso 2016 Procesos Agenda Proceso. Definición de proceso. Contador de programa. Memoria de los procesos. Estados de los procesos. Transiciones entre los estados. Bloque descriptor

Más detalles

Introducción al tipo de dato ARRAY

Introducción al tipo de dato ARRAY CONTENIDOS. Introducción al tipo de dato ARRAY. Definición, Características, Declaración, Acceso e Inicialización.. Arrays multidimensionales Definición, Declaración, Acceso e Inicialización. Introducción

Más detalles

Taller de Sistemas Operativos Introducción

Taller de Sistemas Operativos Introducción Taller de Sistemas Operativos Introducción Escuela de Ingeniería Civil en Informática Universidad de Valparaíso, Chile http:// Conceptos generales 2 Proceso stdin Descriptor Flujo (FILE*) 0 stdout 1 Proceso

Más detalles

Para leer la entrada de consola, lo primero que se hace es construir un Scanner que este asociado al flujo de entrada estándar System.

Para leer la entrada de consola, lo primero que se hace es construir un Scanner que este asociado al flujo de entrada estándar System. CICLO: 01/2010 Universidad Don Bosco Materia: Lenguaje de Programación III Contenido: 1-Lectura de Datos de entrada. 2-Introduccion a JOPTIONPANE. 3-Estructuras de Control. ->LECTURA DE DATOS DE ENTRADA

Más detalles

TALLER No.1 AUDITORÍA A CUENTAS POR COBRAR DE COMFAPOPAYAN UTILIZANDO SOFTWARE DE AUDITORÍA - IDEA.

TALLER No.1 AUDITORÍA A CUENTAS POR COBRAR DE COMFAPOPAYAN UTILIZANDO SOFTWARE DE AUDITORÍA - IDEA. TALLER No.1 AUDITORÍA A CUENTAS POR COBRAR DE COMFAPOPAYAN UTILIZANDO SOFTWARE DE AUDITORÍA - IDEA. PROGRAMA DE AUDITORÍA Objetivo de la Auditoria : Asegurar que las Cuentas por Cobrar que se muestran

Más detalles