Empezamos la clase comentando los errores de la quinta practica:
- Hay que plantear objetivos reales, con cargas de trabajo reales.
Ejemplo: El tiempo que tarda en arrancar el SO no es una carga real.
- Los objetivos no pueden ser sobre la tasa de uso de un componente (memoria, CPU)
- Las pruebas se diseñan en funcion del objetivo.
- El objetivo tampoco es bajarse algun programa que optimize el sistema por nosotros.
Ahora vemos un ejemplo de una buena practica de un compañero.
El ha planteado como objetivo el servir el maximo nº posible de paginas por segundo con un servidor apache.
Practica de Fran Torres
Surgen varios comentarios a raiz de esta practica, ya que en realidad lo que ha hecho es comparar 2 sistemas y ver cual de ellos es mas apropiado para su tarea.
Vemos a continuacion las notas de clase de Sara (recordemos que en la clase anterior se explico la practica 6 y el trabajo final).
Ahora pasamos a ver un ejercicio de autoevaluacion de davis87
Una pagina curiosa: http://www.geek.com/the-x86-evolution-will-lead-the-revolution/
Seguimos con el temario...
4.2 Utilización de un benchmark
Empieza el profesor aclarando la diferencia entre monitor y benchmark: el monitor muestra la carga real del sistema y el benchmark aplica una carga a tal sistema y hace mediciones en relacion a el.
4.2.1 ¿Quién propone un benchmark?
Para difundir los benchmarks hay 2 alternativas:
- Que sean evaluados por una empresa externa, al a que se le paga por ella.
- Que los benchmarks sean propuestos por un conjunto de empresas o instituciones que acepten los resultados que arrojen.
4.2.2 Tipos de benchmarks
La clasificacion se hace en funcion de la representacion de la carga de trabajo:
- Programas reales: Realizan una carga de trabajo real.
- Núcleos o kernel: Representan las operaciones fundamentales de una carga de trabajo.
- Benchmarks de juguete: Miden parámeros básicos, como los megahercios o la latencia de la memoria.
- Sintéticos: Operación estadística que mide la carga de trabajo usada con una serie de programas y resume la carga.
4.2.4 Errores comunes
- Representar solo la carga media: No se representan los tipos de carga.
- Ignorar la distribución desigual de las peticiones de dispositivos
- No controlar el nivel de carga
- Ignorar los excesos de la cache: Es importante, dado el nº de caches que tienen los sistemas hoy en dia. El tamaño de la caché influira por tanto en los resultados.
- Ignorar el overhead del monitor
- No validar las medidas
- No asegurarse de las mismas condiciones iniciales: Si estamos probando 2 ordenadores, tienen que estar en las mismas condiciones y con la misma configuracion.
- No medir las prestaciones del transitorio
- Utilizar los porcentajes de uso de los dispositivos para comparar prestaciones: MUY IMPORTANTE PARA EL TRABAJO FINAL
- Recoger demasiados datos con muy poco análisis
4.2.5 Juegos de benchmarking
- Usar configuraciones diferentes para ejecutar la misma carga de trabajo
- Elegir las especificaciones de forma que favorezcan a una máquina determinada
- Usar una secuencia de trabajos sincronizada, de forma que el solapamiento entre el trabajo de la CPU y del subsistema de E/S produzcan mejores prestaciones
- Elegir una carga de trabajo arbitraria, que puede dar buenas prestaciones para una máquina determinada
- Usar benchmarks demasiado pequeños
- Proyectar o interpolar resultados de un benchmark, es decir, medir las prestaciones de un ordenador con un procesador determinado, y proyectar los resultados a otro ordenador con un número de procesadores diferente
- Elegir el sistema base de normalización de forma arbitraria
Video del dia: Temperatura y benchmarking
martes, 13 de mayo de 2008
martes, 22 de abril de 2008
Apuntes de clase 22/04/08
Comenzamos la clase comentando los fallos de la practica 4, que por lo general tiene un nivel mas bajo que las prácticas anteriores. Algunos de los fallos mas comunes son:
- Lo del nombre y el e-mail era solo para la primera práctica
- Demasiados pantallazos y nada de análisis: hay que hacer medias y representarlas
- Algunos miden cantidades irrelevantes: bytes/s (en un programa de red), paginación (en un programa que lee/escribe en disco), swap (en un sistema sin problemas debería ser 0)
- No se pone el objetivo, o se hace algo diferente a lo que se dice en el objetivo
- Se aplican cargas de trabajo que hacen bastante uso de la tarjeta gráfica pero sin embargo no se monitoriza
- Faltas de ortografía
- Errores de representación de las gráficas
*Como capturar gráficas (excel u openoffice): En vez de capturar pantalla, se le da a exportar y se selecciona la carpeta donde exportar el gráfico. Lo exportamos como html y ya tenemos el gráfico. También es posible con openoffice guardar el archivo como ods y descomprimirlo después (Yo directamente le he dado a ctrl+c con excel y me ha funcionado...)
Vemos como ejemplo de práctica la de nuestro compañero tupakamaru. El objetivo esta bien definido. La gráfica tiene varios defectos, como que por ejemplo no compara los resultados magnitud a magnitud sino que tiene barra con magnitudes diferentes juntas. Otro fallo es que en el eje x no indica cual es el sistema 1 y el sistema 2. Con estas gráficas no podemos detectar con certeza si el sistema falla o no, sobre todo con el uso del HD, ya que esa magnitud medida es algo ambigua.
Vemos ahora un ejercicio de autoevaluacion del blog aullidosdigitales.
Ejercicio de autoevaluación 3.1
Seguimos viendo algunos ejercicios del compañero Alejandro Peña Lorenzo, aunque no los comentamos.
Seguimos ahora con el temario...
3.4 Mejora de prestaciones de la CPU
Para mejorar la CPU, hay que seguir los siguientes pasos:
- Cambiar el setup de la BIOS de forma que la CPU vaya más rápida, en un pequeño incremento.
- Cambiar en el setup también la velocidad del bus del sistema, para que se empareje con la velocidad de la CPU. Ambas velocidades son submúltiplos de la velocidad del reloj del sistema, que, en general, es el doble de la velocidad del procesador.
- Si es posible, cambiar el voltaje al que funciona la CPU, en alguna pequeña cantidad, tratando de disminuirlo, siempre dentro de los límites de tolerancia de los componentes. Algunas placas madre, tales como las Abit (http://www.abit.com.tw) lo permiten.
- También es conveniente añadir un ventilador para el procesador solo (o cambiar el que hay por otro más potente), para evitar que se caliente demasiado.
- Si no se queda colgado, probar algún benchmark sobre el nuevo sistema, a ver qué incremento de velocidad se ha conseguido.
- Volver al principio, a intentar conseguir velocidades superiores.
En el caso de los sistemas multiprocesador, los dos procesadores deben acceder a memoria, para lo que tienen lo que se conoce como mutexes, que son objetos de exclusion mutua. Es decir, si un procesador esta trabajando en una zona de la memoria, este elemento impide la entrada del otro procesador a esa zona.Si uno de los procesadores no da el rendimiento esperado, puede que sea culpa de los mutexes. Para linux se puede utilizar un monitor que se conoce como mpstat, disponible dentro del paquete systat.
3.5 Sintonización de la memoria
Las dos tareas principales de la memoria son la paginacion y el intercambio(swapping). Para ver como funciona swap, el profesor ejecuta un programa. Una vez que se llena la memoria física, se empieza a utilizar la memoria swap almacenando los programas que no tienen espacio hasta que haya mas memoria física libre.Para evitar problemas con la memoria física podemos hacer lo siguiente:
- Limitar el tamaño de los procesos
- Usar librerías compartidas: Las librerias estáticas son las que se crean cuando se compila un programa, mientras las librerias dinámicas son aquellas que son compartidas por varios programas
- Modificar el algoritmo de paginación (aunque es bastante arriesgado). El parámetro mas relevante swappiness, que establece la tendencia del kernel a la hora de hacer swapping (cuanto mas alto este el valor, mas pronto realizará swapping)
- Cambiar el tamaño de la partición de swap
- Usar herramientas de gestión de prioridad por proceso
Algunos enlaces interesantes sobre el tema:
Wiki bandaancha.st
Guia de tuning para linux
Red Paper sobre el mismo tema (pdf)
3.6 Mejora de prestaciones en entrada/salida
Es bastante complicado mejorar las prestaciones de E/S ya que en estas operaciones intervienen multitud de dispositivos.Centrandonos en los discos duros, la eficiencia de estos sistemas estará en tres factores diferentes: throughput por proceso, throughput total, y eficiencia en el almacenamiento.
Por hoy ya dejamos el temario,y como siempre para finalizar...
Video del dia: comparativa DD/SSD
- Lo del nombre y el e-mail era solo para la primera práctica
- Demasiados pantallazos y nada de análisis: hay que hacer medias y representarlas
- Algunos miden cantidades irrelevantes: bytes/s (en un programa de red), paginación (en un programa que lee/escribe en disco), swap (en un sistema sin problemas debería ser 0)
- No se pone el objetivo, o se hace algo diferente a lo que se dice en el objetivo
- Se aplican cargas de trabajo que hacen bastante uso de la tarjeta gráfica pero sin embargo no se monitoriza
- Faltas de ortografía
- Errores de representación de las gráficas
*Como capturar gráficas (excel u openoffice): En vez de capturar pantalla, se le da a exportar y se selecciona la carpeta donde exportar el gráfico. Lo exportamos como html y ya tenemos el gráfico. También es posible con openoffice guardar el archivo como ods y descomprimirlo después (Yo directamente le he dado a ctrl+c con excel y me ha funcionado...)
Vemos como ejemplo de práctica la de nuestro compañero tupakamaru. El objetivo esta bien definido. La gráfica tiene varios defectos, como que por ejemplo no compara los resultados magnitud a magnitud sino que tiene barra con magnitudes diferentes juntas. Otro fallo es que en el eje x no indica cual es el sistema 1 y el sistema 2. Con estas gráficas no podemos detectar con certeza si el sistema falla o no, sobre todo con el uso del HD, ya que esa magnitud medida es algo ambigua.
Vemos ahora un ejercicio de autoevaluacion del blog aullidosdigitales.
Ejercicio de autoevaluación 3.1
Seguimos viendo algunos ejercicios del compañero Alejandro Peña Lorenzo, aunque no los comentamos.
Seguimos ahora con el temario...
3.4 Mejora de prestaciones de la CPU
Para mejorar la CPU, hay que seguir los siguientes pasos:
- Cambiar el setup de la BIOS de forma que la CPU vaya más rápida, en un pequeño incremento.
- Cambiar en el setup también la velocidad del bus del sistema, para que se empareje con la velocidad de la CPU. Ambas velocidades son submúltiplos de la velocidad del reloj del sistema, que, en general, es el doble de la velocidad del procesador.
- Si es posible, cambiar el voltaje al que funciona la CPU, en alguna pequeña cantidad, tratando de disminuirlo, siempre dentro de los límites de tolerancia de los componentes. Algunas placas madre, tales como las Abit (http://www.abit.com.tw) lo permiten.
- También es conveniente añadir un ventilador para el procesador solo (o cambiar el que hay por otro más potente), para evitar que se caliente demasiado.
- Si no se queda colgado, probar algún benchmark sobre el nuevo sistema, a ver qué incremento de velocidad se ha conseguido.
- Volver al principio, a intentar conseguir velocidades superiores.
En el caso de los sistemas multiprocesador, los dos procesadores deben acceder a memoria, para lo que tienen lo que se conoce como mutexes, que son objetos de exclusion mutua. Es decir, si un procesador esta trabajando en una zona de la memoria, este elemento impide la entrada del otro procesador a esa zona.Si uno de los procesadores no da el rendimiento esperado, puede que sea culpa de los mutexes. Para linux se puede utilizar un monitor que se conoce como mpstat, disponible dentro del paquete systat.
3.5 Sintonización de la memoria
Las dos tareas principales de la memoria son la paginacion y el intercambio(swapping). Para ver como funciona swap, el profesor ejecuta un programa. Una vez que se llena la memoria física, se empieza a utilizar la memoria swap almacenando los programas que no tienen espacio hasta que haya mas memoria física libre.Para evitar problemas con la memoria física podemos hacer lo siguiente:
- Limitar el tamaño de los procesos
- Usar librerías compartidas: Las librerias estáticas son las que se crean cuando se compila un programa, mientras las librerias dinámicas son aquellas que son compartidas por varios programas
- Modificar el algoritmo de paginación (aunque es bastante arriesgado). El parámetro mas relevante swappiness, que establece la tendencia del kernel a la hora de hacer swapping (cuanto mas alto este el valor, mas pronto realizará swapping)
- Cambiar el tamaño de la partición de swap
- Usar herramientas de gestión de prioridad por proceso
Algunos enlaces interesantes sobre el tema:
Wiki bandaancha.st
Guia de tuning para linux
Red Paper sobre el mismo tema (pdf)
3.6 Mejora de prestaciones en entrada/salida
Es bastante complicado mejorar las prestaciones de E/S ya que en estas operaciones intervienen multitud de dispositivos.Centrandonos en los discos duros, la eficiencia de estos sistemas estará en tres factores diferentes: throughput por proceso, throughput total, y eficiencia en el almacenamiento.
Por hoy ya dejamos el temario,y como siempre para finalizar...
Video del dia: comparativa DD/SSD
jueves, 17 de abril de 2008
¡Mamá salgo en la tele!
Ayer salió en el programa Camara Abierta 2.0 el reportaje que nos hicieron sobre el método con el que damos clase en la asignatura.No sé si el método sera tan innovador como dicen (supongo que sí) pero lo que si ha quedado patente es mi innata naturalidad con la camara, donde interpreto el papel de alumno de forma magistral (un Oscar ya, por favor). También sale este blog asi como el que no quiere la cosa, o mas bien sale mi tortuga ninja.
Para descargaros el video, un amigo mio de teleco lo ha subido a internet (por cierto él sale en el video, es uno de los que hacen el vago al final)
link
Para descargaros el video, un amigo mio de teleco lo ha subido a internet (por cierto él sale en el video, es uno de los que hacen el vago al final)
link
martes, 15 de abril de 2008
Apuntes de clase 15/04/08
Empezamos la clase recordando lo visto en la clase anterior gracias al resumen de un compañero (aqui el resumen) y vemos un interesante articulo sobre gráficas manipuladas tomando como ejemplo el ultimo anuncio de movistar.
Seguimos viendo un ejercicio de autoevaluacion del tema 3 (bloque 3.1).Uno de los ejemplos que ha puesto no funciona con kubuntu, parece que solo funciona con gentoo. El resto de ejercicios que ha hecho el compañero estan bien.
Seguimos con el Tema 3 por donde lo dejamos el otro dia...
3.2 Gestión de carga y prestaciones en el sistema operativo
Un administrador tiene que mantener a sus usuarios felices y satisfacer sus peticiones. Por tanto la gestión debe plantearla de la siguiente forma:
- Planificación y definición de la carga del sistema: Es conveniente acordar de antemano qué se consideran unas prestaciones aceptables. Una vez llevada a cabo esta planificación, hay que comprobar si, con el sistema tal como está, se puede llevar a cabo ese acuerdo y si en el futuro previsible, con los usuarios y la carga pico prevista, se va a poder cumplir.
Ejemplo: Adquisición de un servidor web
Basándose en el número de peticiones por minuto y la hora a las que se van a recibir, habrá que estimar el tamaño de la memoria necesaria, el ancho de banda necesario en función de las peticiones que se van a servir y el tamaño de disco duro. Además, el administrador deberá comprobar la evolución del número de peticiones y prever los picos para, si es necesario, solicitar más ancho de banda (bandwidth-on-demand; algunos servidores permiten solicitar en un momento determinado más ancho de banda que el que se tiene asignado; algunos te cobrarán por ancho de banda adicional con sumido, y la mayoría, directamente te cortan la conexión con un error 509) o una ampliación del sistema; o bien cambiar la configuración para que soporte el pico de demanda.
A raiz del ejemplo del servicio web, vemos los tipos de hosting que puede proporcionar una empresa que presta ese servicio, y bajo que condiciones se contrata el servicio (espacio disponible, ancho de banda,numero de bases de datos o de cuentas de correo...).
Un truco para no consumir tanto ancho de banda es utilizar el modulo de apache mod_rewrite para que si se procede de una pagina externa al sitio (google por ejemplo) se redireccione a otro sitio.
- Configurar las herramientas de monitorización del sistema: Como por ejemplo para controlar el ancho de banda o el nivel de paginas servidas por un servidor para que alerte cuando se llegue a un nivel no deseable. Un ejemplo de herramienta de este tipo es Logwatch. Tambien es posible utilizar scripts del sistema (de hecho el lenguaje Perl se creó con este fin). Otro lenguaje de este tipo es AWK
- Tratar de resolver problemas mediante políticas de gestión del sistema: Limitación de uso interactivo, limitación de uso de disco mediante cuotas...
- Ampliar el sistema: Si todo lo anterior falla (y dentro de las posibilidades que haya).
3.3 Políticas de gestión del sistema
Tanto el usuario como el administrador pueden tomar medidas para mejorar el sistema. Algunas medidas que pueden tomar los usuarios son:
- Usar comandos internos de shell en vez de los de Unix (por ejemplo utilizar el comando echo en vez de ls, echo $PWD y no pwd)
- Evitar los caminos largos, que hacen que el ordenador tenga que leer muchos directorios cada vez que se ejecuta un comando.
- Evitar los directorios con muchos ficheros.
- Usar las versiones mas eficientes de cada tipo de programa.
- Eliminar daemons inútiles para la máquina.
- Limitar tiempos de ejecución interactivos, y renicear procesos a discreción.Se puede limitar el tiempo de ejecución con el comando limit (o ulimit, que es el comando interno del bash).
- Modificar los parámetros del sistema operativo.Para eso hace falta conocer la estructura del kernel.
Terminamos por hoy el temario y pasamos a explicar la Practica 5.
Practica 5 - Mejora de las prestaciones de un Sistema
Esta practica es importante ya que constituye el primer "ensayo" para el trabajo final. En esta practica hay que definir un objetivo (ejemplo: quiero que compilar el programa tarde un 5% menos). Por tanto hay que plantearse el sistema antes y despues del cambio. Si decidimos hacerlo con un servidor web es útil el programa Apache benchmark.
Los cambios que realicemos pueden ser tanto software como hardware. Es importante tener en cuenta que la mejora debe realizarse sin tener en cuenta la carga del sistema para medir las prestaciones.
Plantilla de la practica
Fecha de entrega: 7 de Mayo.
Acabamos como siempre con el video del dia: Overclocking extremo.
Seguimos viendo un ejercicio de autoevaluacion del tema 3 (bloque 3.1).Uno de los ejemplos que ha puesto no funciona con kubuntu, parece que solo funciona con gentoo. El resto de ejercicios que ha hecho el compañero estan bien.
Seguimos con el Tema 3 por donde lo dejamos el otro dia...
3.2 Gestión de carga y prestaciones en el sistema operativo
Un administrador tiene que mantener a sus usuarios felices y satisfacer sus peticiones. Por tanto la gestión debe plantearla de la siguiente forma:
- Planificación y definición de la carga del sistema: Es conveniente acordar de antemano qué se consideran unas prestaciones aceptables. Una vez llevada a cabo esta planificación, hay que comprobar si, con el sistema tal como está, se puede llevar a cabo ese acuerdo y si en el futuro previsible, con los usuarios y la carga pico prevista, se va a poder cumplir.
Ejemplo: Adquisición de un servidor web
Basándose en el número de peticiones por minuto y la hora a las que se van a recibir, habrá que estimar el tamaño de la memoria necesaria, el ancho de banda necesario en función de las peticiones que se van a servir y el tamaño de disco duro. Además, el administrador deberá comprobar la evolución del número de peticiones y prever los picos para, si es necesario, solicitar más ancho de banda (bandwidth-on-demand; algunos servidores permiten solicitar en un momento determinado más ancho de banda que el que se tiene asignado; algunos te cobrarán por ancho de banda adicional con sumido, y la mayoría, directamente te cortan la conexión con un error 509) o una ampliación del sistema; o bien cambiar la configuración para que soporte el pico de demanda.
A raiz del ejemplo del servicio web, vemos los tipos de hosting que puede proporcionar una empresa que presta ese servicio, y bajo que condiciones se contrata el servicio (espacio disponible, ancho de banda,numero de bases de datos o de cuentas de correo...).
Un truco para no consumir tanto ancho de banda es utilizar el modulo de apache mod_rewrite para que si se procede de una pagina externa al sitio (google por ejemplo) se redireccione a otro sitio.
- Configurar las herramientas de monitorización del sistema: Como por ejemplo para controlar el ancho de banda o el nivel de paginas servidas por un servidor para que alerte cuando se llegue a un nivel no deseable. Un ejemplo de herramienta de este tipo es Logwatch. Tambien es posible utilizar scripts del sistema (de hecho el lenguaje Perl se creó con este fin). Otro lenguaje de este tipo es AWK
- Tratar de resolver problemas mediante políticas de gestión del sistema: Limitación de uso interactivo, limitación de uso de disco mediante cuotas...
- Ampliar el sistema: Si todo lo anterior falla (y dentro de las posibilidades que haya).
3.3 Políticas de gestión del sistema
Tanto el usuario como el administrador pueden tomar medidas para mejorar el sistema. Algunas medidas que pueden tomar los usuarios son:
- Usar comandos internos de shell en vez de los de Unix (por ejemplo utilizar el comando echo en vez de ls, echo $PWD y no pwd)
- Evitar los caminos largos, que hacen que el ordenador tenga que leer muchos directorios cada vez que se ejecuta un comando.
- Evitar los directorios con muchos ficheros.
- Usar las versiones mas eficientes de cada tipo de programa.
- Eliminar daemons inútiles para la máquina.
- Limitar tiempos de ejecución interactivos, y renicear procesos a discreción.Se puede limitar el tiempo de ejecución con el comando limit (o ulimit, que es el comando interno del bash).
- Modificar los parámetros del sistema operativo.Para eso hace falta conocer la estructura del kernel.
Terminamos por hoy el temario y pasamos a explicar la Practica 5.
Practica 5 - Mejora de las prestaciones de un Sistema
Esta practica es importante ya que constituye el primer "ensayo" para el trabajo final. En esta practica hay que definir un objetivo (ejemplo: quiero que compilar el programa tarde un 5% menos). Por tanto hay que plantearse el sistema antes y despues del cambio. Si decidimos hacerlo con un servidor web es útil el programa Apache benchmark.
Los cambios que realicemos pueden ser tanto software como hardware. Es importante tener en cuenta que la mejora debe realizarse sin tener en cuenta la carga del sistema para medir las prestaciones.
Plantilla de la practica
Fecha de entrega: 7 de Mayo.
Acabamos como siempre con el video del dia: Overclocking extremo.
martes, 8 de abril de 2008
Apuntes de clase 8/04/08
El profesor empieza diciendo que se reabre el plazo de entrega de las practicas de la 1 a la 3, con una puntuación maxima sobre 8.
Comentarios segunda practica
Posteriormente, pasa a comentar algunos de los errores mas comunes que se ha encontrado en la correción de la segunda práctica. Estos son los siguientes:
- Faltas de ortografía
- Errores al incluir imágenes/enlaces
- Confusión de benchmark con monitor de prestaciones
- Medición de cantidades irrelevantes
Las notas son por lo general bastante buenas, ya que hay pocos suspensos.Los monitores mas utilizados son los siguientes:
- Perfmon
- Sysinternals
- CS Fire Monitor
- System Explorer
Comentarios tercera practica
En primer lugar vemos el ejemplo de un compañero.
Bastante gente ha elegido un programa que realiza la sucesión de Fibonacci hasta un limite n, ya que era un programa que se utilizo en otra asignatura del primer cuatrimestre(TA).
El ejemplo esta bastante bien, ya que realiza un análisis bastante completo del programa y se nota que lo ha analizado de forma correcta.
Los problemas que se han encontrado en esta práctica son los siguientes:
- Uso de programas "de broma" (que no hacen absolutamente nada util)
- No incluir el tiempo total del programa
- Mejoras que cambian el programa totalmente (en vez de que haga lo mismo de forma optimizada, hace otra cosa diferente que resulta mas rápida)
- El nunca suficientemente bien ponderado uso de las referencias constantes: Hay que tener en cuenta cuando se devuelve por valor y por referencia, ya que las llamadas por valor utilizan en constructor de copia de forma que eso consume parte del tiempo de ejecución
- Copias: Uno de los alumnos parece que se ha copiado, y la primera vez que se detecta la copia es un 0 y la segunda es un suspenso.
Un compañero habla de un programa llamado kcachegrind, que se encarga de realizar un analisis con programas que estan en ejecucíon puesto que detecta las llamadas a caché. Vemos unos cuantos pantallazos del programa, que parece bastante completo y con una interfaz muy intuitiva.
**NOTA: La fecha de entrega de la practica 4 es el 21 de abril.**
Comparativa Windows Vista vs. XP
En esta web aparece una comparativa entre las 2 versiones mas recientes de Windows, y tiene como conclusión que XP es mas rápido que Vista. El profesor señala un error de esta comparación, pues NUNCA se debe utilizar el uso de un sistema como un parámetro para la comparación entre ellos. Es mas conveniente hacer una medición de prestaciones que ponga de manifiesto los defectos (o las virtudes) de uno frente al otro. El arranque y el apagado es mucho mas lento en Vista, pero la copia de archivos es mas rapida que en Windows XP.
Ejercicio Autoevaluación Tema 2-Bloque 3
Antes de seguir con el temario, vemos un par de ejercicios de autoevaluación del tema 2. Estan disponibles aqui.
Parece que hay un fallo, ya que las barras se utilizan para categorias,y las lineas se utilizan para funciones o bien variables que necesitan una progresión.
Ahora si seguimos con el temario...
Tema 3 - Solución de problemas en un sistema informático
La idea de este tema es dar una serie de reglas que permitan mejorar las prestaciones de un sistema informático. Debemos ponernos por tanto en la situación del Administrador de Sistemas, es decir, tenemos un sistema al que accede mucha gente y queremos que funcione bien.Las politicas que se suelen seguir son las siguientes:
- Ajuste de parámetros del sistema operativo: Hay algunos parámetros que el superusuario, o administrador del sistema, puede modificar, usando programas suministrados con el sistema operativo o recompilando alguna parte.
- Ajuste de parámetros del hardware: Examinar la configuración hardware del sistema y ver qué parámetros se pueden alterar, tales como por ejemplo la activación de cachés hardware, el reloj del sistema, frecuencia del bus. Algunos de estos cambios pueden ser peligrosos.
- Equilibrado de cargas: Repartir las cargas a las que son sometidos los diversos dispositivos.
- Ampliación: Cuando todo lo anterior falla, y si hay dinero, tiempo y ganas, se pueden comprar dispositivos nuevos, o cambiar los dispositivos por otro más rápido.
- Cambio del software: Puede ser una actualización de una parte del sistema o cambiar a una versión superior, o cambiar el software que se está usando por otra versión u otra marca. Es peligroso a veces.
A la hora de mejorar las prestaciones hay que tener en cuenta los siguientes principios:
- Conocer y comprender tu entorno
- Hay que buscar el equilibrio: Cuando se quiere mejorar algo, forzosamente se va a empeorar otra cosa.
- Throughput contra latencia: Cantidad de cosas que se hace por unidad de tiempo contra el tiempo que se tarda en realizar una cosa. La primera métrica es del tipo mayor es mejor y la segunda del tipo menor es mejor.
- No sobreutilizar un recurso: La utilización de recursos es del tipo nominal es mejor, al igual que el disco duro por ejemplo.
- Diseñar las pruebas con cuidado: No hay que actuar cambiando algo sin saber las consecuencias que puede traer.
Por ultimo comentamos en clase algunos de los ejercicios de autoevaluación. que vienen al principio del Tema 3.
Ahora para finalizar vemos el video del dia
Comentarios segunda practica
Posteriormente, pasa a comentar algunos de los errores mas comunes que se ha encontrado en la correción de la segunda práctica. Estos son los siguientes:
- Faltas de ortografía
- Errores al incluir imágenes/enlaces
- Confusión de benchmark con monitor de prestaciones
- Medición de cantidades irrelevantes
Las notas son por lo general bastante buenas, ya que hay pocos suspensos.Los monitores mas utilizados son los siguientes:
- Perfmon
- Sysinternals
- CS Fire Monitor
- System Explorer
Comentarios tercera practica
En primer lugar vemos el ejemplo de un compañero.
Bastante gente ha elegido un programa que realiza la sucesión de Fibonacci hasta un limite n, ya que era un programa que se utilizo en otra asignatura del primer cuatrimestre(TA).
El ejemplo esta bastante bien, ya que realiza un análisis bastante completo del programa y se nota que lo ha analizado de forma correcta.
Los problemas que se han encontrado en esta práctica son los siguientes:
- Uso de programas "de broma" (que no hacen absolutamente nada util)
- No incluir el tiempo total del programa
- Mejoras que cambian el programa totalmente (en vez de que haga lo mismo de forma optimizada, hace otra cosa diferente que resulta mas rápida)
- El nunca suficientemente bien ponderado uso de las referencias constantes: Hay que tener en cuenta cuando se devuelve por valor y por referencia, ya que las llamadas por valor utilizan en constructor de copia de forma que eso consume parte del tiempo de ejecución
- Copias: Uno de los alumnos parece que se ha copiado, y la primera vez que se detecta la copia es un 0 y la segunda es un suspenso.
Un compañero habla de un programa llamado kcachegrind, que se encarga de realizar un analisis con programas que estan en ejecucíon puesto que detecta las llamadas a caché. Vemos unos cuantos pantallazos del programa, que parece bastante completo y con una interfaz muy intuitiva.
**NOTA: La fecha de entrega de la practica 4 es el 21 de abril.**
Comparativa Windows Vista vs. XP
En esta web aparece una comparativa entre las 2 versiones mas recientes de Windows, y tiene como conclusión que XP es mas rápido que Vista. El profesor señala un error de esta comparación, pues NUNCA se debe utilizar el uso de un sistema como un parámetro para la comparación entre ellos. Es mas conveniente hacer una medición de prestaciones que ponga de manifiesto los defectos (o las virtudes) de uno frente al otro. El arranque y el apagado es mucho mas lento en Vista, pero la copia de archivos es mas rapida que en Windows XP.
Ejercicio Autoevaluación Tema 2-Bloque 3
Antes de seguir con el temario, vemos un par de ejercicios de autoevaluación del tema 2. Estan disponibles aqui.
Parece que hay un fallo, ya que las barras se utilizan para categorias,y las lineas se utilizan para funciones o bien variables que necesitan una progresión.
Ahora si seguimos con el temario...
Tema 3 - Solución de problemas en un sistema informático
La idea de este tema es dar una serie de reglas que permitan mejorar las prestaciones de un sistema informático. Debemos ponernos por tanto en la situación del Administrador de Sistemas, es decir, tenemos un sistema al que accede mucha gente y queremos que funcione bien.Las politicas que se suelen seguir son las siguientes:
- Ajuste de parámetros del sistema operativo: Hay algunos parámetros que el superusuario, o administrador del sistema, puede modificar, usando programas suministrados con el sistema operativo o recompilando alguna parte.
- Ajuste de parámetros del hardware: Examinar la configuración hardware del sistema y ver qué parámetros se pueden alterar, tales como por ejemplo la activación de cachés hardware, el reloj del sistema, frecuencia del bus. Algunos de estos cambios pueden ser peligrosos.
- Equilibrado de cargas: Repartir las cargas a las que son sometidos los diversos dispositivos.
- Ampliación: Cuando todo lo anterior falla, y si hay dinero, tiempo y ganas, se pueden comprar dispositivos nuevos, o cambiar los dispositivos por otro más rápido.
- Cambio del software: Puede ser una actualización de una parte del sistema o cambiar a una versión superior, o cambiar el software que se está usando por otra versión u otra marca. Es peligroso a veces.
A la hora de mejorar las prestaciones hay que tener en cuenta los siguientes principios:
- Conocer y comprender tu entorno
- Hay que buscar el equilibrio: Cuando se quiere mejorar algo, forzosamente se va a empeorar otra cosa.
- Throughput contra latencia: Cantidad de cosas que se hace por unidad de tiempo contra el tiempo que se tarda en realizar una cosa. La primera métrica es del tipo mayor es mejor y la segunda del tipo menor es mejor.
- No sobreutilizar un recurso: La utilización de recursos es del tipo nominal es mejor, al igual que el disco duro por ejemplo.
- Diseñar las pruebas con cuidado: No hay que actuar cambiando algo sin saber las consecuencias que puede traer.
Por ultimo comentamos en clase algunos de los ejercicios de autoevaluación. que vienen al principio del Tema 3.
Ahora para finalizar vemos el video del dia
martes, 1 de abril de 2008
Practica 2: Monitorizacion de un sistema
He subido aqui la practica 2 que he hecho por si alguien quiere verla (aunque no sea gran cosa):
link
link
Apuntes de clase 1/04/08
En primer lugar, y como anecdota, decir que gente del programa Camara Abierta 2.0 ha estado grabandonos para ver el particular metodo que tiene el profesor de dar clase.
Vemos para empezar un programa en pearl hecho por el profesor. Con esto nos explica un poco que debemos hacer en la practica 3, y la optimizacion que debemos de hacer de un programa. Debemos tomar un programa original y hacer uso de un profile (del lenguaje elegido) con el.
Hacemos un repaso de la clase anterior, y el profesor explica mas o menos en que consistira la clase de hoy.
Repasamos una de las practicas (la 2ª) subida por un compañero. La practica completa esta disponible aqui:
En primer lugar explica las caracteristicas de los equipos sobre los que hace la practica.Enseña como es el programa que ha utilizado, y la ventana del programa con la configuracion de la monitorizacion que se desea hacer. Podemos ver tambien una lista de los procesos activos en el ordenador. Con este programa es posible tambien añadir un ordenador externo al equipo donde esta instalado el programa. Vemos pantallazos con el programa funcionando, y a partir de ahi realiza varias pruebas para comprobar el funcionamiento del programa.Podemos comprobar tambien la forma en la que el programa realiza las graficas. Como observacion personal, la practica de mi compañero esta bastante completa ya que tiene multitud de graficas en la que se muestra de forma completa el funcionamiento de su sistema.
Ahora pasamos a ver el siguiente ejercicio de autoevaluacion sobre metricas. Vemos los fallos que tiene el ejercicio, ya que por ejemplo alguna de las metricas que ha elegido el compañero no es correcta (no podemos fiarnos con total seguridad de las especificaciones que nos da el fabricante). Como ejemplo de metricas correctas que ha elegido el compañero, para un servidor web ha elegido la memoria ram, la velocidad de proceso o el consumo electrico.
Seguimos con el temario...
1.5.4 Programas de monitorización de la actividad del sistema
No todos los sistemas operativos estan preparados para monitorizar la actividad. Algunos deben ejecutar un daemon que realice esa actividad. Ejecutamos un comando sobre linux para ver las estadisticas de discos (con la orden diskstats) gracias a las estadisticas del kernel.
Con la orden less -alt podemos ver el tamaño de los directorios, ademas de los permisos que tiene cada uno de ellos.
Vamos a ver otro monitor que es vmstat (un monitor de lineas de comando) que aunque en apariencia sea "cutre" la informacion que ofrece, en realidad ofrece bastante informacion sobre los procesos. Comenta lo que significa cada columna de los datos ofrecidos, sobre memoria,swap,entrada/salida, el sistema y la cpu.Ahora ejecutamos un programa y volvemos a ver vmstat para ver que informacion nos ofrece ahora acerca de los procesos. Ahora probamos a ver como sube el numero de procesos ejecutando ese programa dos veces a la vez. Para ver la carga del sistema podemos tambien utilizar top o uptime.
Ante la pregunta de un compañero, el profesor explica que la frecuencia de un procesador no es una medida util como resultado ya que en realidad la frecuencia es un factor que va a afectar al resultado,es decir, algo que sirve para tenerlo en cuenta a la hora de medir las prestaciones, pero no una prestacion en si misma.
Hacemos una paradinha...
...y retomamos la clase con el Tema 2.
2. Representación gráfica aplicada a la evaluación de prestaciones
2.1 Presentación de los resultados
Una de las cosas que mas se utilizan son las graficas de Gantt, en el que se muestran diferentes tareas simultaneas con su hora de inicio y de fin.Aprovechamos para ver el video del dia: Graficas de Gantt con excel
A partir de las graficas de Gantt se pueden hacer algo conocido como analisis de Pert con el objetivo de calcular caminos críticos.
Otro metodo son los graficos de Kiviat. La idea consiste en colocar las magnitudes en un circulo, y cada una de ellas se coloca en un radio del circulo. Se utilizan metricas del tipo mayor es mejor y menor es mejor. Cuando aparece lo conocido como "estrella de Kiviat" es que el sistema esta funcionando de forma correcta.
Al gráfico de Kiviat se le puede añadir una tercera dimensión (en base a la evolucion temporal de las magnitudes, lo conocido como tubo de Kiviat.
Estos dos graficos son especializados para la representacion de prestaciones, pero en realidad su uso hoy en dia es bastante marginal.
2.2 Reglas para representaciones gráficas
Para representar las graficas, debemos tener en cuenta los siguientes aspectos
- Minimización del esfuerzo por parte del lector:Representar la maxima informacion posible con el minimo esfuerzo.
- Maximizar información: De forma que esta sea autocontenida.
- Minimizar la tinta: Tambien es interesante no poner cosas innecesarias o de relleno.
- Usar prácticas comúnmente aceptadas: el eje x para la variable independiente y el y para la dependiente, tomar el(0,0) en la esquina inferior izquierda por ejemplo.
- Evitar la ambigüedad:hacerlo fácil de leer.
- No poner demasiada información ni demasiada poca: Por ejemplo en el caso de representar cosas con diferentes escalas en una sola grafica seria poner demasiada informacion.
2.3 Errores comunes en la representación gráfica de resultados
- Presentar demasiadas alternativas en un solo gráfico: Cada tipo de grafica tiene un numero "maximo" de componentes para que la información sea legible y entendible.
- Presentar muchas variables y (abscisas) en un solo gráfico: No debe haber mas de 4 o 5 variables.
- Usar símbolos en lugar de texto
- Seleccionar mal las escalas: Es mejor hacerlo a mano, por ejemplo, cuando las variables tienen unos valores transitorios iniciales pequeños.
- Usar un gráfico de líneas en vez de uno de barras: En variables categóricas, se debe de usar un gráfico de barras. (por ejemplo, para el uso de la CPU en 12 meses seria mejor lineas y para el numero de E/S en 3 discos duros A,B o C seria mejor barras).
A veces para "mentir" con los datos se suelen hacer estas graficas a proposito:
- Usar orígenes no nulos para hacer énfasis de la diferencia: Como por ejemplo en la tipica grafica de la inflacion que usan los politicos.
- Trazar cantidades aleatorias sin los intervalos de confianza: La media transmite poca información si no se acompaña de la desviación típica.
- Usar pictogramas escalados por altitud: Siempre hay que tener en cuenta que es la altura, y no la superficie, lo que representa la cantidad.
- Usar tamaños de célula no adecuados en histogramas, y usar escalas partidas en gráficos de columnas
Por hoy dejamos ya el temario, y pasamos a explicar la cuarta practica:
Practica 4 - Uso de programas de monitorizacion del sistema
Es bastante parecida a la practica 2, pero sometiendo al sistema a distintas cargas. Debemos coger el sistema, arrancarlo e iniciar los monitores. Lo dejamos funcionando un rato, y una vez hecho seleccionamos una carga para el sistema y con los mismo monitores que hemos utilizado anteriormente sacamos la informacion en un fichero. De esta forma comprobamos la diferencia entre uno y otro. Con la informacion obtenida, hacemos una representacion.
Vemos para empezar un programa en pearl hecho por el profesor. Con esto nos explica un poco que debemos hacer en la practica 3, y la optimizacion que debemos de hacer de un programa. Debemos tomar un programa original y hacer uso de un profile (del lenguaje elegido) con el.
Hacemos un repaso de la clase anterior, y el profesor explica mas o menos en que consistira la clase de hoy.
Repasamos una de las practicas (la 2ª) subida por un compañero. La practica completa esta disponible aqui:
En primer lugar explica las caracteristicas de los equipos sobre los que hace la practica.Enseña como es el programa que ha utilizado, y la ventana del programa con la configuracion de la monitorizacion que se desea hacer. Podemos ver tambien una lista de los procesos activos en el ordenador. Con este programa es posible tambien añadir un ordenador externo al equipo donde esta instalado el programa. Vemos pantallazos con el programa funcionando, y a partir de ahi realiza varias pruebas para comprobar el funcionamiento del programa.Podemos comprobar tambien la forma en la que el programa realiza las graficas. Como observacion personal, la practica de mi compañero esta bastante completa ya que tiene multitud de graficas en la que se muestra de forma completa el funcionamiento de su sistema.
Ahora pasamos a ver el siguiente ejercicio de autoevaluacion sobre metricas. Vemos los fallos que tiene el ejercicio, ya que por ejemplo alguna de las metricas que ha elegido el compañero no es correcta (no podemos fiarnos con total seguridad de las especificaciones que nos da el fabricante). Como ejemplo de metricas correctas que ha elegido el compañero, para un servidor web ha elegido la memoria ram, la velocidad de proceso o el consumo electrico.
Seguimos con el temario...
1.5.4 Programas de monitorización de la actividad del sistema
No todos los sistemas operativos estan preparados para monitorizar la actividad. Algunos deben ejecutar un daemon que realice esa actividad. Ejecutamos un comando sobre linux para ver las estadisticas de discos (con la orden diskstats) gracias a las estadisticas del kernel.
Con la orden less -alt podemos ver el tamaño de los directorios, ademas de los permisos que tiene cada uno de ellos.
Vamos a ver otro monitor que es vmstat (un monitor de lineas de comando) que aunque en apariencia sea "cutre" la informacion que ofrece, en realidad ofrece bastante informacion sobre los procesos. Comenta lo que significa cada columna de los datos ofrecidos, sobre memoria,swap,entrada/salida, el sistema y la cpu.Ahora ejecutamos un programa y volvemos a ver vmstat para ver que informacion nos ofrece ahora acerca de los procesos. Ahora probamos a ver como sube el numero de procesos ejecutando ese programa dos veces a la vez. Para ver la carga del sistema podemos tambien utilizar top o uptime.
Ante la pregunta de un compañero, el profesor explica que la frecuencia de un procesador no es una medida util como resultado ya que en realidad la frecuencia es un factor que va a afectar al resultado,es decir, algo que sirve para tenerlo en cuenta a la hora de medir las prestaciones, pero no una prestacion en si misma.
Hacemos una paradinha...
...y retomamos la clase con el Tema 2.
2. Representación gráfica aplicada a la evaluación de prestaciones
2.1 Presentación de los resultados
Una de las cosas que mas se utilizan son las graficas de Gantt, en el que se muestran diferentes tareas simultaneas con su hora de inicio y de fin.Aprovechamos para ver el video del dia: Graficas de Gantt con excel
A partir de las graficas de Gantt se pueden hacer algo conocido como analisis de Pert con el objetivo de calcular caminos críticos.
Otro metodo son los graficos de Kiviat. La idea consiste en colocar las magnitudes en un circulo, y cada una de ellas se coloca en un radio del circulo. Se utilizan metricas del tipo mayor es mejor y menor es mejor. Cuando aparece lo conocido como "estrella de Kiviat" es que el sistema esta funcionando de forma correcta.
Al gráfico de Kiviat se le puede añadir una tercera dimensión (en base a la evolucion temporal de las magnitudes, lo conocido como tubo de Kiviat.
Estos dos graficos son especializados para la representacion de prestaciones, pero en realidad su uso hoy en dia es bastante marginal.
2.2 Reglas para representaciones gráficas
Para representar las graficas, debemos tener en cuenta los siguientes aspectos
- Minimización del esfuerzo por parte del lector:Representar la maxima informacion posible con el minimo esfuerzo.
- Maximizar información: De forma que esta sea autocontenida.
- Minimizar la tinta: Tambien es interesante no poner cosas innecesarias o de relleno.
- Usar prácticas comúnmente aceptadas: el eje x para la variable independiente y el y para la dependiente, tomar el(0,0) en la esquina inferior izquierda por ejemplo.
- Evitar la ambigüedad:hacerlo fácil de leer.
- No poner demasiada información ni demasiada poca: Por ejemplo en el caso de representar cosas con diferentes escalas en una sola grafica seria poner demasiada informacion.
2.3 Errores comunes en la representación gráfica de resultados
- Presentar demasiadas alternativas en un solo gráfico: Cada tipo de grafica tiene un numero "maximo" de componentes para que la información sea legible y entendible.
- Presentar muchas variables y (abscisas) en un solo gráfico: No debe haber mas de 4 o 5 variables.
- Usar símbolos en lugar de texto
- Seleccionar mal las escalas: Es mejor hacerlo a mano, por ejemplo, cuando las variables tienen unos valores transitorios iniciales pequeños.
- Usar un gráfico de líneas en vez de uno de barras: En variables categóricas, se debe de usar un gráfico de barras. (por ejemplo, para el uso de la CPU en 12 meses seria mejor lineas y para el numero de E/S en 3 discos duros A,B o C seria mejor barras).
A veces para "mentir" con los datos se suelen hacer estas graficas a proposito:
- Usar orígenes no nulos para hacer énfasis de la diferencia: Como por ejemplo en la tipica grafica de la inflacion que usan los politicos.
- Trazar cantidades aleatorias sin los intervalos de confianza: La media transmite poca información si no se acompaña de la desviación típica.
- Usar pictogramas escalados por altitud: Siempre hay que tener en cuenta que es la altura, y no la superficie, lo que representa la cantidad.
- Usar tamaños de célula no adecuados en histogramas, y usar escalas partidas en gráficos de columnas
Por hoy dejamos ya el temario, y pasamos a explicar la cuarta practica:
Practica 4 - Uso de programas de monitorizacion del sistema
Es bastante parecida a la practica 2, pero sometiendo al sistema a distintas cargas. Debemos coger el sistema, arrancarlo e iniciar los monitores. Lo dejamos funcionando un rato, y una vez hecho seleccionamos una carga para el sistema y con los mismo monitores que hemos utilizado anteriormente sacamos la informacion en un fichero. De esta forma comprobamos la diferencia entre uno y otro. Con la informacion obtenida, hacemos una representacion.
lunes, 24 de marzo de 2008
Practica 1: Busqueda de Recursos en Internet
- Valoración: 7 puntos
- Valoración: 5 puntos
- Valoración: 8 puntos
por una compra u otra. No es una web que se dedique a esto de forma profesional, pues ofrece un servicio gratuito, pero no significa que por ello sea menos rigurosa en el servicio que ofrece.
- Valoración: 10 puntos
- Valoración: 9 puntos
RECURSOS ADICIONALES
- Valoración: 8 puntos
- Valoración: 8 puntos
- Valoración PC Actual: 9 puntos
- Valoración Computer Hoy: 7 puntos
Apuntes de clase 11/03/08
Para comenzar la clase, el profesor hace algunos comentarios sobre los enlaces de la practica 1.Despues el profesor nos habla acerca de un pagina, de la cual sacamos un articulo bastante interesante sobre los procesadores multinucleo, lo que da pie a una discusion sobre el crecimiento en el numero de nucleos de estos procesadores.
Vamos ahora con varios ejercicios de autoevaluacion:
Ejercicios de autoevaluación
Bloque 3
Ejercicio 3.1:Lo mas interesante de este ejercicio es ReactOs, un SO que yo por lo menos desconocia, de codigo abierto y que esta basado en Windows.
Ejercicio 3.2:Vemos otros ejemplos de sistemas operativos como BeOS (para aplicaciones multimedia), Symbian o Windows Mobile.
Ejercicio 3.3:Analisis de los 10 pasos en la evaluacion de un sistema informatico para una impresora.
Bloque 4
Estos dos ejercicios son acerca de metricas.
Ejercicio 4.1
Ejercicio 4.2
A continuacion avanzamos en el temario de la asignatura.
1.5 Medición de la carga de un sistema
Para medir la utilización de sistemas informáticos se usan los denominados monitores.Hay 2 tipos de monitores software:
Programas independientes: Herramientas de medición que permiten seguir el comportamiento de los principales elementos de un sistema informático cuando éste se halla sometido a una carga de trabajo determinada.
Profilers: Trozos de codigo linkados a un programa, y que son llamados cada cierto tiempo. Estos fragmentos de programa generan un fichero, que es luego analizado por otros programas. Este analisis enseña el tiempo empleado en cada una de los procedimientos de un programa y el número de veces que se ha llamado. De esta forma, para el programador es mas facil optimizar esos procedimientos.
Practica 3
La tercera práctica consiste en el uso de un profile en un programa. Debemos interpretar lo que "dice" el profile. Se considerara como nota adicional mejorar el programa, y para demostrar esa mejora hay que hacer medidas antes y despues de los cambios realizados.
Duracion: 1 sesion
Fecha de entrega: 6 de abril
Video del dia: Profiling de una aplicación web con Visual C++
Vamos ahora con varios ejercicios de autoevaluacion:
Ejercicios de autoevaluación
Bloque 3
Ejercicio 3.1:Lo mas interesante de este ejercicio es ReactOs, un SO que yo por lo menos desconocia, de codigo abierto y que esta basado en Windows.
Ejercicio 3.2:Vemos otros ejemplos de sistemas operativos como BeOS (para aplicaciones multimedia), Symbian o Windows Mobile.
Ejercicio 3.3:Analisis de los 10 pasos en la evaluacion de un sistema informatico para una impresora.
Bloque 4
Estos dos ejercicios son acerca de metricas.
Ejercicio 4.1
Ejercicio 4.2
A continuacion avanzamos en el temario de la asignatura.
1.5 Medición de la carga de un sistema
Para medir la utilización de sistemas informáticos se usan los denominados monitores.Hay 2 tipos de monitores software:
Programas independientes: Herramientas de medición que permiten seguir el comportamiento de los principales elementos de un sistema informático cuando éste se halla sometido a una carga de trabajo determinada.
Profilers: Trozos de codigo linkados a un programa, y que son llamados cada cierto tiempo. Estos fragmentos de programa generan un fichero, que es luego analizado por otros programas. Este analisis enseña el tiempo empleado en cada una de los procedimientos de un programa y el número de veces que se ha llamado. De esta forma, para el programador es mas facil optimizar esos procedimientos.
Practica 3
La tercera práctica consiste en el uso de un profile en un programa. Debemos interpretar lo que "dice" el profile. Se considerara como nota adicional mejorar el programa, y para demostrar esa mejora hay que hacer medidas antes y despues de los cambios realizados.
Duracion: 1 sesion
Fecha de entrega: 6 de abril
Video del dia: Profiling de una aplicación web con Visual C++
martes, 4 de marzo de 2008
Apuntes de clase 04/03/08
En primer lugar estamos viendo uno de los ejercicios de autoevaluacion acerca de como medimos las prestaciones de un ordenador. El alumno utiliza principalmente benchmarks y ejecucion de videojuegos.
Posteriormente, he expuesto el ejercicio de autoevaluacion sobre el bloque 1.2 que he hecho en mi blog.
Seguimos con el temario de la asignatura, en este caso el bloque 1.3
1.3 Selección de las métricas de prestaciones
(Punto 3 de las 10 fases de evaluacion)
Se comienza listando los servicios que ofrece el sistemas, y cada uno de ellos puede tener tres respuestas posibles:
- La petición se ha realizado correctamente.
En este caso, las prestaciones se miden por el tiempo que se ha tardado en realizar la peticion, tasa a la cual el servicio se ha realizado, y los recursos consumidos mientras se lleva a cabo, es decir, tiempo/tasa/recurso. Las metricas se denonimian responsividad, productividad y utilizacion respectivamente.
- La petición se ha realizado incorrectamente.
- La petición no se ha podido realizar.
Ejemplo: Pasarela de red (gateway)
Responsividad: Tiempo de respuesta (tiempo entre la llegada y la salida de un paquete)
Productividad: Nº de paquetes que procesa por unidad de tiempo.
Utilización: Porcentaje en que los recursos se usan por unidad de tiempo.
Las metricas miden en resumen la velocidad.
Cada servicio tiene metricas de velocidad, fiabilidad y disponibilidad.
Por ejemplo,La fiabilidad se puede medir en tiempo medio entre fallos (MTBF) y la disponibilidad en el número de horas al año que no está disponible debido a un fallo.
Generalmente nosotros lo que vamos a medir son las peticiones que se han podido responder correctamente, por tanto vamos a utilizar las metricas anteriormente dichas.
¿Que metricas tenemos que elegir?
- Variabilidad baja: Que las mediciones no cambien mucho de valores.
- Que no haya redundancia.
- Que las metricas sean completas (deben definir de forma completa las prestaciones)
Ejemplo: Medir prestaciones de tarjetas graficas
Podemos coger como metricas la velocidad para dibujar fuentes, para cambiar de contexto, abrir y cerrar ventanas, precision en el color asi como otras metricas que afecten a los juegos.
Vemos un ejemplo de comparacion de la pagina http://www.legionhardware.com.
Las metricas de prestaciones se clasifican de la siguiente forma:
- Mas alto es mejor (HB): la velocidad.
- Menor es mejor (LB): como por ejemplo la latencia.
- Nominal es mejor (NB): la utilizacion tanto alta como baja es perjudicial.
Del ejercicio de evaluacion propuesto, vamos a ver que metricas utilizariamos para evaluar un compilador:
- Tamaño del ejecutable: menor es mejor.
- Tiempo de compilacion: menor es mejor.
- Velocidad del ejecutable: mayor es mejor.
1.4 Tecnicas de evaluacion de un Sistema Informatico
(Punto 6 de las 10 fases de evaluacion)
Medicion: Tomar medidas sobre el sistema directamente, utilizando la carga adecuada.
Simulacion: Simular el sistema, utilizando lenguajes de simulacion o o sistemas de simulacion.Se usa simulación antes de construir un sistema, como por ejemplo cuando se construyen microprocesadores, y se basa su estudio en las versiones anteriores de los microprocesadores.
Modelizacion: Se usa para evaluar un sistema incompleto o que no se ha construido aun, usando formulas y ecuaciones diferenciales.
1.5 Medicion de la carga de un sistema
Hay herramientas generales para realizar mediciones. Generalmente las mediciones son previas al analisis, antes incluso de establecer los objetivos.
Para medir la utilizacion de los sistemas se utilizan monitores. Hay veces que los monitores incluyen un cliente y un servidor.
Para terminar, vemos un video de metacafe sobre la ejecucion de un programa en windows.
Posteriormente, he expuesto el ejercicio de autoevaluacion sobre el bloque 1.2 que he hecho en mi blog.
Seguimos con el temario de la asignatura, en este caso el bloque 1.3
1.3 Selección de las métricas de prestaciones
(Punto 3 de las 10 fases de evaluacion)
Se comienza listando los servicios que ofrece el sistemas, y cada uno de ellos puede tener tres respuestas posibles:
- La petición se ha realizado correctamente.
En este caso, las prestaciones se miden por el tiempo que se ha tardado en realizar la peticion, tasa a la cual el servicio se ha realizado, y los recursos consumidos mientras se lleva a cabo, es decir, tiempo/tasa/recurso. Las metricas se denonimian responsividad, productividad y utilizacion respectivamente.
- La petición se ha realizado incorrectamente.
- La petición no se ha podido realizar.
Ejemplo: Pasarela de red (gateway)
Responsividad: Tiempo de respuesta (tiempo entre la llegada y la salida de un paquete)
Productividad: Nº de paquetes que procesa por unidad de tiempo.
Utilización: Porcentaje en que los recursos se usan por unidad de tiempo.
Las metricas miden en resumen la velocidad.
Cada servicio tiene metricas de velocidad, fiabilidad y disponibilidad.
Por ejemplo,La fiabilidad se puede medir en tiempo medio entre fallos (MTBF) y la disponibilidad en el número de horas al año que no está disponible debido a un fallo.
Generalmente nosotros lo que vamos a medir son las peticiones que se han podido responder correctamente, por tanto vamos a utilizar las metricas anteriormente dichas.
¿Que metricas tenemos que elegir?
- Variabilidad baja: Que las mediciones no cambien mucho de valores.
- Que no haya redundancia.
- Que las metricas sean completas (deben definir de forma completa las prestaciones)
Ejemplo: Medir prestaciones de tarjetas graficas
Podemos coger como metricas la velocidad para dibujar fuentes, para cambiar de contexto, abrir y cerrar ventanas, precision en el color asi como otras metricas que afecten a los juegos.
Vemos un ejemplo de comparacion de la pagina http://www.legionhardware.com.
Las metricas de prestaciones se clasifican de la siguiente forma:
- Mas alto es mejor (HB): la velocidad.
- Menor es mejor (LB): como por ejemplo la latencia.
- Nominal es mejor (NB): la utilizacion tanto alta como baja es perjudicial.
Del ejercicio de evaluacion propuesto, vamos a ver que metricas utilizariamos para evaluar un compilador:
- Tamaño del ejecutable: menor es mejor.
- Tiempo de compilacion: menor es mejor.
- Velocidad del ejecutable: mayor es mejor.
1.4 Tecnicas de evaluacion de un Sistema Informatico
(Punto 6 de las 10 fases de evaluacion)
Medicion: Tomar medidas sobre el sistema directamente, utilizando la carga adecuada.
Simulacion: Simular el sistema, utilizando lenguajes de simulacion o o sistemas de simulacion.Se usa simulación antes de construir un sistema, como por ejemplo cuando se construyen microprocesadores, y se basa su estudio en las versiones anteriores de los microprocesadores.
Modelizacion: Se usa para evaluar un sistema incompleto o que no se ha construido aun, usando formulas y ecuaciones diferenciales.
1.5 Medicion de la carga de un sistema
Hay herramientas generales para realizar mediciones. Generalmente las mediciones son previas al analisis, antes incluso de establecer los objetivos.
Para medir la utilizacion de los sistemas se utilizan monitores. Hay veces que los monitores incluyen un cliente y un servidor.
Para terminar, vemos un video de metacafe sobre la ejecucion de un programa en windows.
Ejercicio Autoevaluacion Bloque 3
Vamos a realizar el ejercicio voluntario del bloque 3 de ejercicios voluntarios de la asignatura , cuyo enunciado es el siguiente:
Especificar en qué consistirían los 10 pasos de la sección 1.2 en el caso de la evaluación de alguno de los siguientes sistemas: un compilador, un proveedor de servicio ADSL, una tarjeta gráfica, una impresora.
Nosotros vamos a centrarnos en el caso de un proveedor de ADSL.
1.- Especificar los objetivos y definir el sistema
Nuestro objetivo es la comparativa de los distintos proveedores de servicios ADSL, centrandonos sobre todo en la velocidad que podemos alcanzar en el juego online, que sera el uso principal que le demos.Por tanto desecharemos (o no le daremos tanta importancia) ofertas que incluyan servicios como llamadas gratuitas o television.
2.- Hacer una lista de los servicios que ofrece el sistema y sus posibles resultados
- Velocidad de conexion (con valores desde 1 mega hasta 20 en algunos casos)
- Router WiFi (todas las compañias proveen uno con la contratacion del servicio, cuyo alquiler hay que pagar)
- Fastpath: Este sera uno de los parametros mas a tener en cuenta, puesto que disminuye la latencia (lo que se conoce como ping)
Como aclaracion, diremos que no esta disponible en este momento la tecnologia FTTH (Fiber To The Home) que proporciona conexion por fibra optica, pero si que sera un parametro muy a tener en cuenta en el futuro, pues proporciona velocidades de conexion mucho mayores (las primeras pruebas realizadas en España alcanzan velocidades de 50 Mbps, mas del doble de la velocidad maxima alcanzada hasta el momento)
Tambien puede ser importante tener en cuenta algunas cosas que no afectan directamente a la calidad de la conexion, pero si a la conveniencia o no de contratar el servicio como puede ser la duracion minima de la contratacion del servicio o la disponibilidad o calidad de un servicio de atencion al cliente.
3.- Seleccionar las métricas
- Precio del servicio en relacion a la velocidad que se proporciona (lo que podriamos llamar €/Mb de conexion).
- Velocidad de conexion real con respecto a la velocidad contratada.
- Alcance del router que proporciona la compañia
4.- Listar los parámetros que pueden afectar a las prestaciones
- Ubicacion geografica (no es lo mismo una zona rural que una capital de provincia)
- Perdida de calidad de la conexion en relacion de la distancia del router al ordenador
- La utilizacion de otros programas que consuman ancho de banda (como pueden ser los programas de P2P)
5.- Factores a estudiar
Se pueden realizar variaciones sobre todos los puntos constatados en el punto 3.
6.- Seleccionar las técnicas de evaluación
La tecnica que vamos a utilizar es la medicion en el caso de los factores 2 y 3 que hemos nombrado, y para el caso del coste por Mb se podria realizar un estudio estadistico sencillo.
7.- Seleccionar la carga de trabajo
La utilizacion de un juego online en un ordenador. Por supuesto, el equipo sobre el que realizaremos la comparacion superara los requerimientos minimos de los videojuegos(aunque es deseable que tambien supere los requisitos recomendados en caso de que el fabricante del software los proporcione tambien)
8.- Diseñar los experimentos
En este caso, dado el objetivo que nos hemos marcado, los experimentos se basaran la utilizacion de diversos videojuegos en el modo online. Para simplificar el estudio, no utilizaremos otros programas que consuman ancho de banda a la vez que utilizamos un juego determinado.
9.- Analizar e interpretar los datos
10.- Presentar los resultados
Estos dos pasos no vamos a explicarlos en este momento, puesto que todavia no hemos visto como hacerlo de forma detallada.
Especificar en qué consistirían los 10 pasos de la sección 1.2 en el caso de la evaluación de alguno de los siguientes sistemas: un compilador, un proveedor de servicio ADSL, una tarjeta gráfica, una impresora.
Nosotros vamos a centrarnos en el caso de un proveedor de ADSL.
1.- Especificar los objetivos y definir el sistema
Nuestro objetivo es la comparativa de los distintos proveedores de servicios ADSL, centrandonos sobre todo en la velocidad que podemos alcanzar en el juego online, que sera el uso principal que le demos.Por tanto desecharemos (o no le daremos tanta importancia) ofertas que incluyan servicios como llamadas gratuitas o television.
2.- Hacer una lista de los servicios que ofrece el sistema y sus posibles resultados
- Velocidad de conexion (con valores desde 1 mega hasta 20 en algunos casos)
- Router WiFi (todas las compañias proveen uno con la contratacion del servicio, cuyo alquiler hay que pagar)
- Fastpath: Este sera uno de los parametros mas a tener en cuenta, puesto que disminuye la latencia (lo que se conoce como ping)
Como aclaracion, diremos que no esta disponible en este momento la tecnologia FTTH (Fiber To The Home) que proporciona conexion por fibra optica, pero si que sera un parametro muy a tener en cuenta en el futuro, pues proporciona velocidades de conexion mucho mayores (las primeras pruebas realizadas en España alcanzan velocidades de 50 Mbps, mas del doble de la velocidad maxima alcanzada hasta el momento)
Tambien puede ser importante tener en cuenta algunas cosas que no afectan directamente a la calidad de la conexion, pero si a la conveniencia o no de contratar el servicio como puede ser la duracion minima de la contratacion del servicio o la disponibilidad o calidad de un servicio de atencion al cliente.
3.- Seleccionar las métricas
- Precio del servicio en relacion a la velocidad que se proporciona (lo que podriamos llamar €/Mb de conexion).
- Velocidad de conexion real con respecto a la velocidad contratada.
- Alcance del router que proporciona la compañia
4.- Listar los parámetros que pueden afectar a las prestaciones
- Ubicacion geografica (no es lo mismo una zona rural que una capital de provincia)
- Perdida de calidad de la conexion en relacion de la distancia del router al ordenador
- La utilizacion de otros programas que consuman ancho de banda (como pueden ser los programas de P2P)
5.- Factores a estudiar
Se pueden realizar variaciones sobre todos los puntos constatados en el punto 3.
6.- Seleccionar las técnicas de evaluación
La tecnica que vamos a utilizar es la medicion en el caso de los factores 2 y 3 que hemos nombrado, y para el caso del coste por Mb se podria realizar un estudio estadistico sencillo.
7.- Seleccionar la carga de trabajo
La utilizacion de un juego online en un ordenador. Por supuesto, el equipo sobre el que realizaremos la comparacion superara los requerimientos minimos de los videojuegos(aunque es deseable que tambien supere los requisitos recomendados en caso de que el fabricante del software los proporcione tambien)
8.- Diseñar los experimentos
En este caso, dado el objetivo que nos hemos marcado, los experimentos se basaran la utilizacion de diversos videojuegos en el modo online. Para simplificar el estudio, no utilizaremos otros programas que consuman ancho de banda a la vez que utilizamos un juego determinado.
9.- Analizar e interpretar los datos
10.- Presentar los resultados
Estos dos pasos no vamos a explicarlos en este momento, puesto que todavia no hemos visto como hacerlo de forma detallada.
lunes, 3 de marzo de 2008
Apuntes de clase 26/02/08
Aqui ire colocando tambien los apuntes de clase (aunque en esta ocasion sea con un poco de retraso).Ya se que estan tambien en el wiki, pero prefiero tenerlos tambien en algun sitio mas "mio".
En primer lugar, hemos visto una introduccion a la edicion del wiki
[[Enlace a pagina]]
**Negrita**
//cursiva//
Nota personal: Para ver una ayuda mas completa hacer click en help on how to format text debajo del boton Post.
- Ejercicio Voluntario de ejemplo: Medir prestaciones de un ordenador
- Benchmarks
- Ejecutar programas y ver si se abren rapido,etc
- Ver el administrador de tareas para ver los procesos de la computadora
1.2.- Fases en la evaluación de un sistema informático
Vemos las 10 fases:
1.- Es importante marcarse un objetivo a la hora de hacer la comparacion, ya que es imposible
optimizar un sistema que cumpla al maximo con todas las prestaciones (por ejemplo maxima potencia
y maximo ahorro de energia es una utopia).
EL OBJETIVO DE LA COMPARACION NO ES NUNCA HACER LA COMPARACION
NOTA PARA EL TRABAJO FINAL
Uno de los errores que mas se comete a la hora de hacer los trabajos es no marcarse un objetivo concreto en la comparacion, y pretender hacer una comparacion general.
Hay que tratar de acotar al maximo la medicion que vas a hacer en el estudio del sistema.
Es importante especificar las condiciones en las que se realiza la medicion.
2.- En relacion al objetivo que se marque, es importante seleccionar que recursos son aquellos
sobre los que se va a centrar la comparacion
3.- Seleccionar las metricas, es decir, como vamos a medir o comparar los sistemas.
4.- Dictar los parametros que puedan afectar a las comparaciones.
Por ejemplo la carga de trabajo que tiene el sistema o la temperatura o los drivers que
estes utilizando. El SO tambien.
Algunos son especificos de cada sistema (claridad de la atmosfera en conexion laser a internet)
5.- Los parametros que vas a modificar en el estudio, y las mediciones que se van a hacer
de ellos
6.- Hay 3 tecnicas
Nosotros vamos a utilizar la medicion. Vamos a medir algo sobre el sistema
Las otras son:
Simulacion: No se trabaja sobre el sistema real, sino sobre un modelo informatico de el.
Modelizacion: Se trabaja sobre algo parecido al sistema, algo asi como un modelo matematico
7.- Seleccionar la carga de trabajao
Cuando se miden 2 sistemas con un objetivo, es necesario seleccionar la carga de trabajo con
respecto al objetivo que nos hemos marcado en la comparacion.
Por ejemplo, si comparamos dos impresoras se eligen cuantas paginas se van a imprimir, que
fuentes se van a utilizar...
8.- Diseñar los experimentos
Seleccionar que tipo de mediciones se van a realizar, el momento en el que se realizan...
9.- Analizar e interpretar los datos
Representar los datos de forma que puedan ser comprendidos por alguien no experto. Los datos
que se obtienen deben ser tratados convenientemente, hacer los calculos necesarios con ellos
(media, desviacion tipica...) y comentarlos.
10.- Presentar los resultados
Por ejemplo al presentar los resultados de forma grafica, el objetivo es aumentar la claridad de la
comparacion.
Para finalizar la clase, hemos visto dos ejemplos de ejercicios de autoevaluacion de impresoras. Vemos alguno de los fallos mas comunes que se cometen a la hora de realizar los 10 pasos en el analisis.
En primer lugar, hemos visto una introduccion a la edicion del wiki
[[Enlace a pagina]]
**Negrita**
//cursiva//
Nota personal: Para ver una ayuda mas completa hacer click en help on how to format text debajo del boton Post.
- Ejercicio Voluntario de ejemplo: Medir prestaciones de un ordenador
- Benchmarks
- Ejecutar programas y ver si se abren rapido,etc
- Ver el administrador de tareas para ver los procesos de la computadora
1.2.- Fases en la evaluación de un sistema informático
Vemos las 10 fases:
1.- Es importante marcarse un objetivo a la hora de hacer la comparacion, ya que es imposible
optimizar un sistema que cumpla al maximo con todas las prestaciones (por ejemplo maxima potencia
y maximo ahorro de energia es una utopia).
EL OBJETIVO DE LA COMPARACION NO ES NUNCA HACER LA COMPARACION
NOTA PARA EL TRABAJO FINAL
Uno de los errores que mas se comete a la hora de hacer los trabajos es no marcarse un objetivo concreto en la comparacion, y pretender hacer una comparacion general.
Hay que tratar de acotar al maximo la medicion que vas a hacer en el estudio del sistema.
Es importante especificar las condiciones en las que se realiza la medicion.
2.- En relacion al objetivo que se marque, es importante seleccionar que recursos son aquellos
sobre los que se va a centrar la comparacion
3.- Seleccionar las metricas, es decir, como vamos a medir o comparar los sistemas.
4.- Dictar los parametros que puedan afectar a las comparaciones.
Por ejemplo la carga de trabajo que tiene el sistema o la temperatura o los drivers que
estes utilizando. El SO tambien.
Algunos son especificos de cada sistema (claridad de la atmosfera en conexion laser a internet)
5.- Los parametros que vas a modificar en el estudio, y las mediciones que se van a hacer
de ellos
6.- Hay 3 tecnicas
Nosotros vamos a utilizar la medicion. Vamos a medir algo sobre el sistema
Las otras son:
Simulacion: No se trabaja sobre el sistema real, sino sobre un modelo informatico de el.
Modelizacion: Se trabaja sobre algo parecido al sistema, algo asi como un modelo matematico
7.- Seleccionar la carga de trabajao
Cuando se miden 2 sistemas con un objetivo, es necesario seleccionar la carga de trabajo con
respecto al objetivo que nos hemos marcado en la comparacion.
Por ejemplo, si comparamos dos impresoras se eligen cuantas paginas se van a imprimir, que
fuentes se van a utilizar...
8.- Diseñar los experimentos
Seleccionar que tipo de mediciones se van a realizar, el momento en el que se realizan...
9.- Analizar e interpretar los datos
Representar los datos de forma que puedan ser comprendidos por alguien no experto. Los datos
que se obtienen deben ser tratados convenientemente, hacer los calculos necesarios con ellos
(media, desviacion tipica...) y comentarlos.
10.- Presentar los resultados
Por ejemplo al presentar los resultados de forma grafica, el objetivo es aumentar la claridad de la
comparacion.
Para finalizar la clase, hemos visto dos ejemplos de ejercicios de autoevaluacion de impresoras. Vemos alguno de los fallos mas comunes que se cometen a la hora de realizar los 10 pasos en el analisis.
Suscribirse a:
Entradas (Atom)