PVMTB (Parallel Virtual Machine Toolbox)

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

Download "PVMTB (Parallel Virtual Machine Toolbox)"

Transcripción

1 PVTB (Parallel Virtual achine Toolbox) Javier Fernández Baldomero Departamento de Arquitectura y Tecnología de Computadores Universidad de Granada, GRANADA jfernand@ugr.es Resumen Los nuevos tipos de datos a partir de ATLAB 5.0 son muy apropiados para realizar una interfaz EX elegante entre ATLAB y el entorno PV (v3.4-beta7). Esta Toolbox, PVTB, puede ser utilizada como herramienta docente para explicar PV de forma interactiva, ahorrando al estudiante el esfuerzo de editar, compilar y ejecutar separadamente programas con el objetivo de ejercitar cada llamada de la librería. También sirve de base para construir la Toolbox, un Entorno de Cálculo Científico (SCE: Scientific Computing Environment) orientado a tareas paralelizables de alta granularidad. Palabras Clave: Computación Paralela, Paso de ensajes, ATLAB, PV, PVTB, SCE. 1 INTRODUCCIÓN 1.1 LIBRERÍAS DE PASO DE ENSAJES El modelo de comunicación y sincronización de tareas mediante paso de mensajes ha sido profusamente implementado a diversos niveles [1]. En Red de Area Local (LAN), el programador de aplicaciones paralelas puede escoger entre multitud de entornos, de entre los cuales destacan: Parallel Virtual achine [4] [5] [22] Es el más popular en el entorno académico, y estándar de-facto [1 3.4], probablemente debido al cuidado entorno de control de ejecución y otras prestaciones [1 3.5]. Como características principales, sus autores destacan [4 2 p.2-4] [5 2 p.11] [22] que es portable, soporta interoperación en conjunto heterogéneo de ordenadores, es escalable hasta cientos de máquinas, permite modificación dinámica de la configuración, soporta grupos dinámicos de tareas, envío de señales, múltiples buffers de mensajes y trazado, y dispone de ganchos (hooks) para soportar esquemas de tolerancia a fallos y modificar la política de despacho de tareas. essage Passing Interface [6] [16] [17] [18] El estándar PI se concentra en definir la sintaxis y semántica de las rutinas de paso de mensajes que serían de utilidad a los usuarios de procesadores masivamente paralelos (PP) [5 1 p.8]. El objetivo es proveer a los fabricantes con un conjunto claramente definido de rutinas que puedan implementar eficientemente en su arquitectura, basándose en soporte hardware específico. No define ningún entorno software para desarrollo de aplicaciones paralelas, manejo de tareas, configuración del ulti- Computador ó E/S paralela. Algunas implementaciones del estándar PI son LA (Local Area ulticomputer) [8] [9], y PICH (PI Chameleon) [19]. Los autores de PV sugieren que el propio entorno PV podría portarse a PI para explotar la eficiente implementación de las rutinas básicas que éste ofrece [5 1 p.8]. Los autores de LA informan de que el propio PV puede portarse a Trollius/LA, igual que se ha hecho con PI [8 1 p.7]. 1.2 TOOLBOXES ATLAB PARA PASO DE ENSAJES Cleve oler menciona en su columna [15] los tres motivos básicos (en 1995) para no haber continuado el desarrollo de una versión paralela de ATLAB odelo de memoria Granularidad Perspectiva comercial En un Intel ipsc de 128 nodos con 0.5B de memoria distribuida cada uno, la conclusión resultó ser que se tardaba más tiempo en distribuir y reensamblar los datos que en el propio cálculo, al menos para los tamaños de matriz que cabían en memoria del host. El siguiente intento reveló un problema más grave. En el Ardent Titan, con memoria compartida, se puso de manifiesto que una sesión típica de ATLAB emplea más tiempo en tareas no

2 paralelizables (intérprete y visualización) que en paralelizables (cálculo). La conclusión es que sólo para tareas de alta granularidad merece la pena paralelizar el cálculo en el lugar obvio: el bucle externo. Realizar los cambios en ATLAB para manejar esto transparentemente no presenta interés comercial para ATLAB, ya que la inmensa mayoría de usuarios preferiría que los esfuerzos se dedicaran a optimizar la versión monoprocesador. Sin embargo, no debe ser difícil para un usuario final incorporar estos cambios en su propio código. Bajo esta perspectiva se han desarrollado multitud de Toolboxes que facilitan dicha paralelización de bucle externo lo más transparentemente posible. Algunas de ellas son Paralize [10], Enero 1999 Usa sistema de ficheros compartido. Los datos deben ser matrices 3D que se reparten en slices 2D. serve.m anota máquina como servidor paralize.m anota comando, recolecta resultados PI [10], arzo 1999 Interfaz parcial de PI. aneja las instancias ATLAB como engines. Parallel atlab Interface (PI) Toolbox. Version 1.0 Beta-2 Written by Daniel D. Lee (ddlee@physics.lucent.com), 2/99. Interface functions. PI_Init - Start parallel atlab processes. PI_Finalize - Close parallel atlab processes. PI_Size - Number of active processes. PI_Send - Send matrices to specific process. PI_Recv - Receive matrices from specific process. PI_Bcast - Broadcast matrices to all processes. PI_Eval - Execute string on a remote process. PI_IEval - Non-blocking execute on a remote process. PI_Beval -Broadcast nonblocking exec on all processes. PI_Scatter - Split matrix and send to remote processes. PI_Gather - Get matrices from processes and concat. PI_Reduce - Combine matrix from different processes. engines - Default commands to start processes. Low-level engine routines. engopen - Start a atlab engine session. engclose - Quit a atlab engine session. enggetarray - Copy variables from engine's workspace. engputarray - Put variables into engine's workspace. engevalstring - Evaluate expression in string. engievalstring - Non-blocking evaluation of string TCPIP [10], Abril 1999 Interfaz básica para conexión TCP/IP Unix. Requiere que el usuario especifique puerto y dirección. Permite enviar strings y ficheros. No establece mecanismo de ejecución remota. TCPIP Toolbox Version 1.0 Beta Copyrigtht (C) Peter Rydesäter, itthögskolan, SWEDEN tcpip_close Closes an open tcpip connection. tcpip_open Opens a new tcpip connection. tcpip_read Reads an array of bytes from pipe. tcpip_readln Reads a line of chars if their is a complete. tcpip_sendfile Sends a file throw connection to "getfile" tcpip_getfile Receives a data from sending "tcpip_sendfile" tcpip_sendvar Send matlab variable. tcpip_getvar Get matlab variable. tcpip_servopen Waits for connection from other host-port. tcpip_status Returns status of open connection. tcpip_viewbuff Returns whats in receiving buffer tcpip_write Sends an array of bytes to connection Tath [2], [10], Agosto 1997 Interfaz Ptolemy-athematica-atlab. C++ y Tcl requeridos. Permite arrancar procesos ATLAB y evaluar expresiones. aneja los procesos ATLAB como engines. matlab end - terminate a session with ATLAB matlab eval script - evaluate a ATLAB script and print result matlab get name?script? - eval script, get the named matrix matlab getpairs name?script? - eval script,get named matrix matlab send script - evaluate script and suppress the output matlab set name rows cols real?imag? - set real, imag. values matlab start -start a new ATLAB session matlab status - status of the Tcl/ATLAB connection matlab unset name - unset the named ATLAB matrix PT-Toolbox [7], Abril 1995 Interfaz parcial de PV3.3.7 (unas 20 llamadas). ATLAB Parallel Environment (PT) commands. Extension based on PV. Version 1 09-April-95 Configuring the Parallel Environment (PE). pt_addengines - Add Engine daemons to the current PE. pt_deleteengines - Delete Engine daemons from current PE. pt_hosts - Obtain host names of Engine daemons. pt_status - Obtain wids of current Engine daemons. pt_host2engs - Obtain wids of daemons in given host. pt_erreset - Reset the Error daemon. pt_shutdown - Shutdown the PE. anipulating wids. pt_mywid - Obtain worker id of this engine/session. pt_spawn - Spawn an m-file (worker) in a engine. pt_exit - Exit the PE. Sending and Receiving. pt_send - Send a matrix to a engine/session. pt_mcast - Send a matrix to many engine/sessions. pt_recv - Receive a matrix from a engine/session. pt_trecv - Timeout receive from a engine/session. Forming groups. pt_joingroup - Enroll engine/session into a group. pt_lvgroup - Unroll engine/session from a group. pt_getinst - Get wid of a member of a group. pt_gsize - Get size of a group. pt_getwid - Get wid of a specific member of a group. pt_bcast - Broadcast msg to all members of a group. pt_barrier - Block member of a group- wait all others. pt_kill - Kill a task in PV pt_cleanup - Attempts to clear PE. pt_sendsig - Send a signal to any task DP-Toolbox [20], [21], arzo 1999 Interfaz parcial de PV (alrededor de 50 llamadas). ultiplataforma y ultiversión (ATLAB 4 ó 5). Incluye entorno de alto nivel (DP). Distributed and Parallel Toolbox - Low Level PV Interface. Version 1.4 PV Control.

3 pvme_is - Test whether PV is running.... pvme_halt - Shuts down the entire PV system. Setting and Getting Options. pvm_getopt - Return various libpvm options. pvm_setopt - Set various libpvm options. Process Control. pvm_spawn - Start new PV process.... pvm_exit - Leave PV. Information. pvm_mytid - Return tid of process.... pvm_version - Return PV version. Signaling. pvm_sendsig - Send signal to PV process. pvm_notify - Request notification of PV event. essage Buffers. pvm_initsend - Clear default send buffer, specify encoding.... pvm_freebuf - Dispose a message buffer. Packing / Unpacking Data. pvm_pkdouble - Pack data double into active send buffer. pvm_upkdouble - Unpack data dbl from active recv buffer. pvme_pkarray - Pack 5 array pvme_upkarray - Unpack 5 array pvme_upkarray_name - Unpack only array name. pvme_upkarray_rest - Unpack rest of array. Sending and Receiving. pvm_send - Send data in active message buffer.... pvm_nrecv - Non-blocking receive. aster Pvmd Database. pvm_putinfo - Store message in global mailbox. pvm_recvinfo - Retrieve message from global mailbox. pvm_getmboxinfo - Return contents of global mailbox. pvm_delinfo - Delete message in global mailbox. atlab Extensions. persistent2 - anaging persistent variables. putenv - Change or add an environment variable. unsetenv - Delete an environment variable. selectstdin - select(2) on stdin ultiatlab [14], [23], Nov Incluye entorno de alto nivel basado en PICH. Desarrollado en colaboración con The athworks. ultiatlab (ATLAB on multiple processes). ost commands can be run only on the interactive process (0) Commands marked by * can be run anywhere (0:Nproc-1). Starting and stopping ultiatlab. Start - Initialize remote processes, ultiatlab session. Interrupt-Interrupt ultiatlab processes during comput. Abort - Abort ultiatlab session remaining. Quit - Terminate remote processes, end ultiatlab sess. Process arrangement and identification. *ID - Task ID of a process. *Nproc - Total number of ultiatlab processes active. Grid - Arrange the processes in a grid. *Gridsize - Dimensions of the grid of processes. *Coord - Coordinates of a process in the grid. Running commands on multiple processes. Eval - Evaluate a command on one or more processes. Communication. *Send - Send data from one process to another. *Recv - Receive data sent from another process. *Probe - Determine if communication has been completed. *Barrier - Synchronize processes. Put -Put data from interactive process onto remote processes. Get - Put data from remote process onto interactive process. Bcast - Transmit data to all processes using a tree structure. Distribution of data. Distribute - Distribute matrix according to Coord. Collect-Coll.matrix according to mask created by Distribute. Shift - Shift data between processes Arithmetic. ax - Find pointwise max. of matrices on several processes. in - Find pointwise min. of matrices on several processes. Sum - Find pointwise sum of matrices on several processes. Prod - Find pointwise prod.of matrices on several processes. Graphics. Window - Arrange figs in grid according to function parms. ResetWindow - Reset window position to ATLAB default. Refresh - Repaint all current figures PVTB [3], Junio 1999 Esta Toolbox, PVTB, es una interfaz completa de PV v3.4-beta7 bajo ATLAB 5.x y Unix, similar a DP-Toolbox. Ofrece documentación sobre cómo enlazar dinámicamente las librerías PV al objeto de reducir ocupación en disco y memoria. Reutiliza código intensivamente mediante la clasificación de las llamadas PV según el patrón de llamada. Es ideal como herramienta didáctica para enseñar PV. Es capaz de empaquetar y transmitir todos los tipos de datos ATLAB existentes, así como de recibir mensajes de notificación del propio daemon PV. Soporta incluso la realización de ganchos PV del tipo pvm_reg_hoster/tasker/rm. También se ha programado un entorno de alto nivel (), que evita al usuario final la necesidad de aprender PV. Dicho entorno es similar al ofrecido por DP-Toolbox ó ultiatlab. 1.3 ALICIENTES DE ATLAB 5.x PARA IPLEENTAR UNA TOOLBOX PV A partir de la versión 5.0 ATLAB incorpora mejoras, tanto en la API como en los tipos de datos soportados, que facilitan significativamente la programación sistemática de una Toolbox PV. Las más relevantes a este propósito son [11 3-2]: Auto-diagnóstico en la API Soporte para Depuración y Optimización Estructuras atrices de Celdas (cell-arrays) Número variable de argumentos para funciones (varargin) [ ]

4 En la versión 5.3 aparece el soporte para tipos de datos enteros [13 1-2]. La práctica totalidad de llamadas PV devuelven un valor entero. En esta Toolbox se ha optado por promocionar dicho int a double. ATLAB no puede operar con enteros salvo con el operador de suma, y las operaciones sobre ellos (p.ej: find) producen resultado double [13 1-6]. No obstante, sí resulta interesante utilizar las estructuras en las llamadas PV que devuelven información de diversos tipos, especialmente teniendo en cuenta que todas las variables usadas quedan anotadas en el espacio de trabajo (workspace); esto hace interesante poder reunir variables relacionadas lógicamente entre sí en una sola variable que las agrupe (estructura), en lugar de tenerlas desordenadas en el espacio de trabajo. Asimismo, las matrices de celdas tienen la ventaja de agrupar un número indeterminado de elementos de tipos cualesquiera. Este tipo de datos es el ideal para emular el tipo char**. 2 IPLEENTACION EX 2.1 JUSTIFICACIÓN Se pretende realizar llamadas a la librería PV desde el entorno interactivo de ATLAB. La única manera posible es desde un programa C, que bajo ATLAB debe ser un fichero EX. Los ficheros EX son enlazados dinámicamente (dynamic link) para que el intérprete del entorno ATLAB pueda cargarlos y ejecutarlos [12 2]. Cada llamada PV se implementa como un fichero EX independiente. La función EX traduce (y a veces reordena) los argumentos especificados desde ATLAB al tipo de datos requerido por la llamada antes de proceder a la llamada en sí, y traduce la información devuelta de manera que sea accesible desde ATLAB. 2.2 OPCIONES DE DISEÑO En algunos casos ha sido interesante modificar el patrón de argumentos de una llamada. La función EX resultante no es idéntica por lo tanto a la original en PV. Cuando esto se ha hecho ha sido motivado por alguna de las siguientes razones: Coerción, cambio o promoción de tipo Como se explicó previamente, en la llamada se coerce double int y en la vuelta se promociona int double. Similar trato reciben los arrays de strings, cambiados a cellarrays bajo ATLAB (pvm_spawn, pvm_start_pvmd). Las estructuras C son respetadas como estructuras ATLAB en las llamadas pvm_config,pvm_tasks,pvm_reg_rm., pvm_getminfo, pvm_getmboxinfo, pvm_setminfo. Además, se crea una estructura ATLAB para agrupar los enteros devueltos por pvm_bufinfo y pvm_precv. La struct timeval se cambia a double bajo pvm_trecv y select(), por ser más cómodo para el usuario ATLAB especificar un tiempo como double, pero se respeta bajo pvm_hostsync, por la semántica especial que tiene para el caso de segundos negativos. Bajo pvm_catchout resulta imprescindible cambiar y promocionar el argumento FILE* a int/double para su uso bajo ATLAB. La promoción se realiza también rutinariamente bajo pvm_getfds y select(). En el manejo de máscaras (pvm_gettmask, pvm_settmask, TEV_ASK_*) se ha cambiado mask de tipo pvmtmask a string ATLAB. Los argumentos who y kind se han cambiado de tipo int a string, para que el usuario no necesite recordar los valores numéricos y pueda usar los símbolos PV. Varios argumentos de retorno El lenguaje C permite que una función devuelva un único valor de retorno. Para devolver varios, se suele recurrir a Devolver un puntero a array ó estructura conteniendo dichos valores Pasar punteros a argumentos adicionales (paso por referencia), de manera que a la vuelta contengan los valores de retorno deseados PV usa ambas técnicas. ATLAB permite devolver varios argumentos de retorno. Se ha seguido el criterio de simplificar la llamada trasladando los argumentos por referencia a la parte izquierda (left-hand-side, plhs[]). Las estructuras C son devueltas como estructuras ATLAB. Esta técnica se usa bajo: addhosts, delhosts, gettmask, config, tasks, getfds, reg_rm, hostsync, siblings, unpack, upkint, upkstr, psend, precv, bufinfo, getminfo, getmboxinfo, tickle Argumentos inferibles Una de las características más útiles de ATLAB como lenguaje de rápido prototipado de sistemas es la ausencia de

5 declaraciones de tipo. Las variables pueden alterar dinámicamente su tamaño y número de dimensiones, y estos atributos pueden ser consultados en cualquier instante. El lenguaje C no fija ningún método para indicar el tamaño de un array. Así, se suele marcar el fin de un string (char*) mediante un carácter ASCII NULL se indica explícitamente el tamaño de una matriz ó vector en su declaración (matriz[]) si una función maneja matrices de diversos tamaños, se suele indicar éste como parámetro adicional (tantos como dimensiones) PV usa todas las técnicas citadas. ATLAB almacena como atributo de cada variable su tamaño y dimensionado actual, de manera que puede ser consultado, haciendo superfluos cualesquiera de los métodos anteriores. Esto se observa en las llamadas: start_pvmd, addhosts, delhosts, spawn, notify, mcast, pkint, upkint, psend, reduce, scatter, gather. A menudo también PV devuelve un int indicando el tamaño de un array. Este argumento se suele respetar, ya que suele ser de interés para el usuario. Esto se hace bajo: getfds, siblings, getmboxinfo, config, tasks 2.3 CONVENIENCIA DE USAR ENLACE DINÁICO PARA LA LIBRERÍA PV Tradicionalmente, PV se ofrece como librería estática, libpvm3.a, libgpvm3.a. Este estilo de enlace se manifiesta en lo siguiente Objetos estáticos: no requieren ningún modificador especial. Pueden optar entre el modo optimizado (-O) y el de depuración (-g). Librerías estáticas: suelen denominarse lib <nombre>.a. Los objetos que la componen están archivados mediante la utilidad ar. Se les suele aplicar la utilidad ranlib para producir un índice que acelera el enlace. Referencia a librería estática: puede indicarse con la opción l<nombre>, ó mencionando el fichero ar, lib<nombre>.a. PV utiliza este último método ocasionalmente. Los ficheros EX deben ser enlazados dinámicamente si han de ser llamados desde ATLAB [12 2]. Usando enlace dinámico también para la propia librería PV, los programas EX resultantes son de menor tamaño en disco que si se enlazaran estáticamente, con el consiguiente ahorro de disco tras la instalación, y de memoria durante la ejecución en un Sistema ultiusuario en el que varios de ellos utilicen la Toolbox simultáneamente (p.ej, una sesión de prácticas). La Toolbox sólo requiere la librería de PV libpvm3 y el programa daemon pvmd3. Si se usan grupos, se requieren también la librería correspondiente libgpvm3 y el programa servidor de grupos pvmgs. Adicionalmente, durante la etapa de depuración es útil disponer de la consola pvm, que a su vez requiere la librería de trazado libpvmtrc. Las modificaciones realizadas siguen los siguientes criterios: Objeto dinámico: el compilador GNU gcc requiere el modificador fpic para producir código independiente de posición, como es necesario para producir librerías dinámicas y enlazar dinámicamente. Librerías dinámicas: suelen denominarse lib<nombre>.so. El compilador gcc requiere el modificador -shared para producir ficheros objeto compartibles que puedan ser posteriormente enlazados con otros objetos para formar ejecutables, como es el caso de las librerías dinámicas. Es costumbre incorporar a la librería el nombre oficial de la misma; nombre bajo el cual la buscarán los ejecutables, lo cual se hace mediante la opción soname. Referencia a librería dinámica: se han sustituido las referencias de la forma lib<nombre>.a a l<nombre>, única forma de referencia válida para dinámicas. Orden de dependencias: en alguna ocasión una librería no ha sido aún copiada al directorio donde se encontraría mediante l cuando ya la necesita algún programa (pvm_gstat) para su enlace. Se ha adelantado la dependencia de manera que la librería esté copiada para cuando se enlaza el ejecutable. Los ficheros afectados, y librerías y programas generados por ellos, son: $PV_ROOT/src/akefile.aimk pvmd3, libpvm3.so $PV_ROOT/pvmgs/akefile.aimk libgpvm3.so, pvmgs, pvm_gstat,pvmgroups $PV_ROOT/tracer/akefile.aimk libpvmtrc.so, tracer, trcsort $PV_ROOT/console/akefile.aimk pvm 2.4 LISTA DE FUNCIONES Se adjunta la tabla 1 enumerando las llamadas PV con el patrón de llamada bajo ATLAB y bajo PV, según los criterios previamente expuestos. La columna ESQ indica el esquema seguido por la llamada, tal y como se explica en [3].

6 Tabla 1: Llamadas PV. ESQ ATLAB PV Control de la áquina Virtual Paralela SP info = pvm_start_pvmd ({ arg...}, block) int info = pvm_start_pvmd (int argc, char**argv, int block) H_9 [numh, infos] = pvm_addhosts ( host...) int info = pvm_addhosts (char**hosts, int nhost, int*infos) H_9 [numh, infos] = pvm_delhosts ( host...) int info = pvm_delhosts (char**hosts, int nhost, int*infos) SP [numt, tids] = pvm_spawn ( task,{ arg...}, flag, where,ntask) int numt = pvm_spawn (char*task, char**argv, int flag, char*where, int ntask, int*tids) H_2 info = pvm_kill (tid) int info = pvm_kill (int tid) H_4 info = pvm_sendsig (tid, signum) int info = pvm_sendsig (int tid, int signum) SP info = pvm_notify (what, msgtag, (cnt tids) ) int info = pvm_notify (int what, int msgtag, int cnt, int*tids) H_1 info = pvm_exit int info = pvm_exit (void) H_1 info = pvm_halt int info = pvm_halt (void) SP info = pvm_catchout [ (fildes) ] int info = pvm_catchout (FILE*ff) H_2 val = pvm_getopt (what) int val = pvm_getopt (int what) H_4 oldval = pvm_setopt (what, val) int oldval = pvm_setopt (int what, int val) SK [info, mask] = pvm_gettmask ( who ) int info = pvm_gettmask (int who, pvmtmask mask) SK info = pvm_settmask ( who, mask) int info = pvm_settmask (int who, pvmtmask mask) SK TEV_ASK_INIT (mask) TEV_ASK_INIT (mask) SK TEV_ASK_SET (mask, kind ) TEV_ASK_SET (mask, kind) SK TEV_ASK_UNSET (mask, kind ) TEV_ASK_UNSET (mask, kind) SK TEV_ASK_CHECK (mask, kind ) TEV_ASK_CHECK (mask. kind) Información de la áquina Virtual Paralela SP [nhost, narch, hostinfo] = pvm_config int info = pvm_config (int*nhost, int*narch, struct pvmhostinfo**hostp) H_6 mstat = pvm_mstat ( host ) int mstat = pvm_mstat (char*host) SP [ntask, tinfo] = pvm_tasks (where) int info = pvm_tasks (int where, int*ntask, struct pvmtaskinfo**taskp) H_2 stat = pvm_pstat (tid) int status = pvm_pstat (int tid) H_1 tid = pvm_mytid int tid = pvm_mytid (void) H_1 tid = pvm_parent int tid = pvm_parent (void) H_2 dtid = pvm_tidtohost (tid) int dtid = pvm_tidtohost (int tid) H_6 info = pvm_perror ( msg ) int info = pvm_perror (char*msg) SP version = pvm_version char*version = pvm_version (void) H_6 cod = pvm_archcode ( arch ) int cod = pvm_archcode (char*arch) H_5 [nfds, fds] = pvm_getfds int nfds = pvm_getfds (int**fds) H_5 [ntids, tids] = pvm_siblings int ntids = pvm_siblings (int**tids) SP [info clk dlt] = pvm_hostsync (htid) int info = pvm_hostsync (int host, struct timeval*clk, struct timeval*dlt) Envío y Recepción de ensajes H_3 bufid = pvm_initsend [ (encoding) ] int bufid = pvm_initsend (int encoding) PCK info = pvm_pack (var...) int info = pvm_packf (const char*fmt,...) PCK [info, names] = pvm_unpack [ ( vnam...) ] int info = pvm_unpackf (const char*fmt,...) H_4 info = pvm_send (tid, msgtag) int info = pvm_send (int tid, int msgtag) H_4 bufid = pvm_recv (tid, msgtag) int bufid = pvm_recv (int tid, int msgtag) SP bufid = pvm_trecv (tid, msgtag, tmout) int bufid = pvm_trecv (int tid, int msgtag, struct timeval*tmout) H_4 bufid = pvm_nrecv (tid, msgtag) int bufid = pvm_nrecv (int tid, int msgtag) H_4 bufid = pvm_probe (tid, msgtag) int bufid = pvm_probe (int tid, int msgtag) SP info = pvm_mcast (tids, msgtag) int info = pvm_mcast (int*tids, int ntask, int msgtag) SP info = pvm_pkint (n) int info = pvm_pkint (int*ip, int nitem, int stride) SP [info, n] = pvm_upkint int info = pvm_upkint (int*ip, int nitem, int stride) SP info = pvm_pkstr ( str ) int info = pvm_pkstr (char*sp) SP [info, str ] = pvm_upkstr int info = pvm_upkstr (char*sp) H_2 info = pvm_pkmesg (bufid) int info = pvm_pkmesg (int bufid) H_1 bufid = pvm_upkmesg int newbufid = pvm_upkmesg (void) H_2 info = pvm_pkmesgbody (bufid) int info = pvm_pkmesgbody (int bufid) SP [info, len] = pvm_psend (tid, msgtag, data) int info = pvm_psend (int tid, int msgtag, char*buf, int len, int datatype) SP [info, bufinfo]=pvm_precv (tid, msgtag, vnam, len) int info = pvm_precv (int tid, int msgtag, char*buf, int len, int datatype, int atid, int atag, int alen) Buffers de Envío y Recepción H_3 bufid = pvm_mkbuf [ (encoding) ] int bufid = pvm_mkbuf (int encoding) H_2 info = pvm_freebuf (bufid) int info = pvm_freebuf (int bufid) SP [info bufinfo] = pvm_bufinfo (bufid) int info = pvm_bufinfo (int bufid, int*bytes, int*msgtag, int*tid) SP [info msginfo] = pvm_getminfo (bufid) int info = pvm_getminfo (int bufid, struct pvmminfo*msginfo) SP info = pvm_setminfo (bufid, msginfo) int info = pvm_setminfo (int bufid, struct pvmminfo*msginfo) H_1 bufid = pvm_getrbuf int bufid = pvm_getrbuf (void) H_1 bufid = pvm_getsbuf int bufid = pvm_getsbuf (void)

7 H_2 oldbuf = pvm_setrbuf (bufid) int oldbuf = pvm_setrbuf (bufid) H_2 oldbuf = pvm_setsbuf (bufid) int oldbuf = pvm_setsbuf (bufid) ailbox global H_8 index = pvm_putinfo ( name, bufid, flags) int index = pvm_putinfo (char*name, int bufid, int flags) H_8 bufid = pvm_recvinfo ( name, index, flags) int bufid = pvm_recvinfo (char*name, int index, int flags) H_8 info = pvm_delinfo ( name, index, flags) int info = pvm_delinfo (char*name, int index, int flags) SP [info,mbinfo] = pvm_getmboxinfo ( pattern ) int info = pvm_getmboxinfo (char*pattern, int*nclasses, struct pvmmboxinfo**classes) Grupos H_6 inum = pvm_joingroup ( group ) int inum = pvm_joingroup (char*group) H_7 info = pvm_freezegroup ( group, size) int info = pvm_freezegroup (char*group, int size) H_6 info = pvm_lvgroup ( group ) int info = pvm_lvgroup (char*group) H_7 info = pvm_barrier ( group, count) int info = pvm_barrier (char*group, int count) H_7 inum = pvm_getinst ( group, tid) int inum = pvm_getinst (char*group, int tid) H_7 tid = pvm_gettid ( group, inum) int tid = pvm_gettid (char*group, int inum) H_6 size = pvm_gsize ( group ) int size = pvm_gsize (char*group) H_7 info = pvm_bcast ( group, msgtag) int info = pvm_bcast (char*group, int msgtag) COL info = pvm_reduce ( op, var, msgtag, group, inst) int info = pvm_reduce (void(*func)(), void*data, int count, int datatype, int msgtag, char*group, int rootginst) COL info = pvm_scatter (porcion, var, int info = pvm_scatter (void*result, void*data, int count, int datatype, COL msgtag, group, inst) info = pvm_gather (var, porcion, msgtag, group, inst) Entorno H_6 cc = pvm_export ( name ) int cc = pvm_export (char*name) H_6 cc = pvm_unexport ( name ) int cc = pvm_unexport (char*name) int msgtag, char*group, int rootginst) int info = pvm_gather (void*result, void*data, int count, int datatype, int msgtag, char*group, int rootginst) Contexto H_1 ctx = pvm_getcontext int ctx = pvm_getcontext (void) H_1 ctx = pvm_newcontext int ctx = pvm_newcontext (void) H_2 old_ctx = pvm_setcontext (new_ctx) int old_ctx = pvm_setcontext (int new_ctx) H_2 info = pvm_freecontext (ctx) int info = pvm_freecontext (int ctx) Registro de anejadores REG info = pvm_reg_hoster int cc = pvm_reg_hoster (void) REG info = pvm_reg_tasker int cc = pvm_reg_tasker (void) REG [info, hostinfo] = pvm_reg_rm int cc = pvm_reg_rm (struct pvmhostinfo**hip) FUN mhid = pvm_addmhf (src, tag, ctx, atlab_cd ) int mhid = pvm_addmhf (int src, int tag, int ctx, int(*func)(int bufid)) FUN info = pvm_delmhf (mhid) int info = pvm_delmhf (int mhid) FUN pvm_recvf [ ( atlab_cd ) ] int(*old)(void) = pvm_recvf ( int(*new)(int bufid, int tid, int tag) ) info = pvme_default_config [ ( hostfile ) ] info = pvme_start_pvmd [ ( arg...) ] info = pvme_kill(tids) info = pvme_is tids = pvme_gids ( group ) info = pvme_pack (var...) [info, msg] = pvme_upkntfy str = hostname str = uid Extensiones Utilidades NR putenv ( var=valor ) int putenv(const char*string) NR unsetenv ( var ) int unsetenv(const char*string) NR info = select [ (fildes [, timeout]) ] int select(int n, fd_set*readfs, fd_set*writefs, fd_set*exceptfs, struct timeval*timeout) No documentadas SP [info, resp] = pvm_tickle ( how [,arg] ) tickle how [ arg... ] Obsoletas pero documentadas info = pvm_advise (route) oldset = pvm_serror (set) info = pvm_getmwid (bufid) info = pvm_setmwid (bufid) cc = pvm_delete ( name, index) cc = pvm_insert ( name, index, data) [cc data] = pvm_lookup ( name, index)

8 2.5 DISCUSIÓN Y DETALLES La interfaz procura ser lo más transparente y sistemática posible. A dicho efecto se redacta un fichero include (header.h) con los patrones de llamada más comunes. /* * Todas las pvm_*.mexlx necesitan <mex.h> y <pvm3.h> */ #include <mex.h> /* atlab */ #include <pvm3.h> /* pvm_lo-que-sea */ /* * Patrones Entrada ATLAB->PV Salida PV->ATLAB */... /* */ void mexfunction( int nlhs, mxarray *plhs[], int nrhs, const mxarray *prhs[]){ /* */ Incorporar el prototipo de función EX evita duplicarlo en cada fichero fuente Patrones de llamada generales (H_*) Las funciones se clasifican según los parámetros que aceptan y valores de retorno que producen. El patrón se codifica en el include y se usa en el fichero fuente correspondiente a la llamada, que suele quedar reducido a la directiva #include y uso del patrón apropiado. H_1: int = f (void) El patrón es #define INT_F_VOID(NAE) \ *mxgetpr(plhs[0]=mxcreatedoubleatrix(1,1,mxreal)) = \ NAE(); Se crea el primer argumento de retorno como array1x1 (plhs[0]), y en su primer elemento (*mgetpr()) se almacena el int devuelto por la función. Un ejemplo de función con este patrón es /* * info = pvm_exit */ #include "header.h" INT_F_VOID(pvm_exit) } Los demás esquemas siguen la misma dinámica. H_2: int = f (int) H_3: int = f[(int)] H_4: int = f (int, int) H_5: [int, int[]] = f (void) H_6: int = f ( str ) H_7: int = f ( str,int) H_8: int = f ( str,int,int) H_9: [int, int[]] = f (str[]) Funciones de manejo de máscaras (SK) Las funciones y macros de máscara de trazado admiten un parámetro de máscara y otro entero ( who ó kind ). Se ha preferido tratar este segundo parámetro como string. Se redactan las funciones de apoyo en header_msk.h. También se deja la cabecera incluida Llamadas PV colectivas (COL) Las funciones de grupo colectivas pueden compartir la comprobación de parámetros y el tratamiento de los argumentos msgtag, group, y rootginst, en header_col.h. El resto del código es específico a cada llamada Funciones de registro (REG) Las 3 funciones de registro usan pvmproto.h. pvm_reg_hoster, pvm_reg_tasker siguen el mismo esquema INT_F_VOID mencionado anteriormente. pvm_reg_rm no lo sigue, ya que debe devolver struct pvmhostinfo Funciones sin patrón (SP) El resto de llamadas sólo tienen en común los #include ATLAB y PV, y el prototipo mexfunction. Se redacta una sola vez en header_smp.h y se incluye en cada fichero fuente. Un ejemplo es /* * 'version' = pvm_version */ #include "header_smp.h" plhs[0]=mxcreatestring(pvm_version()); /* wrap/argout */ } Funciones relacionadas (FUN,PCK,NR) Tampoco siguen ningún esquema. No comparten fichero include. Se han clasificado en categorías separadas para facilitar su comprensión. # Fuentes a mano, sin sistema FUNSRCS = pvm_mhf.c pvm_recvf.c PCKSRCS = pvm_pack.c pvm_unpack.c NRSRCS= putenv.c unsetenv.c select.c Las funciones normales (NR) son funciones de apoyo para esta Toolbox, que no utilizan PV. Aunque ATLAB dispone de una función getenv, no permite crear o borrar variables de entorno. Tampoco permite comprobar si hay caracteres pendientes de lectura. Las funciones de empaquetamiento (PCK) son la clave de la integración PV-ATLAB. Cada variable es empaquetada con una cabecera identificando su clase, nombre y dimensiones, de manera que en la recepción se pueda reproducir una variable idéntica a la original.

9 También es necesario realizar la interfaz con pvm_upkint para poder desempaquetar los mensajes de notificación a esperar tras pvm_notify. Naturalmente, el int se coerce a double. Por complitud, se decide hacer también la interfaz para pvm_upkint, pvm_pkstr y pvm_upkstr, al ser el string tipo básico ATLAB. También por complitud se realiza la interfaz con pvm_psend y pvm_precv, limitados al tipo array double. Las funciones de funciones (FUN) tienen bajo C un argumento puntero a función. Bajo ATLAB, la única forma de referenciar código es textualmente, como string a ejecutar mediante eval() desde fichero ó mexcallatlab() desde fichero EX. Se requiere pues interponer una función C (puntero a la cual se pasará a la llamada PV) que evalúe el texto ATLAB indicado por el usuario pvm_addmhf y pvm_delmhf son un poco más complicadas que pvm_recvf, ya que requieren declarar múltiples wrappers y mantener una lista con los identificadores de los que se vayan creando (add), para liberarlos después (del). Ambas rutinas se implementan en un mismo fichero EX para mantener el array en memoria sin perder su valor entre llamadas Extensiones Las extensiones se nombran con el prefijo pvme_* y están programadas como ficheros. pvme_start_pvmd simplifica el número de argumentos de llamada, pudiendo llegar a usar un fichero de configuración por defecto, indicado por pvme_default_config. pvme_is comprueba si está ejecutándose pvmd. pvme_kill admite un array como argumento, en vez de un escalar. pvme_gids devuelve todos los tids en un grupo, no sólo el de una instancia indicada. pvme_pack permite agrupar las variables empaquetadas de manera que se conozca su número al desempaquetarlas. pvme_upkntfy permite desempaquetar mensajes de notificación desde ATLAB, promocionando los datos de tipo int del mensaje akefile La clasificación de funciones realizada permite controlar con precisión las dependencias.c.h include akefile.env... SRCS = \ $(PVSRCS) $(COLSRCS) $(SKSRCS) $(REGSRCS) \ $(SPSRCS) $(FUNSRCS) $(PCKSRCS) $(NRSRCS)... EXS = $(patsubst.c,.mexlx, $(SRCS))... $(EXS):.mexlx:.o $(CC) $(LDFLAGS) $(LDLIBS) $< -o $@... $(PVOBJS): header.h $(COLOBJS): header_col.h $(SKOBJS): header_msk.h $(REGOBJS): header_reg.h $(SPOBJS): header_smp.h Los flags en akefile.env son sencillamente EXCPPFLAGS = -I$(5_ROOT)/extern/include \ -DATLAB_EX_FILE DEBUGFLAGS = -g OPTIFLAGS = -O -DNDEBUG EXLDFLAGS = -shared PVCPPFLAGS = -I$(PV_ROOT)/include PVLDFLAGS = -L$(PV_ROOT)/lib/$(PV_ARCH) PVLIBS = -lpvm3 -lgpvm3 CPPFLAGS = $(EXCPPFLAGS) $(PVCPPFLAGS) # CFLAGS = $(OPTIFLAGS) CFLAGS = $(DEBUGFLAGS) LDFLAGS = $(EXLDFLAGS) $(PVLDFLAGS) LDLIBS = $(PVLIBS) Observar que basta con cambiar el último CFLAGS para pasar de modo depuración a optimizado. 3 TUTORIAL La Toolbox PVTB se acompaña de una extensa relación de pruebas a realizar para comprobar su correcto funcionamiento. Está redactada en estilo tutorial, sirviendo pues para familiarizarse con las llamadas PV y con los conceptos asociados al paso de mensajes. Las pruebas incluyen el uso del entorno de alto nivel mencionado (). Dicho entorno está íntegramente programado en ficheros, y se explica también detalladamente en [3]. PVTB sólo ha sido comprobada bajo sistemas UNIX. El paso de mensajes entre varios ATLAB requiere naturalmente el correspondiente número de licencias. Se incluyen programas C para ejercitar el paso de mensajes sin necesidad de ejecutar instancias adicionales de ATLAB. Agradecimientos El autor agradece al Departamento de Arquitectura y Tecnología de Computadores de la Universidad de Granada el uso de su instalación de ATLAB. Este trabajo ha sido financiado por los Proyectos CICYT TIC y TAP Referencias

10 [1] H. Dietz (1998) Linux Parallel Processing HOWTO. HOWTO/Parallel-Processing-HOWTO.html [2] B.L. Evans, S.X. Gu (1997) Tath 0.2: A Tcl Interface to ATLAB and athematica. tmath.html [3] J. Fernández (1999) Toolbox PV. Informe Técnico Depto. de Arquitectura y Tecn. Comp. Universidad de Granada. [4] A. Geist, A. Beguelin, J. Dongarra, W. Jiang, R. anchek, V. Sunderam, (1994) PV 3 Users Guide and Reference anual. Oak Ridge National Laboratory. Oak Ridge, Tennessee [5] A. Geist, A. Beguelin, J. Dongarra, W. Jiang, R. anchek, V. Sunderam, (1994) PV: Parallel Virtual achine. A Users Guide and Tutorial for Networked Parallel Computing. The IT Press. Cambridge, assachusetts. [6] W. Gropp, E. Lusk, A. Skjelum (1994) Using PI: Portable Parallel Programming with the essage-passing Interface, The IT Press ISBN html [7] J. Hollingsworth, K. Liu, P. Pauca (1996) PT v.1.00 anual and Reference Pages, Technical report, athematics and Computer Science Department, Wake Forest University. [8] LA Group (1996) PI Primer / Developing with LA, Ohio Supercomputer Center, The Ohio State University, downloads/lam/lam61.doc.ps.z [9] LA HomePage, [10] The athworks Home Downloads, ATLAB 5 User Contributed -Files, miscelaneous, miscv5.shtml [11] The athworks, Inc. (1998) ATLAB 5.2 Product Family New Features [12] The athworks, Inc. (1998) ATLAB Application Program Interface Guide. help/pdf_doc/matlab/api/apiguide.pdf [13] The athworks, Inc. (1999) Release 11 New Features. helpdesk/help/pdf_doc/matlab/newfeat.pdf [14] V.S. enon, A.E. Trefethen (1997) ultiatlab: Integrating ATLAB with High-Performance Parallel Computing. Supercomputing 97 AC SIGARCH and IEEE Computer Society papers/sc97 TECH/ENON/INDEX.HT [15] C. oler (1995) Why there isn t a parallel ATLAB. athworks Newsletter. Spring newsletter/pdf/spr95cleve.pdf [16] PI Forum (1994) PI: A essage-passing Interface standard, International Journal of Supercomputer Applications and High Performance Computing, vol.8. numb.3/4. html/mpi-report.html [17] PI Forum (1997) PI-2: Extensions to the esssage-passing Interface, Technical report html/mpi2-report.html [18] PI HomePage, [19] PICH, [20] S. Pawletta (1998) Extensions of a Scientific and Technical Computation and Visualization System to a Development Environment for Parallel Applications Ph.D.Thesis, University of Rostock. [21] S. Pawletta et al (1999) Distributed and Parallel Application Toolbox v1.4 Technical report, Institute of Automatic Control, Department of echanical Engineering, University of Rostock, Germany. [22] PV Group (1994) The PV Project. [23] A.E. Trefethen, V.S. enon, C. Chang, G.J. Czajkowski, C. yers, L.N. Trefethen (1996) ultiatlab: ATLAB on ultiple Processors. Technical Report , Cornell Theory Center, University of Cornell multimatlab.html

PVM Parallel Virtual Machine. Autor: Alejandro Gutiérrez Muñoz

PVM Parallel Virtual Machine. Autor: Alejandro Gutiérrez Muñoz PVM Parallel Virtual Machine Autor: Alejandro Gutiérrez Muñoz PVM Qué es PVM? Consiste en un software y un conjunto de librerías, que permiten establecer una colección de uno o mas sistemas de computación,

Más detalles

Computación de Alta Performance Curso 2009 PVM (PARALLEL VIRTUAL MACHINE)

Computación de Alta Performance Curso 2009 PVM (PARALLEL VIRTUAL MACHINE) Computación de Alta Performance Curso 2009 (PARALLEL VIRTUAL MACHINE) QUÉ ES? Una BIBLIOTECA para el desarrollo de aplicaciones paralelas y distribuidas. Cualidades Potencia. Simplicidad. Portabilidad

Más detalles

Computación de Alta Performance Curso 2009. PVM Avanzado

Computación de Alta Performance Curso 2009. PVM Avanzado Computación de Alta Performance Curso 2009 Avanzado QUÉ ES? Una BIBLIOTECA, NO un Lenguaje Un estandar de facto, no de comité Soporte para: Administracion dinamica de maquinas heterogeneas Identificacion

Más detalles

Manuel Arenaz. arenaz@udc.es

Manuel Arenaz. arenaz@udc.es Manuel Arenaz arenaz@udc.es Introducción a la programación paralela Qué es la Programación Paralela? Computador estándar secuencial: Ejecuta las instrucciones de un programa en orden para producir un resultado

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

Entre los más conocidos editores con interfaz de desarrollo tenemos:

Entre los más conocidos editores con interfaz de desarrollo tenemos: Herramientas de programación Para poder programar en ensamblador se precisa de algunas herramientas básicas, como un editor para introducir el código, un ensamblador para traducir el código a lenguaje

Más detalles

Guía Rápida de Puesta en Marcha de MailStore

Guía Rápida de Puesta en Marcha de MailStore Guía Rápida de Puesta en Marcha de MailStore Primeros Pasos Paso 1: Requerimientos de sistema e instalación El servidor de MailStore se puede instalar en cualquier PC en la red. Si se esta utilizando un

Más detalles

Tema 1. Introducción a JAVA

Tema 1. Introducción a JAVA Tema 1. Introducción a JAVA Historia Características Plataforma Java Entorno de desarrollo Ejemplo: Hola mundo Estructura general de un programa Java 1 Historia de Java (i) Surge en 1991: Sun Microsystems

Más detalles

4. Programación Paralela

4. Programación Paralela 4. Programación Paralela La necesidad que surge para resolver problemas que requieren tiempo elevado de cómputo origina lo que hoy se conoce como computación paralela. Mediante el uso concurrente de varios

Más detalles

El proceso de Instalación de Microsoft SQL Server 2008

El proceso de Instalación de Microsoft SQL Server 2008 El proceso de Instalación de Microsoft SQL Server 2008 Luis Alejandro Esteban C - nave_tze@hotmail.com Este documento va dirigido a profesionales de tecnología interesados en entender el proceso de instalación

Más detalles

Capítulo 12: Indexación y asociación

Capítulo 12: Indexación y asociación Capítulo 12: Indexación y asociación Conceptos básicos Índices ordenados Archivos de índice de árbol B+ Archivos de índice de árbol B Asociación estática Asociación dinámica Comparación entre indexación

Más detalles

Race Manager by Master Timing Guía del usuario GUIA RACE MANAGER. Eventronic, SL

Race Manager by Master Timing Guía del usuario GUIA RACE MANAGER. Eventronic, SL GUIA RACE MANAGER Eventronic, SL DESCRIPCIÓN DEL PROGRAMA El Race Manager es un programa que se creó para facilitar el trabajo de la dirección de carrera de un evento durante y después de una carrera.

Más detalles

Acronis License Server. Guía del usuario

Acronis License Server. Guía del usuario Acronis License Server Guía del usuario TABLA DE CONTENIDO 1. INTRODUCCIÓN... 3 1.1 Generalidades... 3 1.2 Política de licencias... 3 2. SISTEMAS OPERATIVOS COMPATIBLES... 4 3. INSTALACIÓN DE ACRONIS LICENSE

Más detalles

Capítulo 5. Cliente-Servidor.

Capítulo 5. Cliente-Servidor. Capítulo 5. Cliente-Servidor. 5.1 Introducción En este capítulo hablaremos acerca de la arquitectura Cliente-Servidor, ya que para nuestra aplicación utilizamos ésta arquitectura al convertir en un servidor

Más detalles

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.2 UML: Modelado de casos de uso

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.2 UML: Modelado de casos de uso PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación II MODELOS y HERRAMIENTAS UML 1 1 Modelado de casos de uso (I) Un caso de uso es una técnica de modelado usada para describir lo que debería hacer

Más detalles

Creación y administración de grupos de dominio

Creación y administración de grupos de dominio Creación y administración de grupos de dominio Contenido Descripción general 1 a los grupos de Windows 2000 2 Tipos y ámbitos de los grupos 5 Grupos integrados y predefinidos en un dominio 7 Estrategia

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

Introducción a la Programación en MATLAB

Introducción a la Programación en MATLAB Introducción a la Programación en MATLAB La programación en MATLAB se realiza básicamente sobre archivos M, o M-Files. Se los denomina de esta forma debido a su extensión.m. Estos archivos son simple archivos

Más detalles

- Bases de Datos - - Diseño Físico - Luis D. García

- Bases de Datos - - Diseño Físico - Luis D. García - Diseño Físico - Luis D. García Abril de 2006 Introducción El diseño de una base de datos está compuesto por tres etapas, el Diseño Conceptual, en el cual se descubren la semántica de los datos, definiendo

Más detalles

COMO CONFIGURAR UNA MAQUINA VIRTUAL EN VIRTUALBOX PARA ELASTIX

COMO CONFIGURAR UNA MAQUINA VIRTUAL EN VIRTUALBOX PARA ELASTIX COMO CONFIGURAR UNA MAQUINA VIRTUAL EN VIRTUALBOX PARA ELASTIX En este manual se presenta el proceso de configuración de una Maquina Virtual en VirtualBox, que será utilizada para instalar un Servidor

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

COPIAS DE SEGURIDAD AUTOMÁTICAS DE DIRECCIONES CALLEÇPAÑA

COPIAS DE SEGURIDAD AUTOMÁTICAS DE DIRECCIONES CALLEÇPAÑA COPIAS DE SEGURIDAD AUTOMÁTICAS DE DIRECCIONES CALLEÇPAÑA Autor: Carlos Javier Martín González. Licenciado en Física Teórica por la Universidad Autónoma de Madrid. Analista programador y funcional. Desarrollador

Más detalles

Administración de sistemas UNIX/Linux Práctica Colección de scripts para la configuración de una infraestructura de máquinas UNIX

Administración de sistemas UNIX/Linux Práctica Colección de scripts para la configuración de una infraestructura de máquinas UNIX Administración de sistemas UNIX/Linux Práctica Colección de scripts para la configuración de una infraestructura de máquinas UNIX Curso 2013/2014 Introducción Esta práctica consiste en la elaboración de

Más detalles

RESUMEN INFORMATIVO PROGRAMACIÓN DIDÁCTICA CURSO 2013/2014

RESUMEN INFORMATIVO PROGRAMACIÓN DIDÁCTICA CURSO 2013/2014 RESUMEN INFORMATIVO PROGRAMACIÓN DIDÁCTICA CURSO 2013/2014 FAMILIA PROFESIONAL: INFORMATICA Y COMUNICACIONES MATERIA: 28. DESARROLLO WEB EN ENTORNO SERVIDOR CURSO: 2º DE CFGS DESARROLLO DE APLICACIONES

Más detalles

Tema II Introducción a X-Lib (R-1.0)

Tema II Introducción a X-Lib (R-1.0) Tema II Introducción a X-Lib (R-1.0) Programación en Entornos Interactivos. 7 de junio de 2011 Dpto. Lenguajes y Sistemas Informáticos Universidad de Alicante 1 / 1 Resumen Presentación de X-Lib. Errores

Más detalles

Java Inicial (20 horas)

Java Inicial (20 horas) Java Inicial (20 horas) 1 Temario 1. Programación Orientada a Objetos 2. Introducción y Sintaxis Java 3. Sentencias Control Flujo 4. POO en Java 5. Relaciones entre Objetos 6. Polimorfismo, abstracción

Más detalles

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA Documento de trabajo elaborado para la Red Temática DocenWeb: Red Temática de Docencia en Control mediante Web (DPI2002-11505-E)

Más detalles

Estructuras de Sistemas Operativos

Estructuras de Sistemas Operativos Estructuras de Sistemas Operativos Definicion de Sistema Operativos Un sistema operativo es un programa que actua como inter entre el usuario y el hardware de un computador y su proposito es proporcionar

Más detalles

Oficina Online. Manual del administrador

Oficina Online. Manual del administrador Oficina Online Manual del administrador 2/31 ÍNDICE El administrador 3 Consola de Administración 3 Administración 6 Usuarios 6 Ordenar listado de usuarios 6 Cambio de clave del Administrador Principal

Más detalles

Elementos requeridos para crearlos (ejemplo: el compilador)

Elementos requeridos para crearlos (ejemplo: el compilador) Generalidades A lo largo del ciclo de vida del proceso de software, los productos de software evolucionan. Desde la concepción del producto y la captura de requisitos inicial hasta la puesta en producción

Más detalles

Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual

Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual Introducción Algunas de las personas que trabajan con SGBD relacionales parecen preguntarse porqué deberían preocuparse del diseño de las bases de datos que utilizan. Después de todo, la mayoría de los

Más detalles

Nuevas tendencias: Virtualización de computadores / servidores

Nuevas tendencias: Virtualización de computadores / servidores Nuevas tendencias: Virtualización de computadores / servidores Expositor: Ing. José Wu Chong Laboratorio de Internetworking FIA DATA Agenda Qué es un servidor? Qué servicios hay en la red? Qué es Virtualización?

Más detalles

General Parallel File System

General Parallel File System General Parallel File System Introducción GPFS fue desarrollado por IBM, es un sistema que permite a los usuarios compartir el acceso a datos que están dispersos en múltiples nodos; permite interacción

Más detalles

CONSULTAS DE RESUMEN SQL SERVER 2005. Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

CONSULTAS DE RESUMEN SQL SERVER 2005. Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE CONSULTAS DE RESUMEN SQL SERVER 2005 Manual de Referencia para usuarios Salomón Ccance CCANCE WEBSITE CONSULTAS DE RESUMEN Una de las funcionalidades de la sentencia SELECT es el permitir obtener resúmenes

Más detalles

Introducción a ZEUS. Introducción. Curso Doctorado Sistemas Multi-agente. Zeus es una herramienta de desarrollo de SMA.

Introducción a ZEUS. Introducción. Curso Doctorado Sistemas Multi-agente. Zeus es una herramienta de desarrollo de SMA. Introducción a ZEUS Curso Doctorado Sistemas Multi-agente Introducción Zeus es una herramienta de desarrollo de SMA. 1 Introducción Está constituido fundamentalmente por 3 grupos funcionales: Biblioteca

Más detalles

Manual de ACCESS Intermedio

Manual de ACCESS Intermedio Manual de ACCESS Intermedio Funciones agregadas (GROUP BY) Las funciones agregadas proporcionan información estadística sobre conjuntos de registros. Por ejemplo, puede usar una función agregada para contar

Más detalles

Microsoft SQL Server Conceptos.

Microsoft SQL Server Conceptos. Microsoft Conceptos. Microsoft 2005 es una plataforma de base de datos a gran escala de procesamiento de transacciones en línea (OLTP) y de procesamiento analítico en línea (OLAP). La siguiente tabla muestra

Más detalles

TEMA 3. EL PROCESO DE COMPILACIÓN, DEL CÓDIGO FUENTE AL CÓDIGO MÁQUINA

TEMA 3. EL PROCESO DE COMPILACIÓN, DEL CÓDIGO FUENTE AL CÓDIGO MÁQUINA TEMA 3. EL PROCESO DE COMPILACIÓN, DEL CÓDIGO FUENTE AL CÓDIGO MÁQUINA Programa: Algoritmo (secuencia no ambigua, finita y ordenada de instrucciones para la resolución de un determinado problema) traducido

Más detalles

SISTEMAS INFORMÁTICOS EN TIEMPO REAL 2º Ingeniería Industrial MANUAL DE HERRAMIENTAS SOFTWARE PARA PROGRAMACIÓN EN UNIX

SISTEMAS INFORMÁTICOS EN TIEMPO REAL 2º Ingeniería Industrial MANUAL DE HERRAMIENTAS SOFTWARE PARA PROGRAMACIÓN EN UNIX 1 OBJETIVO Este manual describe las herramientas básicas necesarias para programar y gestionar una estación UNIX remota desde un PC con S.O Windows. El software utilizado es gratuito y está disponible

Más detalles

Práctica 3ProgramacionRS232: Programación básica de la RS232

Práctica 3ProgramacionRS232: Programación básica de la RS232 Práctica 3ProgramacionRS232: Programación básica de la RS232 1 Objetivos El objetivo de esta práctica es la iniciación del alumno en la programación de las comunicaciones en un entorno de desarrollo basado

Más detalles

Instalación y mantenimiento de servicios de Internet. U.T.3.- Servicio DNS

Instalación y mantenimiento de servicios de Internet. U.T.3.- Servicio DNS Instalación y mantenimiento de servicios de Internet U.T.3.- Servicio DNS 1 Qué es el servicio DNS? A los usuarios de Internet les resulta complicado trabajar con direcciones IP, sobre todo porque son

Más detalles

Microsoft HPC. V 1.0 José M. Cámara (checam@ubu.es)

Microsoft HPC. V 1.0 José M. Cámara (checam@ubu.es) Microsoft HPC V 1.0 José M. Cámara (checam@ubu.es) Introducción Microsoft HPC (High Performance Computing) es la solución de Microsoft a la computación de alto rendimiento. Está enfocado principalmente

Más detalles

JAVA EE 5. Arquitectura, conceptos y ejemplos.

JAVA EE 5. Arquitectura, conceptos y ejemplos. JAVA EE 5. Arquitectura, conceptos y ejemplos. INTRODUCCIÓN. MODELO DE LA APLICACIÓN JEE5. El modelo de aplicación Java EE define una arquitectura para implementar servicios como lo hacen las aplicaciones

Más detalles

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE PRUEBAS DE SOFTWARE La prueba del software es un elemento crítico para la garantía de la calidad del software. El objetivo de la etapa de pruebas es garantizar la calidad del producto desarrollado. Además,

Más detalles

Gestión de la Configuración

Gestión de la Configuración Gestión de la ÍNDICE DESCRIPCIÓN Y OBJETIVOS... 1 ESTUDIO DE VIABILIDAD DEL SISTEMA... 2 ACTIVIDAD EVS-GC 1: DEFINICIÓN DE LOS REQUISITOS DE GESTIÓN DE CONFIGURACIÓN... 2 Tarea EVS-GC 1.1: Definición de

Más detalles

Práctica sobre compartición de instancias remotas.

Práctica sobre compartición de instancias remotas. Práctica sobre compartición de instancias remotas. Para esta práctica se ha construido un pequeño sistema cliente-servidor que permite la resolución de Sudokus entre varios jugadores. El servidor consta

Más detalles

19. Packages o paquetes

19. Packages o paquetes Programación orientada a objetos con Java 201 19. Packages o paquetes Objetivos: a) Definir el concepto de paquete b) Interpretar el código fuente de una aplicación Java donde se utilicen paquetes c) Construir

Más detalles

LiLa Portal Guía para profesores

LiLa Portal Guía para profesores Library of Labs Lecturer s Guide LiLa Portal Guía para profesores Se espera que los profesores se encarguen de gestionar el aprendizaje de los alumnos, por lo que su objetivo es seleccionar de la lista

Más detalles

Capítulo 3 Diseño del Sistema de Administración de Información de Bajo Costo para un Negocio Franquiciable

Capítulo 3 Diseño del Sistema de Administración de Información de Bajo Costo para un Negocio Franquiciable Capítulo 3 Diseño del Sistema de Administración de Información de Bajo Costo para un Negocio Franquiciable 1. Introducción. El Sistema de Administración de Información de un Negocio Franquiciable (SAINF)

Más detalles

Servicio de Apoyo a la Investigación. Tutorial EndNoteWeb

Servicio de Apoyo a la Investigación. Tutorial EndNoteWeb Servicio de Apoyo a la Investigación Tutorial EndNoteWeb I AÑADIR REFERENCIAS. LA PESTAÑA COLLECT Collect es la pestaña que se utiliza para añadir referencias a nuestra biblioteca. Se pueden añadir hasta

Más detalles

Router Teldat. Protocolo TELNET

Router Teldat. Protocolo TELNET Router Teldat Protocolo TELNET Doc. DM738 Rev. 10.80 Agosto, 2011 ÍNDICE Capítulo 1 Introducción... 1 1. Protocolo TELNET... 2 Capítulo 2 Configuración... 3 1. Comandos de Configuración... 4 1.1.?(AYUDA)...

Más detalles

Guí a Ra pida Dropbox.

Guí a Ra pida Dropbox. Guí a Ra pida Dropbox. Software desarrollado para alojar y compartir archivos vía WEB. Ing. Verónica Lisset Nieto Quintanilla vlnietoq@gmail.com http://www.veronicalnieto.blogspot.com/ www.vlnieto.wikispaces.com

Más detalles

Escuela Politécnica Superior de Elche

Escuela Politécnica Superior de Elche Práctica 0 (Repaso) Estándar de programación y Diagramas de flujo.:::1 Sesión:::. a. Estándar de normalización En este apartado se sugieren una serie de normas que ayudarán a que el código sea más fácil

Más detalles

SERVIDOR WEB PARA ACCESO EN TIEMPO REAL A INFORMACIÓN METEOROLÓGICA DISTRIBUIDA

SERVIDOR WEB PARA ACCESO EN TIEMPO REAL A INFORMACIÓN METEOROLÓGICA DISTRIBUIDA SERVIDOR WEB PARA ACCESO EN TIEMPO REAL A INFORMACIÓN METEOROLÓGICA DISTRIBUIDA E. SÁEZ, M. ORTIZ, F. QUILES, C. MORENO, L. GÓMEZ Área de Arquitectura y Tecnología de Computadores. Departamento de Arquitectura

Más detalles

TUTORIAL DE PHP. M. en C. Erika Vilches. Parte 2. http://www.erikavilches.com

TUTORIAL DE PHP. M. en C. Erika Vilches. Parte 2. http://www.erikavilches.com TUTORIAL DE PHP M. en C. Erika Vilches Parte 2 http://www.erikavilches.com Enunciados Condicionales Inicia con la palabra clave if seguida de una condición entre paréntesis $number = 5; if ($number < 10)

Más detalles

Arquitectura de sistema de alta disponibilidad

Arquitectura de sistema de alta disponibilidad Mysql Introducción MySQL Cluster esta diseñado para tener una arquitectura distribuida de nodos sin punto único de fallo. MySQL Cluster consiste en 3 tipos de nodos: 1. Nodos de almacenamiento, son los

Más detalles

7. Manejo de Archivos en C.

7. Manejo de Archivos en C. 7. Manejo de Archivos en C. Los datos que hemos tratado hasta el momento han residido en la memoria principal. Sin embargo, las grandes cantidades de datos se almacenan normalmente en un dispositivo de

Más detalles

JavaScript como Orientación a Objetos

JavaScript como Orientación a Objetos Gustavo Lacoste (gustavo@lacosox.org) October 2012 Resumen El objetivo de las siguientes notas es generar una estructura en JavaScript que nos permita reutilizar de manera limpia las funciones creadas

Más detalles

Uso del simulador Modelsim

Uso del simulador Modelsim Introducción al laboratorio: Uso del simulador Modelsim Diseño y Simulación de Circuitos Electrónicos por Asistido por Computador Ingeniería Técnica Industrial Electrónica Modelsim es un software que administra

Más detalles

Base de datos Procedimientos Almacenados y Funciones

Base de datos Procedimientos Almacenados y Funciones Base de datos Procedimientos Almacenados y Eduardo Saavedra A. Universidad Nacional Andrés Bello 4 de noviembre de 2008 Contenidos Ventajas 1 Ventajas 2 3 4 5 Conceptos Ejemplo 6 Procedimiento Almacenado

Más detalles

CAPITULO 9. Diseño de una Base de Datos Relacional Distribuida

CAPITULO 9. Diseño de una Base de Datos Relacional Distribuida 9.1 Operaciones CAPITULO 9 Diseño de una Base de Datos Relacional Distribuida Las consultas distribuidas obtienen acceso a datos de varios orígenes de datos homogéneos o heterogéneos. Estos orígenes de

Más detalles

Unidad III: Lenguaje de manipulación de datos (DML) 3.1 Inserción, eliminación y modificación de registros

Unidad III: Lenguaje de manipulación de datos (DML) 3.1 Inserción, eliminación y modificación de registros Unidad III: Lenguaje de manipulación de datos (DML) 3.1 Inserción, eliminación y modificación de registros La sentencia INSERT permite agregar nuevas filas de datos a las tablas existentes. Está sentencia

Más detalles

Tutorial para la comunicación TCP en el BMS Server

Tutorial para la comunicación TCP en el BMS Server Tutorial para la comunicación TCP en el BMS Server Contenido 1. Pasos iniciales para trabajar empleando conexión TCP... 2 2. Configuración de la conexión TCP... 4 2.1. Comprobación de la conexión TCP...

Más detalles

LABORATORIO DE RC: PRÁCTICA 4: IMPLEMENTACIÓN DE UN CLIENTE DE CORREO

LABORATORIO DE RC: PRÁCTICA 4: IMPLEMENTACIÓN DE UN CLIENTE DE CORREO UNIVERSIDADE DA CORUÑA Departamento de Tecnoloxías da Información e as Comunicacións LABORATORIO DE RC: PRÁCTICA 4: IMPLEMENTACIÓN DE UN CLIENTE DE CORREO PRÁCTICA 4: Implementación de un Cliente de Correo

Más detalles

MySQL: Guía de Referencia

MySQL: Guía de Referencia Instituto Tecnologico Superior de Coatzacoalcos (ITESCO). MySQL: Guía de Referencia Farid Alfredo Bielma Lopez fbielma@fbielma.org http://fbielma.org/course/fbielma/curso_mysql.pdf Resumen del curso Algunas

Más detalles

Novedades en Q-flow 3.02

Novedades en Q-flow 3.02 Novedades en Q-flow 3.02 Introducción Uno de los objetivos principales de Q-flow 3.02 es adecuarse a las necesidades de grandes organizaciones. Por eso Q-flow 3.02 tiene una versión Enterprise que incluye

Más detalles

ADMINISTRACIÓN CENTRALIZADA DELL POWERVAULT DL2000 CON TECNOLOGÍA SYMANTEC

ADMINISTRACIÓN CENTRALIZADA DELL POWERVAULT DL2000 CON TECNOLOGÍA SYMANTEC ADMINISTRACIÓN CENTRALIZADA DELL POWERVAULT DL2000 CON TECNOLOGÍA SYMANTEC RESUMEN EJECUTIVO Es un método ideal para que cualquier departamento de TI logre realizar respaldos y restauraciones más rápidas

Más detalles

Procesadores de lenguaje Tema 5 Comprobación de tipos

Procesadores de lenguaje Tema 5 Comprobación de tipos Procesadores de lenguaje Tema 5 Comprobación de tipos Departamento de Ciencias de la Computación Universidad de Alcalá Resumen Sistemas de tipos. Expresiones de tipo. Equivalencia de tipos. Sobrecarga,

Más detalles

Soluciones Informáticas para la Gestión de la Calidad c/vicente Aleixandre nº 10 4º H, 15009 A CORUÑA Telf: 981 133 207 / 616 145 723 info@spuch.

Soluciones Informáticas para la Gestión de la Calidad c/vicente Aleixandre nº 10 4º H, 15009 A CORUÑA Telf: 981 133 207 / 616 145 723 info@spuch. MANUAL DE USUARIO Índice Índice... 2 Introducción... 2 Pantalla inicial... 3 Conectar las bases de datos... 4 Periodicidad de sincronización... 6 Reglas de sincronización... 7 Ejecutar consultas SQL...

Más detalles

Gestion de archivos. Problemas al almacenar datos sólo en la memoria:

Gestion de archivos. Problemas al almacenar datos sólo en la memoria: Gestion de archivos Problemas al almacenar datos sólo en la memoria: 1. El tamaño está limitado por el tamaño de la memoria qué pasa con aplicaciones que necesiten acceder a gran cantidad de información?

Más detalles

Iniciando con Oracle. Índice de contenido. Ingresando a Oracle. Cambiando Su Contraseña. Ingresando un Comando SQL en SQL*Plus

Iniciando con Oracle. Índice de contenido. Ingresando a Oracle. Cambiando Su Contraseña. Ingresando un Comando SQL en SQL*Plus Iniciando con Oracle Índice de contenido Ingresando a Oracle...1 Cambiando Su Contraseña...1 Ingresando un Comando SQL en SQL*Plus...2 Saliendo de SQL*Plus...2 Consiguiendo Ayuda...2 Creación de una Tabla...3

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

Procedimientos para agrupar y resumir datos

Procedimientos para agrupar y resumir datos Procedimientos para agrupar y resumir datos Contenido Introducción Presentación de los primeros n valores Uso de funciones de agregado 4 Fundamentos de GROUP BY 8 Generación de valores de agregado dentro

Más detalles

9233506 Edición 1 ES. Nokia y Nokia Connecting People son marcas comerciales registradas de Nokia Corporation

9233506 Edición 1 ES. Nokia y Nokia Connecting People son marcas comerciales registradas de Nokia Corporation 9233506 Edición 1 ES Nokia y Nokia Connecting People son marcas comerciales registradas de Nokia Corporation Guía del usuario de Zip Manager Guía del usuario de Zip Manager Vaya a Zip Manager Pro. Nota:

Más detalles

Estructura de Bases de datos. Leonardo Víquez Acuña

Estructura de Bases de datos. Leonardo Víquez Acuña Estructura de Bases de datos Leonardo Víquez Acuña Lenguajes de Bases de Datos Un sistema de bases de datos proporciona Un lenguaje de definición de datos para especificar el esquema de la base de datos

Más detalles

Instalar GFI WebMonitor

Instalar GFI WebMonitor Instalar GFI WebMonitor Requerimientos del sistema para GFI WebMonitor Microsoft Windows 2000 (SP 3) o 2003 Server. Microsoft ISA Server 2000 (no en modo firewall only ) O Microsoft ISA Server 2004 (Standard

Más detalles

Sesión No. 4. Contextualización INFORMÁTICA 1. Nombre: Procesador de Texto

Sesión No. 4. Contextualización INFORMÁTICA 1. Nombre: Procesador de Texto INFORMÁTICA INFORMÁTICA 1 Sesión No. 4 Nombre: Procesador de Texto Contextualización La semana anterior revisamos los comandos que ofrece Word para el formato del texto, la configuración de la página,

Más detalles

Marcos de Desarrollo. Diseño e implementación de aplicaciones Web con.net

Marcos de Desarrollo. Diseño e implementación de aplicaciones Web con.net Marcos de Desarrollo Diseño e implementación de aplicaciones Web con.net Prácticas de laboratorio (.NET) Planificación de clases prácticas 1. Introducción al entorno de trabajo 2. Ejemplos C# 3. Ejemplos

Más detalles

III. ADMINISTRACIÓN DE ORACLE.

III. ADMINISTRACIÓN DE ORACLE. III. ADMINISTRACIÓN DE ORACLE. 1.- Qué es Oracle? Qué hace un Administrador? 2.- Herramientas de ORACLE. 3.- Características. 4.- Arquitectura. 4.1.- Componentes de la BD. 4.2.- Estructura de la memoria.

Más detalles

Host. En este texto, entenderemos por host toda máquina - léase computadora. Cuenta. Una cuenta, en general, es un espacio de memoria y de disco que

Host. En este texto, entenderemos por host toda máquina - léase computadora. Cuenta. Una cuenta, en general, es un espacio de memoria y de disco que CONCEPTOS BASICOS. Usuario. Un usuario es toda persona que utilice una computadora. Host. En este texto, entenderemos por host toda máquina - léase computadora - conectada a InterNet. También se les llaman

Más detalles

Realización de copias de seguridad en caliente

Realización de copias de seguridad en caliente Realización de copias de seguridad en caliente BASE 100, S.A. www.base100.com Índice 1. INTRODUCCIÓN... 3 2. FUNCIONAMIENTO... 4 2.1 VARIABLES DE ENTORNO... 4 2.2 EJEMPLO... 5 2 : : 6 1. Introducción En

Más detalles

Redes (IS20) Ingeniería Técnica en Informática de Sistemas. http://www.icc.uji.es. CAPÍTULO 8: El nivel de transporte en Internet

Redes (IS20) Ingeniería Técnica en Informática de Sistemas. http://www.icc.uji.es. CAPÍTULO 8: El nivel de transporte en Internet Redes (IS20) Ingeniería Técnica en Informática de Sistemas http://www.icc.uji.es CAPÍTULO 8: El nivel de transporte en Internet ÍNDICE 1. Introducción Curso 2002-2003 - Redes (IS20) -Capítulo 8 1 1. Introducción

Más detalles

Resumen. El rol del lenguaje SQL en los SGBDR y en la Relacional. cjimenez@inf.udec.cl, tamrstro@inf.udec.cl

Resumen. El rol del lenguaje SQL en los SGBDR y en la Relacional. cjimenez@inf.udec.cl, tamrstro@inf.udec.cl El rol del lenguaje SQL en los SGBDR y en la Relacional. cjimenez@inf.udec.cl, tamrstro@inf.udec.cl Resumen demandas de almacenamiento y procesamiento de datos. Es el conjunto de estas dos capacidades

Más detalles

Objetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero.

Objetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero. Objetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero. Uso de Ficheros Todas las estructuras de datos vistas hasta ahora utilizan la

Más detalles

Estructuras de Datos y Algoritmos Tecnólogo en Informática

Estructuras de Datos y Algoritmos Tecnólogo en Informática Estructuras de Datos y Algoritmos Tecnólogo en Informática INSTRUCTIVO DEL COMANDO MAKE ESTRUCTURAS DE DATOS Y ALGORITMOS - TECNÓLOGO EN INFORMÁTICA 1 Contenido Introducción... 3 El archivo makefile...

Más detalles

TELECOMUNICACIONES Y REDES

TELECOMUNICACIONES Y REDES TELECOMUNICACIONES Y REDES Redes Computacionales I Prof. Cristian Ahumada V. Unidad V: Capa de Red OSI 1. Introducción. 2. Protocolos de cada Red 3. Protocolo IPv4 4. División de Redes 5. Enrutamiento

Más detalles

LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN

LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN Tabla de Contenidos LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN... 1 Tabla de Contenidos... 1 General... 2 Uso de los Lineamientos Estándares...

Más detalles

DE VIDA PARA EL DESARROLLO DE SISTEMAS

DE VIDA PARA EL DESARROLLO DE SISTEMAS MÉTODO DEL CICLO DE VIDA PARA EL DESARROLLO DE SISTEMAS 1. METODO DEL CICLO DE VIDA PARA EL DESARROLLO DE SISTEMAS CICLO DE VIDA CLÁSICO DEL DESARROLLO DE SISTEMAS. El desarrollo de Sistemas, un proceso

Más detalles

UNIVERSIDAD NACIONAL SAN ANTONIO ABAD DEL CUSCO CARRERA PROFESIONAL DE INGENIERIA ELECTRONICA LINUX AVID ROMAN GONZALEZ

UNIVERSIDAD NACIONAL SAN ANTONIO ABAD DEL CUSCO CARRERA PROFESIONAL DE INGENIERIA ELECTRONICA LINUX AVID ROMAN GONZALEZ UNIVERSIDAD NACIONAL SAN ANTONIO ABAD DEL CUSCO CARRERA PROFESIONAL DE INGENIERIA ELECTRONICA LINUX AVID ROMAN GONZALEZ Introducción Linux es clónico de UNIX El sistema en si refleja esta compleja herencia

Más detalles

GUÍA PARA LA INSTALACIÓN DE MOODLE EN UN COMPUTADOR PERSONAL QUE USA EL SISTEMA OPERATIVO MS. WINDOWS

GUÍA PARA LA INSTALACIÓN DE MOODLE EN UN COMPUTADOR PERSONAL QUE USA EL SISTEMA OPERATIVO MS. WINDOWS GUÍA PARA LA INSTALACIÓN DE MOODLE EN UN COMPUTADOR PERSONAL QUE USA EL SISTEMA OPERATIVO MS. WINDOWS Objetivo: El propósito de esta guía es indicarle como configurar un entorno moodle de prácticas en

Más detalles

SISTEMAS OPERATIVOS AVANZADOS

SISTEMAS OPERATIVOS AVANZADOS SISTEMAS OPERATIVOS AVANZADOS TEMA 3 CLAVE: MIS 204 PROFESOR: M.C. ALEJA DRO GUTIÉRREZ DÍAZ 3. PROCESOS CONCURRENTES 3.1 Conceptos de programación concurrente 3.2 El problema de la sección crítica 3.3

Más detalles

Puedes descargar los archivos de instalación de Windows SteadyState en el Centro de descarga Microsoft.

Puedes descargar los archivos de instalación de Windows SteadyState en el Centro de descarga Microsoft. Windows SteadyState Resumen Windows SteadyState es una utilidad de Microsoft que facilita el trabajo a quienes se encargan de la configuración y mantenimiento de equipos compartidos, de manera que todo

Más detalles

Maxpho Commerce 11. Gestión CSV. Fecha: 20 Septiembre 2011 Versión : 1.1 Autor: Maxpho Ltd

Maxpho Commerce 11. Gestión CSV. Fecha: 20 Septiembre 2011 Versión : 1.1 Autor: Maxpho Ltd Maxpho Commerce 11 Gestión CSV Fecha: 20 Septiembre 2011 Versión : 1.1 Autor: Maxpho Ltd Índice general 1 - Introducción... 3 1.1 - El archivo CSV... 3 1.2 - Módulo CSV en Maxpho... 3 1.3 - Módulo CSV

Más detalles

CAPÍTULO 3 VISUAL BASIC

CAPÍTULO 3 VISUAL BASIC CAPÍTULO 3 VISUAL BASIC 3.1 Visual Basic Microsoft Visual Basic es la actual y mejor representación del viejo lenguaje BASIC, le proporciona un sistema completo para el desarrollo de aplicaciones para

Más detalles

CAPÍTULO 2 Sistemas De Base De Datos Multiusuarios

CAPÍTULO 2 Sistemas De Base De Datos Multiusuarios CAPÍTULO 2 Sistemas De De Multiusuarios Un sistema multiusuario es un sistema informático que da servicio, manera concurrente, a diferentes usuarios mediante la utilización compartida sus recursos. Con

Más detalles

Sistema de SaaS (Software as a Service) para centros educativos

Sistema de SaaS (Software as a Service) para centros educativos Sistema de SaaS (Software as a Service) para centros educativos Definiciones preliminares: Qué es SaaS? SaaS (1) es un modelo de distribución del software que permite a los usuarios el acceso al mismo

Más detalles

Symantec Backup Exec System Recovery 7.0 Server Edition. Recuperación de sistemas en cuestión de minutos, en lugar de en horas o días

Symantec Backup Exec System Recovery 7.0 Server Edition. Recuperación de sistemas en cuestión de minutos, en lugar de en horas o días PRINCIPALES VENTAJAS TANGIBLES Recuperación de sistemas Windows completos en cuestión de minutos, en lugar de en horas o días Symantec ha demostrado de manera pública y en reiteradas ocasiones que Backup

Más detalles

Tomás P. de Miguel Dpto. Ingeniería de Sistemas Telemáticos. dit UPM

Tomás P. de Miguel Dpto. Ingeniería de Sistemas Telemáticos. dit UPM Tomás P. de Miguel Dpto. Ingeniería de Sistemas Telemáticos Justificación Resolver el problema de interacción entre sistemas heterogéneos Compartir sistemas de ficheros Compartir impresoras entre clientes

Más detalles

WINDOWS 2008 5: TERMINAL SERVER

WINDOWS 2008 5: TERMINAL SERVER WINDOWS 2008 5: TERMINAL SERVER 1.- INTRODUCCION: Terminal Server proporciona una interfaz de usuario gráfica de Windows a equipos remotos a través de conexiones en una red local o a través de Internet.

Más detalles

INTRODUCCION. Ing. Camilo Zapata czapata@udea.edu.co Universidad de Antioquia

INTRODUCCION. Ing. Camilo Zapata czapata@udea.edu.co Universidad de Antioquia INTRODUCCION. Ing. Camilo Zapata czapata@udea.edu.co Universidad de Antioquia Qué es una Red? Es un grupo de computadores conectados mediante cables o algún otro medio. Para que? compartir recursos. software

Más detalles