Prueba de Laboratorio Modelo B01 Semáforos y Memoria Compartida

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

Download "Prueba de Laboratorio Modelo B01 Semáforos y Memoria Compartida"

Transcripción

1 Prueba de Laboratorio APELLIDOS: NOMBRE: GRUPO DE LABORATORIO: Indicaciones: No se permiten libros, apuntes ni teléfonos móviles. Cuando tenga una solución al ejercicio muéstrela al profesor (compilación + ejecución). Debe anotar su solución por escrito en el espacio disponible en este cuestionario. Tiempo para realizar la prueba: 90 minutos. Calificación Enunciado Construya, utilizando ANSI C estándar, dos ejecutables que modelen el siguiente sistema. La simulación constará de un proceso manager que cargará una cadena de la línea de órdenes y encargará su traducción a un conjunto de procesos traduccion. El usuario ejecutará un proceso manager indicándole tres argumentos:./manager <cadena> <num_proc_trad> <tam_max_subv> Este proceso manager cargará cadena en un array de caracteres empleando el punto como separador de elementos. Esta cadena estará formada por números enteros (entre 1 y 57) que tendrán que traducir a caracteres los procesos de traducción (con ayuda de los procesos de puntuación). En num_proc_trad se indicará el número de procesos de traduccion que se lanzarán para traducir el array y tam_max_subv será el tamaño máximo de cada subvector (cada proceso traduccion traducirá del array original suministrado por el cliente un máximo de tamsv elementos). La correspondencia de traducción se resume en la siguiente tabla (la última fila de la tabla es la correspondencia del carácter con su código ASCII necesario para realizar la traducción): Entero Traducción a b... y z A B... Y Z.,!? _ Código ASCII El sistema contará con un único proceso de puntuación que se encargará de traducir los símbolos de puntuación que se corresponderán con los valores enteros del 53 al 57 inclusive. Así, cuando un proceso de traducción encuentre uno de estos valores despertará al proceso de puntuación que escribirá en una variable de memoria compartida el resultado de traducir ese signo de puntuación, volviendo a dormir después de realizar su trabajo. El proceso de traducción leerá ese valor y lo usará en el array del cliente. Los procesos traduccion atenderán peticiones de traducción hasta que el manager les envíe la señal de terminación. En cada petición el proceso manager les indicará el índice de inicio y fin de cada subvector. Los procesos de traducción actualizarán directamente el resultado en el array creado por el manager. Por ejemplo, ante una llamada como:./exec/manager El proceso cliente lanzará dos procesos de traducción que traducirán en 3 partes la cadena de entrada (2 subvectores de tamaño 2, y un subvector de 1 elemento). El resultado de la traducción será el siguiente array de salida en ASCII, con representación en cadena de caracteres "Hola!": Array de entrada Array de salida (ASCII) Representación como caracteres 'H' 'o' 'l' 'a' '!'

2 Resolución Utilice el código fuente suministrado a continuación como plantilla para resolver el ejercicio. Este código no debe ser modificado (salvo la inicialización de los semáforos en el proceso manager). Únicamente debe incorporar su código en la sección indicada. No realice comprobación de errores en los parámetros. El proceso manager se encarga de enviar la señal de terminación a los procesos de traducción y al proceso de puntuación cuando éstos han calculado el sumatorio final. Preste especial atención a lograr el máximo paralelismo posible en la solución. Indique a continuación el valor de inicialización de los semáforos (código en manager.c): Línea de Código Semáforo Uso Inicialización 199 ordenlista Despierta a un proceso de traducción 200 ordenleida Indica al manager que la orden fue leida 201 fin La traducción de un subvector fue realizada 202 mutex Uso exclusivo del proceso de puntuación 203 iniciopun Despierta al proceso de puntuación 204 finpun Espera fin del proceso de puntuación Test de Resultado Correcto Una vez resuelto el ejercicio, si ejecuta el manager con los siguientes argumentos (make test),./exec/manager el resultados debe ser algo similar a (naturalmente cambiará el PID de los procesos de traducción y probablemente el orden de atención de las peticiones):./exec/manager [PID 15245] Ini 0 Fin 1 Traduccion Subvector Ho [PID 15245] Ini 4 Fin 4 Traduccion Subvector! [PID 15246] Ini 2 Fin 3 Traduccion Subvector la Resultado de la Traduccion: Hola! Complete el resultado obtenido de la ejecución con la siguiente lista de argumentos (make solucion):./exec/manager Resultado:

3 Esqueleto de Código Fuente A continuación se muestra el esqueleto de código fuente para resolver el ejercicio. Sólo debe modificar la inicialización de los semáforos e incluir la parte que falta del proceso traductor y el proceso de puntuación. Makefile 1 DIROBJ := obj/ 2 DIREXE := exec/ 3 DIRHEA := include/ 4 DIRSRC := src/ 5 6 CFLAGS := I$(DIRHEA) c Wall std=c99 7 LDLIBS := pthread lrt lm 8 CC := gcc 9 10 all : dirs manager traduccion puntuacion dirs: 13 mkdir p $(DIROBJ) $(DIREXE) manager: $(DIROBJ)manager.o $(DIROBJ)semaforoI.o 16 $(CC) lm o $(DIREXE)$@ $^ $(LDLIBS) traduccion: $(DIROBJ)traduccion.o $(DIROBJ)semaforoI.o 19 $(CC) o $(DIREXE)$@ $^ $(LDLIBS) puntuacion: $(DIROBJ)puntuacion.o $(DIROBJ)semaforoI.o 22 $(CC) o $(DIREXE)$@ $^ $(LDLIBS) $(DIROBJ)%.o: $(DIRSRC)%.c 25 $(CC) $(CFLAGS) $^ o $@ test: 28./exec/manager prueba: 31./exec/manager clean : 34 rm rf *~ core $(DIROBJ) $(DIREXE) $(DIRHEA)*~ $(DIRSRC)*~ globaltp.h 35 #define _POSIX_SOURCE 36 #define _BSD_SOURCE 37 #include <stdio.h> 38 #include <errno.h> 39 #include <string.h> 40 #include <stdlib.h> 41 #include <unistd.h> 42 #include <fcntl.h> 43 #include <math.h> 44 #include <signal.h> 45 #include <sys/mman.h> 46 #include <sys/stat.h> 47 #include <sys/types.h> #include <semaforoi.h> #define SEMORDENLISTA "s_ordenlista" 52 #define SEMORDENLEIDA "s_ordenleida" 53 #define SEMFIN "s_fin" 54 #define MUTEX "s_mutex" #define MEMVECTOR "mc_vector" 57 #define MEMORDEN "mc_orden" #define MEMPUNTUACION "mc_puntuacion" 60 #define SEMPUNTUINI "s_puntuini" 61 #define SEMPUNTUFIN "s_puntufin" #define MAXARRAY struct TDatos_t { 66 char cadena[maxarray]; 67 }; struct TOrden_t { 70 int inicio; 71 int fin; 72 }; enum TipoProceso_t {TRADUCCION, PUNTUACION}; struct TProceso_t { semaforoi.h 1 #ifndef SEMAFOROI_H 2 #define SEMAFOROI_H 3 #include <semaphore.h> 4 5 sem_t *crear_sem (const char *name, 6 unsigned int valor); 7 sem_t *get_sem (const char *name); 8 void destruir_sem (const char *name); 9 void signal_sem (sem_t *sem); 10 void wait_sem (sem_t *sem); 11 #endif 77 enum TipoProceso_t tipo; /* Tipo del proceso: TRADUCCION, PUNTUACION */ 78 pid_t pid; /* PID del proceso hijo */ 79 };

4 semaforoi.c Escuela Superior de Informática 80 #include <stdio.h> 81 #include <errno.h> 82 #include <string.h> 83 #include <stdlib.h> 84 #include <unistd.h> 85 #include <fcntl.h> #include <semaforoi.h> sem_t *crear_sem (const char *name, unsigned int valor) { 90 sem_t *sem; sem = sem_open(name, O_CREAT, 0644, valor); 93 if (sem == SEM_FAILED) { 94 fprintf(stderr, "Error al crear el sem. <%s>: %s\n", 95 name, strerror(errno)); 96 exit(exit_failure); 97 } return sem; 100 } sem_t *get_sem (const char *name) { 103 sem_t *sem; sem = sem_open(name, O_RDWR); 106 if (sem == SEM_FAILED) { 107 fprintf(stderr, "Error al obtener el sem. <%s>: %s\n", 108 name, strerror(errno)); 109 exit(exit_failure); 110 } return sem; 113 } void destruir_sem (const char *name) { 116 sem_t *sem = get_sem(name); /* Se cierra el sem */ 119 if ((sem_close(sem)) == 1) { 120 fprintf(stderr, "Error al cerrar el sem. <%s>: %s\n", 121 name, strerror(errno)); 122 exit(exit_failure); 123 } /* Se elimina el sem */ 126 if ((sem_unlink(name)) == 1) { 127 fprintf(stderr, "Error al destruir el sem. <%s>: %s\n", 128 name, strerror(errno)); 129 exit(exit_failure); 130 } 131 } void signal_sem (sem_t *sem) { 134 if ((sem_post(sem)) == 1) { 135 fprintf(stderr, "Error al modificar el sem.: %s\n", 136 strerror(errno)); 137 exit(exit_failure); 138 } 139 } void wait_sem (sem_t *sem) { 142 if ((sem_wait(sem)) == 1) { 143 fprintf(stderr, "Error al modificar el sem. : %s\n", 144 strerror(errno)); 145 exit(exit_failure); 146 } 147 }

5 manager.c 148 #include "globaltp.h" /* Funciones de soporte */ 151 void crearvector (char *datos, char *arg, int *n); 152 void controlador (int senhal); 153 void liberarrecursos (void); 154 void finalizarprocesos (void); int g_nprocesos; /* Número total de procesos creados */ 157 struct TProceso_t *g_pids; /* Tabla de procesos **/ int main (int argc, char *argv[]) { 160 struct TDatos_t *datos; 161 struct TOrden_t *orden; 162 pid_t pid; int shmmcdatos, shmmcorden, shmmcpunt; 165 sem_t *ordenlista, *ordenleida, *fin; 166 int i, nelementrada, nproctraduccion, tammaximosubvector; 167 int nsubvectores, nsubvectoresprocesados = 0, subvectoractual = 0; /* Instalación del manejador de Control C */ 170 if (signal(sigint, controlador) == SIG_ERR) { 171 fprintf(stderr, "Error al instalar manejador en %s: %s\n", argv[0], strerror(errno)); 172 exit(exit_failure); 173 } nproctraduccion = atoi(argv[2]); /* Numero de procesos de traduccion */ 176 tammaximosubvector = atoi(argv[3]); /* Tamano maximo del subvector */ g_nprocesos = nproctraduccion + 1; 179 g_pids = malloc(sizeof(struct TProceso_t) * (g_nprocesos)); /* Inicialización de la tabla de procesos */ 182 for (i = 0; i < g_nprocesos; i++) { 183 g_pids[i].pid = 0; 184 } shmmcdatos = shm_open(memvector, O_CREAT O_RDWR, 0644); /* Creación de v.m.c. */ 187 ftruncate(shmmcdatos, sizeof(struct TDatos_t)); 188 datos = mmap(null, sizeof(struct TDatos_t), PROT_READ PROT_WRITE, MAP_SHARED, shmmcdatos, 0); crearvector(datos >cadena, argv[1], &nelementrada); shmmcorden = shm_open(memorden, O_CREAT O_RDWR, 0644); 193 ftruncate(shmmcorden, sizeof(struct TOrden_t)); 194 orden = mmap(null, sizeof(struct TOrden_t), PROT_READ PROT_WRITE, MAP_SHARED, shmmcorden, 0); shmmcpunt = shm_open(mempuntuacion, O_CREAT O_RDWR, 0644); 197 ftruncate(shmmcpunt, sizeof(char)); ordenlista = crear_sem(semordenlista, /* VALOR SEMÁFORO */); /* Creación de semáforos*/ 200 ordenleida = crear_sem(semordenleida, /* VALOR SEMÁFORO */); 201 fin = crear_sem(semfin, /* VALOR SEMÁFORO */); 202 crear_sem(mutex, /* VALOR SEMÁFORO */); 203 crear_sem(sempuntuini, /* VALOR SEMÁFORO */); 204 crear_sem(sempuntufin, /* VALOR SEMÁFORO */); for (i = 0; i < nproctraduccion ; i++) { /* Creación de procesos de traducción */ 207 switch (pid = fork()) { 208 case 1 : /* Código de error */ 209 fprintf(stderr, "Error en creación de proceso TRADUCCION: %s\n", strerror(errno)); 210 finalizarprocesos(); 211 liberarrecursos(); 212 exit(exit_failure); 213 case 0 : /* Proceso hijo */ 214 if (execl("./exec/traduccion", "traduccion", NULL) == 1) { 215 fprintf(stderr, "Error al usar execl() en proceso TRADUCCION: %s\n", strerror(errno)); 216 exit(exit_failure); 217 } 218 break; 219 default: /* Proceso padre */ 220 g_pids[i].tipo = TRADUCCION; 221 g_pids[i].pid = pid; 222 } 223 } 224 printf ("Se han lanzado %d procesos TRADUCCION\n", nproctraduccion); 225 sleep(1); /* Esperamos 1 seg. */ switch (pid = fork()) { /* Creación de proceso de puntuación */ 228 case 1 : /* Código de error */ 229 fprintf(stderr, "Error en creación de proceso PUNTUACION: %s\n", strerror(errno)); 230 finalizarprocesos(); 231 liberarrecursos(); 232 exit(exit_failure);

6 233 case 0 : /* Proceso hijo */ 234 if (execl("./exec/puntuacion", "puntuacion", NULL) == 1) { 235 fprintf(stderr, "Error al usar execl() en proceso PUNTUACION: %s\n", strerror(errno)); 236 exit(exit_failure); 237 } 238 break; 239 default: /* Proceso padre */ 240 g_pids[nproctraduccion].tipo = PUNTUACION; 241 g_pids[nproctraduccion].pid = pid; 242 } 243 printf ("Se ha lanzado 1 proceso PUNTUACION\n"); 244 sleep(1); /* Esperamos 1 seg. */ nsubvectores = ceil(nelementrada / (float) tammaximosubvector); /* Nº subvectores */ while (subvectoractual < nsubvectores) { 249 orden >inicio = (subvectoractual * tammaximosubvector); 250 orden >fin = orden >inicio + tammaximosubvector 1; 251 if (orden >fin > (nelementrada 1)) { 252 orden >fin = nelementrada 1; 253 } subvectoractual++; 256 signal_sem(ordenlista); 257 wait_sem(ordenleida); 258 } while (nsubvectoresprocesados < nsubvectores) { /* Esperar a que todos los subvectores */ 261 wait_sem(fin); /* hayan sido calculados. */ 262 nsubvectoresprocesados++; 263 } printf ("\nresultado de la Traduccion: "); 266 for (i=0; i<nelementrada; i++) { 267 printf ("%c", datos >cadena[i]); 268 } 269 printf("\n"); close(shmmcdatos); /* Cierre de v.m.c. */ 272 close(shmmcorden); 273 close(shmmcpunt); finalizarprocesos(); 276 liberarrecursos(); return EXIT_SUCCESS; 279 } /* Inicializa datos a partir de arg */ 282 void crearvector (char *datos, char *arg, int *n) { 283 int i = 0; 284 char *cad; datos[i] = atoi(strtok(arg, ".")); 287 while ((cad = strtok(null, "."))!= NULL) { 288 datos[++i] = atoi(cad); 289 } *n = ++i; 292 } /* Manejador de señal SIGINT */ 295 void controlador (int senhal) { 296 printf("\nfin del programa (Control + C)\n"); 297 finalizarprocesos(); 298 liberarrecursos(); 299 exit(exit_success); 300 } /* Liberación de recursos */ 303 void liberarrecursos (void) { 304 printf("\n Liberando recursos \n"); 305 free(g_pids); 306 destruir_sem(mutex); destruir_sem(semfin); destruir_sem(semordenlista); 307 destruir_sem(semordenleida); destruir_sem(sempuntuini); destruir_sem(sempuntufin); 308 shm_unlink(memvector); shm_unlink(memorden); shm_unlink(mempuntuacion); 309 } /* Terminación de procesos hijos */ 312 void finalizarprocesos (void) { 313 int i; printf("\n Finalización de procesos hijos vivos \n"); 316 for (i = 0; i < g_nprocesos; i++) { 317 if (g_pids[i].pid!= 0) { /* Proceso hijo vivo */ 318 switch (g_pids[i].tipo) { 319 case TRADUCCION: 320 printf("finalizando proceso TRADUCCION [%d]...\n", g_pids[i].pid); 321 break; 322 case PUNTUACION: 323 printf("finalizando proceso PUNTUACION [%d]...\n", g_pids[i].pid); 324 break; 325 }

7 326 kill(g_pids[i].pid, SIGINT); 327 } 328 } 329 } traduccion.c 330 #include "globaltp.h" int main (int argc, char *argv[]) { 333 int shmmcvec, shmmcorden, shmmcpun; 334 struct TDatos_t *datos; 335 struct TOrden_t *orden; 336 char *ordenpuntuacion; 337 sem_t *ordenlista, *ordenleida, *fin, *mutex; 338 sem_t *iniciopun, *finpun; 339 int i, indiceinicio, indicefin; shmmcvec = shm_open(memvector, O_RDWR, 0644); 342 datos = mmap(null, sizeof(struct TDatos_t), PROT_READ PROT_WRITE, MAP_SHARED, shmmcvec, 0); shmmcorden = shm_open(memorden, O_RDWR, 0644); 345 orden = mmap(null, sizeof(struct TOrden_t), PROT_READ PROT_WRITE, MAP_SHARED, shmmcorden, 0); shmmcpun = shm_open(mempuntuacion, O_RDWR, 0644); 348 ordenpuntuacion = mmap(null, sizeof(char), PROT_READ PROT_WRITE, MAP_SHARED, shmmcpun, 0); ordenlista = get_sem(semordenlista); 351 ordenleida = get_sem(semordenleida); 352 fin = get_sem(semfin); 353 mutex = get_sem(mutex); 354 iniciopun = get_sem(sempuntuini); 355 finpun = get_sem(sempuntufin); Incluya aquí el bucle para atender peticiones (Longitud aprox. 25 Líneas de código) Muestre en pantalla información sobre el PID del proceso que ha calculado cada subvector, el inicio y el fin y el resultado parcial de traducción, como en el siguiente ejemplo: [PID 276] Ini 0 Fin 1 Traduccion Subvector Ho 356 return EXIT_SUCCESS; 357 }

8 puntuacion.c Escuela Superior de Informática 358 #include "globaltp.h" int main (int argc, char *argv[]) { Incluya aquí el código del proceso puntuación (Longitud aprox. 20 Líneas de código) 361 return EXIT_SUCCESS; 362 }

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

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

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

OBJETIVOS. Explicar el manejo de archivos de texto. Explicar el manejo de archivos binarios. Desarrollar programas que usen archivos.

OBJETIVOS. Explicar el manejo de archivos de texto. Explicar el manejo de archivos binarios. Desarrollar programas que usen archivos. / OBJETIVOS Explicar el manejo de archivos de texto. Explicar el manejo de archivos binarios. Desarrollar programas que usen archivos. LABORATORIO 6 MANEJO DE ARCHIVOS DE TEXTO Y BINARIOS Msc. Walter Fernandez

Más detalles

Memoria compartida y semáforos r/w. La página del manual que podría servir para describir estas funciones es la siguiente:

Memoria compartida y semáforos r/w. La página del manual que podría servir para describir estas funciones es la siguiente: (3 ptos) Memoria Compartida y Semáforos R/W 1. Objetivo En esta práctica se pretende crear una librería que dé la funcionalidad de un semáforo para resolver problemas con múltiples lectores y escritores

Más detalles

Introducción a Sistemas Operativos: Concurrencia

Introducción a Sistemas Operativos: Concurrencia Introducción a Sistemas Operativos: Concurrencia Clips xxx Fr ancisco J Ballesteros 1. Semáforos Quizá la abstracción más conocida para sincronizar procesos en programación concurrente controlar el acceso

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

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

Paso de Borland Turbo C (bajo DOS) a Anjuta (Linux) 1.

Paso de Borland Turbo C (bajo DOS) a Anjuta (Linux) 1. Paso de Borland Turbo C (bajo DOS) a Anjuta (Linux) 1. Anjuta es un entorno de desarrollo de C que podemos encontrar en cualquier distribución de GNU/Linux. Si nuestra distribución no dispone de ella,

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

!!!!!!!! !!!!! Práctica!4.! Programación!básica!en!C.! ! Grado!en!Ingeniería!!en!Electrónica!y!Automática!Industrial! ! Curso!2015H2016!

!!!!!!!! !!!!! Práctica!4.! Programación!básica!en!C.! ! Grado!en!Ingeniería!!en!Electrónica!y!Automática!Industrial! ! Curso!2015H2016! INFORMÁTICA Práctica4. ProgramaciónbásicaenC. GradoenIngenieríaenElectrónicayAutomáticaIndustrial Curso2015H2016 v2.1(18.09.2015) A continuación figuran una serie de ejercicios propuestos, agrupados por

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

INFORMÁTICA. Práctica 5. Programación en C. Grado en Ingeniería en Electrónica y Automática Industrial. Curso 2013-2014. v1.0 (05.03.

INFORMÁTICA. Práctica 5. Programación en C. Grado en Ingeniería en Electrónica y Automática Industrial. Curso 2013-2014. v1.0 (05.03. INFORMÁTICA Práctica 5. Programación en C. Grado en Ingeniería en Electrónica y Automática Industrial Curso 2013-2014 v1.0 (05.03.14) A continuación figuran una serie de ejercicios propuestos, agrupados

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

Sistemas Operativos (prácticas) E.U. Informática en Segovia Universidad de Valladolid

Sistemas Operativos (prácticas) E.U. Informática en Segovia Universidad de Valladolid Manejo de Señales Sistemas Operativos (prácticas) E.U. Informática en Segovia Universidad de Valladolid Señales Concepto Evento que interrumpe la ejecución normal de un proceso La acción por defecto suele

Más detalles

1. Cuestiones. Ejercicios resueltos de C. Diego Rodríguez-Losada 1. //a) #include <stdio.h> main( ) { int x = 0, y = 0; //b) #include <stdio.

1. Cuestiones. Ejercicios resueltos de C. Diego Rodríguez-Losada 1. //a) #include <stdio.h> main( ) { int x = 0, y = 0; //b) #include <stdio. 1. Cuestiones Enunciado Febrero 04. Ejercicio Tercero. (2 puntos 30 minutos) Resolver los siguientes problemas indicando, en la parte inferior, cual es el resultado de cada programa. En caso de que el

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

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

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

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

Examen escrito de Programación 1

Examen escrito de Programación 1 Examen escrito de Programación 1 Escuela de Ingeniería y Arquitectura Departamento de Informática e Ingeniería de Sistemas 2 de septiembre de 2015 Se debe disponer sobre la mesa en lugar visible un documento

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

Práctica 8: Barreras

Práctica 8: Barreras Arquitectura y Tecnología de Computadores 14 de febrero de 2014 Objetivos Aprender a utilizar las variables condición y las barreras de la biblioteca Pthreads. Diseñar e implementar una barrera: Barrera

Más detalles

Tema 9. Vectores y Matrices

Tema 9. Vectores y Matrices Tema 9. Vectores y Matrices OBJETIVO En temas anteriores hemos declarado variables simples de tipo int, float, o de cualquier otro tipo simple. A menudo necesitaremos declarar una colección de variables,

Más detalles

Se ha desarrollado el siguiente programa principal. Se pide: arquitectura que permita una fácil extensión

Se ha desarrollado el siguiente programa principal. Se pide: arquitectura que permita una fácil extensión APELLIDOS NOMBRE Nº Mat. UNIVERSIDAD POLITÉCNICA DE MADRID ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA Y DISEÑO INDSUTRIAL Departamento Electrónica, Automática e Informática Industrial ASIGNATURA: SISTEMAS

Más detalles

Ejercicios de la sesión 4 de C resueltos

Ejercicios de la sesión 4 de C resueltos Ejercicios de la sesión 4 de C resueltos 1. Usando el procedimiento del ejercicio 2 del seminario anterior, escribe un programa que multiplique dos matrices A y B leídas de ficheros, la primera de tamaño

Más detalles

Programación. Ejercicios Tema 4 Estructuras de Control Repetitivas

Programación. Ejercicios Tema 4 Estructuras de Control Repetitivas Ejercicios Tema 4 Autores: M. Paz Sesmero Lorente Paula de Toledo Heras Fco. Javier Ordoñez Morales Juan Gómez Romero Jose A. Iglesias Martínez Jose Luis Mira SOLUCIONES 1. Escriba un programa en C que

Más detalles

Informática I. While & do While

Informática I. While & do While Asignatura: Informática I Trabajo práctico Nº5 While & do While Estructura repetitiva MIENTRAS o while En C la sentencia while (condición o expresión) instrucciones; es seguramente la más utilizada. La

Más detalles

Sistemas Operativos: Programación de Sistemas. Curso 2006-07. Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J.

Sistemas Operativos: Programación de Sistemas. Curso 2006-07. Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J. Tema 2 : entorno programación linux Sistemas Operativos: Programación de Sistemas Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J. Santana Pérez Curso 2006-07 Francisco J. Santana 1 Programación

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

Práctica 2: Realización de una Alarma Temporizada Diseño de Sistemas Operativos U.L.P.G.C.

Práctica 2: Realización de una Alarma Temporizada Diseño de Sistemas Operativos U.L.P.G.C. Práctica 2: Realización de una Alarma Temporizada David Jesús Horat Flotats Índice I. Explicación del Programa desarrollado... 2 Programa Principal... 2 Variables Tarea que realiza Parámetros Movimiento

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

Apartado a.- Obtenga un listado de todos los ficheros regulares del sistema terminados en.y ó.c, con permiso de lectura para el grupo.

Apartado a.- Obtenga un listado de todos los ficheros regulares del sistema terminados en.y ó.c, con permiso de lectura para el grupo. Examen de Sistemas Operativos (Parte práctica). Primera Convocatoria. Curso 2008/09. Tercero Ingeniería Técnica Informática Nombre: Gestión Sistemas Apellidos: 5 de Febrero de 2009 [Cuestión 1.] Resuelva

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

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

Esquema de un programa en C: bloques básicos

Esquema de un programa en C: bloques básicos Esquema de un programa en C: bloques básicos // Incluimos los ficheros de cabecera que necesitemos. // Esto es un comentario #include #include // Si queremos definir alguna constante,

Más detalles

Arquitectura de Computadores: Exámenes y Controles

Arquitectura de Computadores: Exámenes y Controles 2º curso / 2º cuatr. Grado en Ing. Informática Doble Grado en Ing. Informática y Matemáticas Arquitectura de Computadores: Exámenes y Controles Examen de Prácticas AC 05/07/2013 resuelto Material elaborado

Más detalles

Ejercicio 1 (2 puntos. Tiempo: 25 minutos)

Ejercicio 1 (2 puntos. Tiempo: 25 minutos) Fecha de publicación de notas: jueves 18 de Julio. Fecha de revisión: viernes 19 de Julio a las 10:00h. Despacho C-209. Ejercicio 1 (2 puntos. Tiempo: 25 minutos) Se desea desarrollar un programa en C

Más detalles

TEMA 4. ELEMENTOS BÁSICOS DE PROGRAMACIÓN

TEMA 4. ELEMENTOS BÁSICOS DE PROGRAMACIÓN TEMA 4. ELEMENTOS BÁSICOS DE PROGRAMACIÓN 4.1 Definiciones y palabras reservadas básicas del C El lenguaje C++ está compuesto por: 32 palabras clave (estándar ANSI), comunes a todos los compiladores de

Más detalles

TEMA 8: ESTRUCTURAS DE DATOS COMPLEJAS 1 VECTORES ESTÁTICOS 2 2 CADENAS O VECTORES DE CARACTERES 6 3 PASO DE CADENAS Y ARRAYS A FUNCIONES 8

TEMA 8: ESTRUCTURAS DE DATOS COMPLEJAS 1 VECTORES ESTÁTICOS 2 2 CADENAS O VECTORES DE CARACTERES 6 3 PASO DE CADENAS Y ARRAYS A FUNCIONES 8 TEMA 8: ESTRUCTURAS DE DATOS COMPLEJAS 1 VECTORES ESTÁTICOS 2 1.1 VECTORES O ARRAYS UNIDIMENSIONALES 2 1.2 ARRAYS MULTIDIMENSIONALES 3 1.3 INICIALIZACIÓN DE ARRAYS 4 1.3.1 INICIALIZACIÓN DE ARRAYS SIN

Más detalles

Sistemas Operativos Práctica 4

Sistemas Operativos Práctica 4 Sistemas Operativos Práctica 4 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

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

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

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

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

LABORATORIO 2. La biblioteca a nivel de usuario semso (semáforos Sistemas Operativos) brinda las siguientes primitivas:

LABORATORIO 2. La biblioteca a nivel de usuario semso (semáforos Sistemas Operativos) brinda las siguientes primitivas: 1 Introducción LABORATORIO 2 En esta tarea se desea implementar un servicio sincronización de procesos a través de semáforos binarios con prioridad para el sistema operativo Linux. Para esto se deberá

Más detalles

Examen de Laboratorio de Sistemas Operativos. Primera Convocatoria. 2007/2008. Tercero Ingeniería Informática. Apellidos: 18 de Junio de 2008

Examen de Laboratorio de Sistemas Operativos. Primera Convocatoria. 2007/2008. Tercero Ingeniería Informática. Apellidos: 18 de Junio de 2008 [Cuestión 1.] Resuelva con una línea de comandos UNIX las siguientes tareas: Apartado a.- Compile y enlace en una única instrucción los archivos de código C principal.c, funciones.c y procesos.c. Como

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

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 5 Sentencias de control de flujo. Fundamentos de Informática

Tema 5 Sentencias de control de flujo. Fundamentos de Informática Tema 5 Fundamentos de Informática Sentencias de Control Tipos de sentencias de control: Comprobación lógica para bifurcar el flujo de un programa. Sentencias de control condicional o alternativo Comprobación

Más detalles

Arrays y Cadenas en C

Arrays y Cadenas en C Arrays y Cadenas en C Los arrays son variables estructuradas, donde cada elemento se almacena de forma consecutiva en memoria. Las cadenas de caracteres son declaradas en C como arrays de caracteres y

Más detalles

1 Estructura básica de un programa C++

1 Estructura básica de un programa C++ Elementos básicos de un lenguaje de alto nivel: C++ CONTENIDOS 1. Estructura básica de un programa C++. 2. Tipos de datos simples. 3. Constantes y variables en C++. Declaración. 4. Operadores y expresiones.

Más detalles

1. Introducción. 1.1 Ejercicio 1: Estación Meteorológica (4.0 pts.)... 1 1.2 Ejercicio 2: Gestión Académica: Alumnos (5.0 pts.)...

1. Introducción. 1.1 Ejercicio 1: Estación Meteorológica (4.0 pts.)... 1 1.2 Ejercicio 2: Gestión Académica: Alumnos (5.0 pts.)... Examen Junio Grupo A Programación en C++ Pág. 1 ÍNDICE ÍNDICE... 1 1. Introducción.... 1 1.1 Ejercicio 1: Estación Meteorológica (4.0 pts.)... 1 1.2 Ejercicio 2: Gestión Académica: Alumnos (5.0 pts.)...

Más detalles

Hoja de problemas Estructuras de Control

Hoja de problemas Estructuras de Control Departamento de Estadística, I.O. y Computación Ingeniería Técnica Industrial - Electrónica Industrial Fundamentos de Informática Hoja de problemas Estructuras de Control 1. Cuál es el efecto de las siguientes

Más detalles

Funciones POSIX (I): Introducción

Funciones POSIX (I): Introducción Funciones POSIX I Funciones POSIX I Llamadas al Llamadas al Sistema Sistema Gestión Básica Gestión Básica de Procesos de Procesos Procesos Procesos fork fork Señales Señales getpid getpid Memoria Memoria

Más detalles

ASIGNATURA: SISTEMAS INFORMÁTICOS INDUSTRIALES. CURSO 4º GRUPO Octubre 2015

ASIGNATURA: SISTEMAS INFORMÁTICOS INDUSTRIALES. CURSO 4º GRUPO Octubre 2015 2. Problema de Análisis y Diseño Orientado a Objetos (10 puntos - 20 minutos) Para el código de test adjunto, se pide. 1. Diagrama de clases de diseño (2.5 puntos). 2. Implementación en C++ de la solución

Más detalles

INSTRUCTIVO DEL COMANDO MAKE

INSTRUCTIVO DEL COMANDO MAKE INSTRUCTIVO DEL COMANDO MAKE Introducción Un programa escrito en C está normalmente compuesto por varios archivos. Estos archivos se van modificando según se va completando o cambiando el programa. Cada

Más detalles

FACULTAD DE INGENIERÍA, U.B.A. Seminario de Sistemas Embebidos TRABAJO PRÁCTICO 0

FACULTAD DE INGENIERÍA, U.B.A. Seminario de Sistemas Embebidos TRABAJO PRÁCTICO 0 1 er Cuatrimestre de 2011 FACULTAD DE INGENIERÍA, U.B.A. Seminario de Sistemas Embebidos TRABAJO PRÁCTICO 0 Índice 1. Objetivo 2 2. Preparación del software 2 2.1. Instalación.......................................

Más detalles

Prof. Dr. Paul Bustamante

Prof. Dr. Paul Bustamante Prácticas de C++ Practica Nº 10 Informática II Fundamentos de Programación Prof. Dr. Paul Bustamante INDICE 1.1 EJERCICIO 1: MI PRIMER FICHERO EN BINARIO... 1 1.2 EJERCICIO 2: LEYENDO MI PRIMER FICHERO

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

Seminario 1. Conexión a Oracle

Seminario 1. Conexión a Oracle Seminario 1. Conexión a Oracle Laboratorio de Programación Curso 2007/2008 Fran J. Ruiz Emilio Sobreviela Diseño E/R usuario contrasena Usuarios 1:1 es id_cliente nombre 1:1 Clientes apellidos edad 1 Creación

Más detalles

FILE *nombre_puntero_fichero; fopen(char_nombre_archivo,char_modo_apertura ); MODOS DE APERTURA. Abre un archivo de texto para lectura.

FILE *nombre_puntero_fichero; fopen(char_nombre_archivo,char_modo_apertura ); MODOS DE APERTURA. Abre un archivo de texto para lectura. FICHEROS El sistema de archivos de C está diseñado para secuencias que son independientes del dispositivo. Existen dos tipos se secuencias: de texto que es una ristra de caracteres organizados en líneas

Más detalles

Prof. Dr. Paul Bustamante

Prof. Dr. Paul Bustamante Prácticas de C++ Practica Nº 1 Informática II Fundamentos de Programación Prof. Dr. Paul Bustamante Prácticas de Programación en C++ Pág. 1 ÍNDICE ÍNDICE... 1 1. Introducción... 1 1.1 Ejercicio 1: Cálculo

Más detalles

Funciones POSIX III Funciones POSIX III. No Nombrados Nombrados. sem_open sem_open. sem_close sem_close. sem_unlink sem_unlink

Funciones POSIX III Funciones POSIX III. No Nombrados Nombrados. sem_open sem_open. sem_close sem_close. sem_unlink sem_unlink Funciones POSIX III Funciones POSIX III Sincronización Sincronización Procesos Procesos Semáforos Semáforos (sem_t) (sem_t) Sincronización Sincronización Threads Threads Mutex Mutex (pthread_mutex_t) (pthread_mutex_t)

Más detalles

FUNDAMENTOS DE INFORMÁTICA 1º Ingeniería Industrial

FUNDAMENTOS DE INFORMÁTICA 1º Ingeniería Industrial FUNDAMENTOS DE INFORMÁTICA º PRÁCTICA 4: Funciones y vectores CURSO 5/6 Área de Ingeniería de Sistemas y Automática ISA-UMH R-2-FI4v. FUNDAMENTOS DE INFORMÁTICA PRÁCTICA 4: Funciones y vectores curso 25-26

Más detalles

Prof. Dr. Paul Bustamante

Prof. Dr. Paul Bustamante Prácticas de C++ Practica Nº 1 Informática II Fundamentos de Programación Prof. Dr. Paul Bustamante Prácticas de Programación en C++ Pág. 1 ÍNDICE ÍNDICE... 1 1. Introducción... 1 1.1 Ejercicio 1: Mi

Más detalles

Objective C (Desarrollo con Apple)

Objective C (Desarrollo con Apple) 1 Objective C (Desarrollo con Apple) para programación en Iphone SDK: Similitudes y Diferencias entre Objective C con C/C++ y Java Dr. Moisés Alencastre Miranda, malencastre@itesm.mx 2 Introducción al

Más detalles

Programación I Funciones

Programación I Funciones 1 Funciones Iván Cantador 2 Funciones: definición, sintaxis, ejemplos (I) Una funciónes un bloque de sentencias identificado con un nombre que se ejecutan de manera secuencial ofreciendo una funcionalidad

Más detalles

Una variable de clase escalar tiene un nivel de indirección igual a 1. Por ejemplo, las variables i, b y x definidas como se muestra a continuación.

Una variable de clase escalar tiene un nivel de indirección igual a 1. Por ejemplo, las variables i, b y x definidas como se muestra a continuación. Descripción de la semántica de ALFA En esta descripción sólo se mencionarán los aspectos en los que el lenguaje de programación ALFA pueda diferir de otros lenguajes de programación de alto nivel. Se sobreentienden

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

ARQUITECTURA DE REDES Laboratorio

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

Más detalles

MC Hilda Castillo Zacatelco PROCESOS

MC Hilda Castillo Zacatelco PROCESOS MC Hilda Castillo Zacatelco hildacz@gmail.com PROCESOS Definición y atributos Un proceso es la instancia de un programa en ejecución. Desde el punto de vista del SO, un proceso es la entidad más pequeña

Más detalles

Introducción a C. Grupo de Sistemas y Comunicaciones. Febrero 2008 C 1. Programación imperativa estructurada.

Introducción a C. Grupo de Sistemas y Comunicaciones. Febrero 2008 C 1. Programación imperativa estructurada. Grupo de Sistemas y Comunicaciones gsyc-profes@gsyc.es Febrero 2008 C 1 C Características: Programación imperativa estructurada. Relativamente de bajo nivel. Lenguaje simple, la funcionalidad está en las

Más detalles

APRENDE A CREAR UNA PÁGINA WEB CON HTML

APRENDE A CREAR UNA PÁGINA WEB CON HTML APRENDE A CREAR UNA PÁGINA WEB CON HTML Introducción a PHP INTRODUCCIÓN PHP es una lenguaje de programación del lado del servidor. En este curso, lo usaremos para recibir los datos de un formulario, realizar

Más detalles

Sea el siguiente programa de nombre "c0p1" para copiar archivos (por simplicidad se ha eliminado todo control de errores): Se pide:

Sea el siguiente programa de nombre c0p1 para copiar archivos (por simplicidad se ha eliminado todo control de errores): Se pide: Sea el siguiente programa de nombre "c0p1" para copiar archivos (por simplicidad se ha eliminado todo control de errores): 1 /* c0p1 origen destino 2 * Copia "origen" sobre "destino" byte a byte, 3 * haciendo

Más detalles

Vectores y matrices. Fundamentos de Programación Fundamentos de Programación I

Vectores y matrices. Fundamentos de Programación Fundamentos de Programación I Vectores y matrices Fundamentos de Programación Fundamentos de Programación I 1 Ejemplo de utilización n de vectores: gráfico de producción En una compañía nos han encargado escribir un programita que

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

Clases y Objetos. Informática II Ingeniería Electrónica

Clases y Objetos. Informática II Ingeniería Electrónica Clases y Objetos Informática II Ingeniería Electrónica Los Tipos de Datos Hasta ahora, en un programa podemos usar para representar variables a: Tipos fundamentales : enteros (int), caracteres (char),

Más detalles

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

Lenguaje C Funciones. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia Lenguaje C Funciones Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia Qué es una función o rutina/subrutina? Se presenta como un subalgoritmo

Más detalles

En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.

En cualquier caso, tampoco es demasiado importante el significado de la B, si es que lo tiene, lo interesante realmente es el algoritmo. Arboles-B Características Los árboles-b son árboles de búsqueda. La "B" probablemente se debe a que el algoritmo fue desarrollado por "Rudolf Bayer" y "Eduard M. McCreight", que trabajan para la empresa

Más detalles

FUNDAMENTOS DE PROGRAMACIÓN

FUNDAMENTOS DE PROGRAMACIÓN FUNDAMENTOS DE PROGRAMACIÓN Sabino Miranda Jiménez Universidad Autónoma del Estado de México (UAEM) Apuntadores (1) Un apuntador es una variable que contiene la dirección de una ora variable Generan código

Más detalles

SESIÓN DE EJERCICIOS E4

SESIÓN DE EJERCICIOS E4 SESIÓN DE EJERCICIOS E4 Primera parte: ejercicios test(soluciones al final) A resolver antes de comenzar la sesión en el aula Ejercicio 1 int m[n][n] = 1, 1, 1, 2, 2, 2, 3, 3, 3; for(x=1; x < N; x++) for(y=0;

Más detalles

Repaso sobre lectura de datos desde la línea de comandos, manejo de memoria dinámica e introducción a la librería GSL

Repaso sobre lectura de datos desde la línea de comandos, manejo de memoria dinámica e introducción a la librería GSL Clase No. 5: Repaso sobre lectura de datos desde la línea de comandos, manejo de memoria dinámica e introducción a la librería GSL MAT 251 Dr. Alonso Ramírez Manzanares CIMAT, A.C. e-mail: alram@ cimat.mx

Más detalles

Prof. Dr. Paul Bustamante

Prof. Dr. Paul Bustamante Carnet Nombre: Examen C++ Grupo A Informática II Fundamentos de Programación Prof. Dr. Paul Bustamante Pág.1 Índice 1. INTRODUCCIÓN... 1 2. EJERCICIO 1: AGENDA TELEFÓNICA (4.0 PTOS.)...1 3. EJERCICIO 2:

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

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

Estructuras de control

Estructuras de control Estructuras de control Programación estructurada Estructuras condicionales La sentencia if La cláusula else Encadenamiento y anidamiento El operador condicional?: La sentencia switch Estructuras repetitivas/iterativas

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

Contenidos. Gestión dinámica de memoria. Gestión dinámica de memoria. Introducción. 1. Introducción 2. El operador NEW 3. El operador DELETE

Contenidos. Gestión dinámica de memoria. Gestión dinámica de memoria. Introducción. 1. Introducción 2. El operador NEW 3. El operador DELETE Contenidos 1. Introducción 2. El operador NEW 3. El operador DELETE 1 Introducción Hasta ahora hemos visto que cada vez que queremos usar una variable debemos reservarle un lugar de la memoria al comenzar

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

Redirecciones y Tuberías

Redirecciones y Tuberías Redirecciones y Tuberías Ampliación de Sistemas Operativos (prácticas) E.U. Informática en Segovia Universidad de Valladolid Redirecciones Redirección de la entrada y la salida estándar Unix/Linux definen

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

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

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

Organización de Computadoras

Organización de Computadoras Organización de Computadoras Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Segundo Cuatrimestre de 2015 Proyecto N 1 Programación en Lenguaje C El objetivo principal

Más detalles

Gestión de procesos en UNIX

Gestión de procesos en UNIX PROCESOS UNIX Gestión de procesos en UNIX Cada proceso sólo puede tener un flujo: el concepto proceso engloba todo Dos llamadas implicadas en la creación de procesos crear proceso cargar programa La relación

Más detalles

Instituto Politécnico Nacional

Instituto Politécnico Nacional Instituto Politécnico Nacional Secretaria Académica Dirección de Estudios Profesionales Escuela Superior de Ingeniería Mecánica y Eléctrica Unidad Culhuacan Ingeniería en Comunicaciones y Electrónica Academia

Más detalles

Laboratorio 1: Terminal de Linux y primer programa en C

Laboratorio 1: Terminal de Linux y primer programa en C Laboratorio 1: Terminal de Linux y primer programa en C March 28, 2013 Objetivos: - Conocer la consola de Linux y entender el funcionamiento de algunos comandos simples. - Escribir un programa en C, entender

Más detalles

Fundamentos de Programción (I)

Fundamentos de Programción (I) Fundamentos de Programción (I) Algoritmos Entrada y Salida en C++ Fundamentos de programación Objetivo: Traducir nuestras ideas a un nuevo lenguaje de programación para resolver un problema. Problema Método

Más detalles

Abelardo Pardo. Iria Estévez Ayres. Damaris Fuentes Lorenzo. Pablo Basanta Val. Pedro J. Muñoz Merino. Hugo A. Parada.

Abelardo Pardo. Iria Estévez Ayres. Damaris Fuentes Lorenzo. Pablo Basanta Val. Pedro J. Muñoz Merino. Hugo A. Parada. Arquitectura de sistemas Abelardo Pardo University of Sydney School of Electrical and Information Engineering NSW, 2006, Australia Autor principal del curso de 2009 a 2012 Iria Estévez Ayres Damaris Fuentes

Más detalles