Logo_GRSST













































LABORATORIO DE TELEMATICA

Práctica 1

Duración: 3 horas
Puntuación: 1 pto.

Objetivos:

El objetivo de esta práctica es iniciarse en el empleo de streams desde el punto de vista del volcado de datos binarios en vez de texto. Para ello se evaluará la interacción de dos parámetros decisivos en el volcado de datos a través de un stream: el tamaño del buffer de éste y la cantidad de bytes que se desea almacenar en cada llamada a fwrite.

Enunciado:

Cree un fichero de datos y almacene en él datos a la máxima velocidad hasta alcanzar un tamaño prefijado constante (1 MB). Emplee para ello distintos tamaños del buffer del stream y para cada uno de ellos distintos tamaños de volcado de datos (cantidad de bytes a volcar por el fwrite).
El resultado debe ser una tabla con el tiempo total empleado para completar el fichero. Las líneas horizontales de datos poseerán el mismo tamaño de buffer y las verticales el mismo tamaño de volcado del fwrite (Diríjalo a la salida estándar).
Cree el fichero de datos en el directorio /tmp. Emplee un nombre que difícilmente vaya a coincidir con otros y tras terminar la simulación borre el fichero.
Recorra tamaños de buffer y de volcado entre 1 y 100000 bytes (por ejemplo una tabla de 50x50).

Cuestiones:

  • Mida el tiempo transcurrido tanto empleando la estructura que provee times(2) como el valor que retorna. Hay diferencias importantes? Por qué?. Pruebe de nuevo, esta vez simultaneando la ejecución del simulador con un proceso que se limite a consumir ciclos de reloj (que haga un simple bucle infinito). Hay diferencias importantes? Por qué?
  • Repita la simulación creando esta vez el fichero en su directorio home. Hay diferencias importantes? Si las hay, a qué pueden deberse? (Guarde esta nueva tabla en un fichero llamado resultados2).

Otras funciones de utilidad:

times(2) , tmpfile(3) , tempnam(3)

Presentación:

En el directorio practica1 en su home deben existir uno o varios ficheros .c y .h así como un makefile que compile el programa mencionado. Para la corrección de la práctica se borrarán todos los ejecutables, se hará un touch a todos los ficheros fuente y se recompilará mediante el makefile, así que no servirá de nada dejar en el directorio ejecutables o ficheros objeto. Igualmente debe haber un fichero llamado resultados con la tabla que genera el programa.

daniel.morato@unavarra.es