Autorizaciones Ramón Martínez García, Iván Jesús San Miguel Gómez y José Carlos Sanz Martín, alumnos matriculados en la asignatura de Sistemas Informáticos, autorizan, mediante el presente documento, a la Universidad Complutense de Madrid (UCM) a difundir y utilizar con fines académicos, no comerciales y mencionando expresamente a sus autores, tanto la propia memoria, como el código, la documentación y el prototipo desarrollado, todo ello realizado durante el curso académico 2008-2009 bajo la dirección de María Victoria López López, profesora colaboradora del Departamento de Arquitectura de Computadores y Automática (DACYA) de la Facultad de Informática (FDI) de dicho organismo. Ramón Martínez García Iván Jesús San Miguel Gómez José Carlos Sanz Martín PROYECTO DE SISTEMAS INFORMÁTICOS CURSO 2008-2009 EVALUACIÓN Y MODELADO DE SISTEMAS INFORMÁTICOS Autores: Ramón Martínez García Iván Jesús San Miguel Gómez José Carlos Sanz Martín Director: María Victoria López López Índice de contenido Resumen / Abstract ...................................................................................................XIII Prólogo..........................................................................................................................XV 1.- Introducción ............................................................................................................ 1 2.- Estado del arte......................................................................................................... 9 3.- Evaluación y modelado del rendimiento............................................................. 15 3.1.- Sistemas informáticos.................................................................................. 15 3.1.1.- Sistemas informáticos y componentes en EMSI.......................... 23 3.2.- Evaluación del rendimiento ......................................................................... 24 3.2.1.- Prestaciones y coste ..................................................................... 27 3.2.2.- Ejemplo de cálculo ...................................................................... 28 3.2.3.- Ley de Amdahl, prestaciones y coste en EMSI ............................ 32 3.3.- Fiabilidad del sistema y de sus componentes .............................................. 34 3.3.1.- Ejemplo de cálculo ...................................................................... 35 3.3.2.- Fiabilidad de componentes en EMSI ........................................... 37 3.4.- Monitorización de sistemas ......................................................................... 38 3.4.1.- El monitor SAR ............................................................................ 39 3.4.2.- Monitorización de sistemas informáticos en EMSI ..................... 48 3.5.- Análisis comparativo de sistemas................................................................ 49 3.5.1.- Medidas estadísticas de tendencia central ................................... 51 3.5.2.- Ratios y sistemas de referencia.................................................... 52 3.5.3.- Intervalos de confianza................................................................ 54 3.5.4.- Ejemplo de cálculo ...................................................................... 56 3.5.5.- Análisis comparativo de sistemas en EMSI ................................. 66 3.6.- Decisiones multicriterio y lógica difusa ...................................................... 68 3.6.1.- Lógica difusa y números triangulares difusos ............................. 69 3.6.2.- Método para el cálculo de la mejor y la peor alternativa............. 71 3.6.3.- Ejemplo de cálculo ...................................................................... 72 3.6.4.- Decisiones multicriterio y lógica difusa en EMSI ....................... 79 EVALUACIÓN Y MODELADO DE SISTEMAS INFORMÁTICOS VI 4.- Trabajo futuro....................................................................................................... 81 4.1.- Sistemas informáticos complejos ................................................................ 81 4.2.- Evolución temporal de la carga de trabajo .................................................. 81 4.3.- Monitorización y mejora del funcionamiento.............................................. 82 4.4.- Personalizar criterios en la toma de decisiones ........................................... 82 Epílogo ........................................................................................................................... 83 Apéndice A: Manual de usuario.................................................................................. 85 A.1. Bienvenida a la aplicación (Welcome)......................................................... 86 A.1.1. Crear un nuevo sistema informático............................................ 86 A.1.2. Abrir los datos de un sistema informático ................................... 88 A.1.3. Consultar el manual de usuario ................................................... 90 A.1.4. Acerca de la aplicación EMSI ..................................................... 91 A.1.5. Cerrar la aplicación EMSI ........................................................... 92 A.2. Sistema informático (Computer System) ..................................................... 94 A.2.1. Añadir un nuevo componente...................................................... 94 A.2.2. Consultar información de un componente................................. 100 A.2.3. Modificar datos de un componente ........................................... 103 A.2.4. Eliminar componentes del sistema ............................................ 108 A.2.5. Cambiar el nombre del sistema informático.............................. 112 A.2.6. Guardar los datos del sistema informático ................................ 112 A.2.7. Abrir los datos de un sistema..................................................... 115 A.3. Evaluación del rendimiento (Performance Evaluation) ............................ 119 A.3.1. Calcular la generalización de la Ley de Amdahl........................ 119 A.3.2. Aplicar la Ley de Amdahl por componentes.............................. 124 A.3.3. Informar del rendimiento y coste por componentes .................. 130 A.3.4. Manipular gráficos..................................................................... 135 A.4. Fiabilidad del sistema (System’s Reliability)............................................. 139 A.4.1. Calcular la fiabilidad de un componente ................................... 139 A.5. Información de la actividad del sistema (System Activity Reporter) ......... 144 A.5.1. Crear un nuevo monitor............................................................. 144 A.5.2. Generar la tabla de datos de una monitorización....................... 146 A.5.3. Ejecutar la instrucción y obtener gráficas.................................. 150 A.5.4. Regenerar sin pérdida de datos.................................................. 151 A.5.5. Obtener información de los parámetros de monitorización....... 153 A.5.6. Guardar los datos de un monitor................................................ 155 A.5.7. Abrir los datos de un monitor .................................................... 157 A.6. Análisis comparativo de sistemas (Comparative Analysis)....................... 160 A.6.1. Crear un nuevo análisis.............................................................. 160 A.6.2. Generar la tabla de datos de una comparación .......................... 162 A.6.3. Ejecutar el análisis y obtención de resultados ........................... 165 A.6.4. Regenerar sin pérdida de datos.................................................. 167 A.6.5. Guardar los datos de una evaluación ......................................... 168 A.6.6. Abrir los datos de un análisis comparativo................................ 170 A.7. Toma de decisiones usando lógica difusa (Fuzzy MCDM) ....................... 173 A.7.1. Obtener la mejor y peor sustitución........................................... 173 → Paso 1 ................................................................................. 173 → Paso 2 ................................................................................. 177 ÍNDICE DE CONTENIDO VII → Paso 3 ................................................................................. 182 → Paso 4 ................................................................................. 185 → Paso 5 ................................................................................. 188 Apéndice B: Código de la aplicación ........................................................................ 191 B.1. Paquete ComparacionMaquinas ................................................................ 192 B.1.1. Fichero ComparacionMaquinas.java ......................................... 192 B.1.2. Fichero FactoriaComparaciones.java ........................................ 195 B.1.3. Fichero MaquinaTiempos.java .................................................. 196 B.1.4. Fichero TituloFactores.java ....................................................... 196 B.1.5. Fichero TituloNombres.java...................................................... 197 B.2. Paquete Componente ................................................................................. 198 B.2.1. Fichero AtributoValor.java........................................................ 198 B.2.2. Fichero Componente.java.......................................................... 198 B.2.3. Fichero DiscoDuroExterno.java ................................................ 201 B.2.4. Fichero DiscoDuroInterno.java ................................................. 202 B.2.5. Fichero Escaner.java.................................................................. 202 B.2.6. Fichero FactoriaComponentes.java ........................................... 202 B.2.7. Fichero FuenteAlimentacion.java.............................................. 203 B.2.8. Fichero GrabadoraCD.java........................................................ 204 B.2.9. Fichero GrabadoraDVD.java..................................................... 204 B.2.10. Fichero Impresora.java .............................................................. 205 B.2.11. Fichero Memoria.java................................................................ 205 B.2.12. Fichero Modem.java.................................................................. 205 B.2.13. Fichero Monitor.java ................................................................. 206 B.2.14. Fichero PlacaBase.java.............................................................. 206 B.2.15. Fichero Procesador.java............................................................. 206 B.2.16. Fichero Raton.java..................................................................... 207 B.2.17. Fichero Router.java ................................................................... 207 B.2.18. Fichero TabletaGrafica.java ...................................................... 207 B.2.19. Fichero TarjetaGrafica.java ....................................................... 208 B.2.20. Fichero TarjetaRed.java............................................................. 208 B.2.21. Fichero TarjetaSCSI.java........................................................... 208 B.2.22. Fichero TarjetaSonido.java........................................................ 209 B.2.23. Fichero TarjetaUSB.java ........................................................... 209 B.2.24. Fichero TarjetaVideo.java ......................................................... 209 B.2.25. Fichero Teclado.java ................................................................. 210 B.2.26. Fichero Ventilador.java ............................................................. 210 B.3. Paquete Comunes ...................................................................................... 211 B.3.1. Fichero Operaciones.java .......................................................... 211 B.4. Paquete ElementosCargados...................................................................... 213 B.4.1. Fichero ComparacionMaquinasCargada.java............................ 213 B.4.2. Fichero LogicaDifusaCargada.java ........................................... 213 B.4.3. Fichero MonitorSARCargado.java............................................ 214 B.4.4. Fichero SistemaInformaticoCargado.java ................................. 214 B.5. Paquete FicheroXML ................................................................................ 216 B.5.1. Fichero GestionFicheroComparacionMaquinas.java ................ 216 B.5.2. Fichero GestionFicheroMonitorSAR.java................................. 217 B.5.3. Fichero GestionFicheroSistemaInformatico.java ...................... 219 B.5.4. Fichero ManejadorComparacionMaquinas.java........................ 221 EVALUACIÓN Y MODELADO DE SISTEMAS INFORMÁTICOS VIII B.5.5. Fichero ManejadorMonitorSAR.java ........................................ 222 B.5.6. Fichero ManejadorSistemaInformatico.java ............................. 224 B.6. Paquete Formulas ...................................................................................... 227 B.6.1. Fichero FormulasTema1.java .................................................... 227 B.6.2. Fichero FormulasTema3.java .................................................... 228 B.6.3. Fichero FormulasTema4.java .................................................... 229 B.7. Paquete FuncionFiabilidad ........................................................................ 231 B.7.1. Fichero FactoriaFunciones.java................................................. 231 B.7.2. Fichero FuncionFiabilidad.java ................................................. 231 B.7.3. Fichero FuncionFiabilidad_Exponencial.java ........................... 233 B.7.4. Fichero FuncionFiabilidad_Gamma.java .................................. 233 B.7.5. Fichero FuncionFiabilidad_LogNormal.java ............................ 234 B.7.6. Fichero FuncionFiabilidad_Normal.java................................... 235 B.7.7. Fichero FuncionFiabilidad_Weibull.java .................................. 236 B.7.8. Fichero ParametroValor.java..................................................... 236 B.8. Paquete GUI .............................................................................................. 238 B.8.1. Fichero ActionListenerNuevoComponente.java ....................... 238 B.8.2. Fichero FactoriaPaneles.java ..................................................... 238 B.8.3. Fichero FiltroFicheros.java........................................................ 239 B.8.4. Fichero PAmdahl.java ............................................................... 239 B.8.5. Fichero PBienvenida.java.......................................................... 250 B.8.6. Fichero PComparacionMaquinas.java....................................... 253 B.8.7. Fichero PFiabilidad.java............................................................ 267 B.8.8. Fichero PGenerico.java ............................................................. 278 B.8.9. Fichero PLogicaDifusa.java ...................................................... 278 B.8.10. Fichero PLogicaDifusa_SubpanelPaso1.java............................ 281 B.8.11. Fichero PLogicaDifusa_SubpanelPaso2.java............................ 290 B.8.12. Fichero PLogicaDifusa_SubpanelPaso3.java............................ 295 B.8.13. Fichero PLogicaDifusa_SubpanelPaso4.java............................ 301 B.8.14. Fichero PLogicaDifusa_SubpanelPaso5.java............................ 308 B.8.15. Fichero PMonitorSAR.java ....................................................... 311 B.8.16. Fichero PSistemaInformatico.java............................................. 324 B.8.17. Fichero VAcercaDeEMSI.java.................................................. 341 B.8.18. Fichero VAyudaGenerica.java .................................................. 342 B.8.19. Fichero VAyudaMonitorSAR.java............................................ 344 B.8.20. Fichero VCompararComponente.java ....................................... 355 B.8.21. Fichero VConsultarComponente.java ....................................... 358 B.8.22. Fichero VCrearComponente.java .............................................. 359 B.8.23. Fichero VDatosComponente.java.............................................. 360 B.8.24. Fichero VModificarComponente.java ....................................... 365 B.8.25. Fichero VPorcentajesFactores.java ........................................... 366 B.8.26. Fichero VPrincipal.java ............................................................. 371 B.9. Paquete Graficos........................................................................................ 396 B.9.1. Fichero GraficosTema1.java ..................................................... 396 B.9.2. Fichero GraficosTema2.java ..................................................... 398 B.9.3. Fichero GraficosTema3.java ..................................................... 400 B.9.4. Fichero GraficosTema4.java ..................................................... 402 B.10. Paquete Identificadores.............................................................................. 405 B.10.1. Fichero IdentificadoresComponentes.java ................................ 405 B.10.2. Fichero IdentificadoresFuncionesFiabilidad.java...................... 405 ÍNDICE DE CONTENIDO IX B.10.3. Fichero IdentificadoresMonitorSAR.java ................................. 406 B.10.4. Fichero IdentificadoresPaneles.java .......................................... 407 B.11. Paquete Informes ....................................................................................... 408 B.11.1. Fichero InformesTema1.java..................................................... 408 B.11.2. Fichero InformesTema3.java..................................................... 414 B.11.3. Fichero InformesTema4.java..................................................... 416 B.11.4. Fichero InformesTema5.java..................................................... 417 B.12. Paquete LogicaDifusa................................................................................ 420 B.12.1. Fichero Alternativa.java ............................................................ 420 B.12.2. Fichero FactoriaLogicaDifusa.java ........................................... 422 B.12.3. Fichero LogicaDifusa.java......................................................... 422 B.12.4. Fichero NumeroTriangular.java ................................................ 425 B.13. Paquete MonitorSAR................................................................................. 427 B.13.1. Fichero FactoriaSAR.java ......................................................... 427 B.13.2. Fichero MedidaValores.java...................................................... 428 B.13.3. Fichero MonitorSAR.java ......................................................... 429 B.13.4. Fichero MonitorSAR__B.java................................................... 431 B.13.5. Fichero MonitorSAR__F.java ................................................... 432 B.13.6. Fichero MonitorSAR__I.java .................................................... 432 B.13.7. Fichero MonitorSAR__L.java ................................................... 433 B.13.8. Fichero MonitorSAR__O.java................................................... 434 B.13.9. Fichero MonitorSAR__Q.java................................................... 435 B.13.10. Fichero MonitorSAR__R.java................................................... 436 B.13.11. Fichero MonitorSAR__S.java ................................................... 436 B.13.12. Fichero MonitorSAR_a.java...................................................... 437 B.13.13. Fichero MonitorSAR_b.java ..................................................... 438 B.13.14. Fichero MonitorSAR_c.java...................................................... 439 B.13.15. Fichero MonitorSAR_d.java ..................................................... 440 B.13.16. Fichero MonitorSAR_g.java ..................................................... 441 B.13.17. Fichero MonitorSAR_h.java ..................................................... 441 B.13.18. Fichero MonitorSAR_j.java ...................................................... 442 B.13.19. Fichero MonitorSAR_k.java ..................................................... 443 B.13.20. Fichero MonitorSAR_m.java .................................................... 444 B.13.21. Fichero MonitorSAR_n.java ..................................................... 444 B.13.22. Fichero MonitorSAR_p.java ..................................................... 445 B.13.23. Fichero MonitorSAR_q.java ..................................................... 446 B.13.24. Fichero MonitorSAR_r.java ...................................................... 447 B.13.25. Fichero MonitorSAR_u.java ..................................................... 448 B.13.26. Fichero MonitorSAR_v.java ..................................................... 449 B.13.27. Fichero MonitorSAR_w.java..................................................... 449 B.13.28. Fichero MonitorSAR_y.java ..................................................... 450 B.14. Paquete Negocio ........................................................................................ 452 B.14.1. Fichero EstructuraSAR.java ...................................................... 452 B.14.2. Fichero TransferAmdahl.java.................................................... 452 B.15. Paquete NombresAtributos........................................................................ 454 B.15.1. Fichero DiscoDuroExterno.java ................................................ 454 B.15.2. Fichero DiscoDuroInterno.java ................................................. 454 B.15.3. Fichero Escaner.java.................................................................. 454 B.15.4. Fichero FuenteAlimentacion.java.............................................. 454 B.15.5. Fichero GrabadoraCD.java........................................................ 455 EVALUACIÓN Y MODELADO DE SISTEMAS INFORMÁTICOS X B.15.6. Fichero GrabadoraDVD.java..................................................... 455 B.15.7. Fichero Impresora.java .............................................................. 455 B.15.8. Fichero Memoria.java................................................................ 455 B.15.9. Fichero Modem.java.................................................................. 455 B.15.10. Fichero Monitor.java ................................................................. 456 B.15.11. Fichero PlacaBase.java.............................................................. 456 B.15.12. Fichero Procesador.java............................................................. 456 B.15.13. Fichero Raton.java..................................................................... 456 B.15.14. Fichero Router.java ................................................................... 457 B.15.15. Fichero TabletaGrafica.java ...................................................... 457 B.15.16. Fichero TarjetaGrafica.java ....................................................... 457 B.15.17. Fichero TarjetaRed.java............................................................. 457 B.15.18. Fichero TarjetaSCSI.java........................................................... 458 B.15.19. Fichero TarjetaSonido.java........................................................ 458 B.15.20. Fichero TarjetaUSB.java ........................................................... 458 B.15.21. Fichero TarjetaVideo.java ......................................................... 458 B.15.22. Fichero Teclado.java ................................................................. 459 B.15.23. Fichero Ventilador.java ............................................................. 459 B.16. Paquete NombresFunciones ...................................................................... 460 B.16.1. Fichero FuncionFiabilidad_Exponencial.java ........................... 460 B.16.2. Fichero FuncionFiabilidad_Gamma.java .................................. 460 B.16.3. Fichero FuncionFiabilidad_LogNormal.java ............................ 460 B.16.4. Fichero FuncionFiabilidad_Normal.java................................... 460 B.16.5. Fichero FuncionFiabilidad_Weibull.java .................................. 460 B.17. Paquete NombresMedidas ......................................................................... 462 B.17.1. Fichero MonitorSAR__B.java................................................... 462 B.17.2. Fichero MonitorSAR__F.java ................................................... 462 B.17.3. Fichero MonitorSAR__I.java .................................................... 462 B.17.4. Fichero MonitorSAR__L.java ................................................... 462 B.17.5. Fichero MonitorSAR__O.java................................................... 463 B.17.6. Fichero MonitorSAR__Q.java................................................... 463 B.17.7. Fichero MonitorSAR__R.java................................................... 463 B.17.8. Fichero MonitorSAR__S.java ................................................... 463 B.17.9. Fichero MonitorSAR_a.java...................................................... 464 B.17.10. Fichero MonitorSAR_b.java ..................................................... 464 B.17.11. Fichero MonitorSAR_c.java...................................................... 464 B.17.12. Fichero MonitorSAR_d.java ..................................................... 464 B.17.13. Fichero MonitorSAR_g.java ..................................................... 465 B.17.14. Fichero MonitorSAR_h.java ..................................................... 465 B.17.15. Fichero MonitorSAR_j.java ...................................................... 465 B.17.16. Fichero MonitorSAR_k.java ..................................................... 466 B.17.17. Fichero MonitorSAR_m.java .................................................... 466 B.17.18. Fichero MonitorSAR_n.java ..................................................... 466 B.17.19. Fichero MonitorSAR_p.java ..................................................... 466 B.17.20. Fichero MonitorSAR_q.java ..................................................... 466 B.17.21. Fichero MonitorSAR_r.java ...................................................... 467 B.17.22. Fichero MonitorSAR_u.java ..................................................... 467 B.17.23. Fichero MonitorSAR_v.java ..................................................... 467 B.17.24. Fichero MonitorSAR_w.java..................................................... 467 B.17.25. Fichero MonitorSAR_y.java ..................................................... 468 ÍNDICE DE CONTENIDO XI B.18. Paquete NombresPaneles........................................................................... 469 B.18.1. Fichero PAmdahl.java ............................................................... 469 B.18.2. Fichero PBienvenida.java.......................................................... 469 B.18.3. Fichero PComparacionMaquinas.java....................................... 469 B.18.4. Fichero PFiabilidad.java............................................................ 469 B.18.5. Fichero PLogicaDifusa.java ...................................................... 469 B.18.6. Fichero PLogicaDifusa_SubpanelPaso1.java............................ 470 B.18.7. Fichero PLogicaDifusa_SubpanelPaso2.java............................ 470 B.18.8. Fichero PLogicaDifusa_SubpanelPaso3.java............................ 470 B.18.9. Fichero PLogicaDifusa_SubpanelPaso4java............................. 470 B.18.10. Fichero PLogicaDifusa_SubpanelPaso5.java............................ 470 B.18.11. Fichero PMonitorSAR.java ....................................................... 470 B.18.12. Fichero PSistemaInformatico.java............................................. 471 B.19. Paquete RutasImagenes ............................................................................. 472 B.19.1. Fichero DiscoDuroExterno.java ................................................ 472 B.19.2. Fichero DiscoDuroInterno.java ................................................. 472 B.19.3. Fichero Escaner.java.................................................................. 472 B.19.4. Fichero FuenteAlimentacion.java.............................................. 472 B.19.5. Fichero GUI.java ....................................................................... 472 B.19.6. Fichero GrabadoraCD.java........................................................ 473 B.19.7. Fichero GrabadoraDVD.java..................................................... 473 B.19.8. Fichero Impresora.java .............................................................. 473 B.19.9. Fichero Memoria.java................................................................ 473 B.19.10. Fichero Modem.java.................................................................. 473 B.19.11. Fichero Monitor.java ................................................................. 474 B.19.12. Fichero PlacaBase.java.............................................................. 474 B.19.13. Fichero Procesador.java............................................................. 474 B.19.14. Fichero Raton.java..................................................................... 474 B.19.15. Fichero Router.java ................................................................... 474 B.19.16. Fichero TabletaGrafica.java ...................................................... 475 B.19.17. Fichero TarjetaGrafica.java ....................................................... 475 B.19.18. Fichero TarjetaRed.java............................................................. 475 B.19.19. Fichero TarjetaSCSI.java........................................................... 475 B.19.20. Fichero TarjetaSonido.java........................................................ 475 B.19.21. Fichero TarjetaUSB.java ........................................................... 476 B.19.22. Fichero TarjetaVideo.java ......................................................... 476 B.19.23. Fichero Teclado.java ................................................................. 476 B.19.24. Fichero Ventilador.java ............................................................. 476 B.20. Paquete RutasManual ................................................................................ 477 B.20.1. Fichero Manual.java .................................................................. 477 B.21. Paquete SistemaInformatico ...................................................................... 478 B.21.1. Fichero FactoriaSistemaInformatico.java.................................. 478 B.21.2. Fichero SistemaInformatico.java............................................... 478 Referencias bibliográficas.......................................................................................... 481 Enlaces bibliográficos................................................................................................. 483 Bibliografía.................................................................................................................. 485 Resumen / Abstract En este proyecto se ha desarrollado un software para el análisis y la evaluación del rendimiento y de la fiabilidad de cualquier tipo de sistema informático y/o de cualquiera de los componentes que lo forman. Se podrá diseñar un sistema informático, evaluar el rendimiento del mismo a través de la aplicación de la Ley de Amdahl, calcular la fiabilidad de los distintos componentes que forman nuestro sistema informático, valorar los resultados obtenidos tras la ejecución del monitor SAR, comparar el rendimiento de nuestro sistema informático con otros y aplicar conocimientos de lógica difusa para conocer qué componente es preferible sustituir. Palabras clave: decisión multicriterio, evaluación, fiabilidad, ley de Amdahl, lógica difusa, MCDM, modelado, monitorización, rendimiento, sistema informático. This project has been developed for the analysis and the evaluation of performance and reliability of any kind of computer system and / or of any of the components that form it. In this software we will be able to design a computer system, evaluate the performance of it through the application of Amdahl's law, calculate the reliability of the different components that make up our computer system, evaluate the execution results of the SAR monitor, compare the performance of our computer system with others and apply the fuzzy logic knowledge to know what component is preferable to substitute in the computer system. Keywords: Amdahl’s law, computer system, evaluation, fuzzy logic, MCDM, multiple criteria decision, modelling, monitorization, performance, reliability. Prólogo Esta memoria es el resultado de un año de trabajo que los autores han dedicado a un proyecto fin de carrera muy fácil de justificar en este prólogo. Cualquier proyecto de ingeniería requiere tanto del estudio del rendimiento del producto o servicio como de la fiabilidad del mismo. En ingeniería informática, el rendimiento de las configuraciones es un tema ampliamente estudiado y debatido, mientras que el análisis de la fiabilidad del producto final tradicionalmente ha sido más desarrollado en otras ingenierías como la industrial. Por todo ello, un trabajo en el que se combinen ambas ideas como estudio de la calidad de un producto informático constituye una propuesta innovadora. Los autores han desarrollado una herramienta software, a la que han denominado EMSI, capaz de diseñar un sistema informático, configurar sus componentes de acuerdo a sus características propias y evaluar su rendimiento, tanto de forma aislada como del sistema completo. Se han añadido herramientas de caracterización de las componentes en términos de fiabilidad y lo más importante, se han analizado las interacciones entre rendimiento y fiabilidad obteniendo como resultado un software de ayuda a la decisión multicriterio que fundamenta sus elecciones en la lógica difusa y que permite clasificar las componentes del sistema de acuerdo a su valor óptimo respecto al binomio Rendimiento-Fiabilidad. Es fácil también justificar la realización de este trabajo en términos docentes, dado que la herramienta software podría ser utilizada según dos vertientes: En nivel grado, los alumnos de asignaturas como Rendimiento de Configuraciones de los Sistemas Informáticos y otras relacionadas, pueden utilizar este software para practicar y dar solidez a los conocimientos que se adquieren en esta materia. Otros proyectos fin de carrera pueden continuar éste, añadiendo otras utilidades, como el cálculo de la garantía de un producto, simulación, etc. En nivel postgrado el trabajo también admite continuidad si se plantean métodos alternativos para la clasificación de los componentes. Una propuesta pueden ser los métodos de decisión multicriterio que se estudian en asignaturas de máster y doctorado. Por otra parte, los autores han realizado una gran labor escribiendo esta memoria estructurándola y componiéndola con sumo cuidado, dando como resultado un trabajo de lectura amena y sencilla. Además han incluido un manual de usuario que facilita aún más si cabe la comprensión del trabajo realizado. Durante su lectura puede intuirse el EVALUACIÓN Y MODELADO DE SISTEMAS INFORMÁTICOS XVI entusiasmo de los autores en el trabajo a pesar de la dificultad que entrañan algunos temas por su componente matemática y estadística. Como consecuencia este trabajo es una lectura muy recomendable para cualquier alumno de grado o postgrado en ingeniería informática. María Victoria López López Departamento de Arquitectura de Computadores y Automática Universidad Complutense de Madrid Junio 2009, Madrid 1.- Introducción El presente documento constituye el desarrollo del trabajo de la asignatura de Sistemas Informáticos correspondiente a la titulación de Ingeniería en Informática, impartida por la Universidad Complutense de Madrid, en la Facultad de Informática. Los objetivos perseguidos son la aplicación y ampliación de los conocimientos adquiridos a lo largo de los cursos y asignaturas que componen la mencionada titulación. Éstos serán plasmados en el desarrollo de un trabajo donde se pueda estudiar el enfoque proyecto como modo normal de trabajo en el ciclo de vida de soluciones informáticas e integración de sistemas como modo usual de los proyectos software. Así como dotarse de una disciplina para el desarrollo del software y enfrentarse a la resolución de una aplicación en el ámbito de la orientación a objetos. Para ello se ha utilizado Java por ser un potente lenguaje de programación de propósito general, adecuado para la construcción de diversas aplicaciones. Su diseño está orientado a lograr la máxima portabilidad, evitando tantas dependencias con la implementación hardware de la máquina como sea posible, y a facilitar la ejecución de aplicaciones en muy distintos entornos y equipos. La motivación principal de este proyecto reside en la necesidad de construir una aplicación que sirva para realizar un análisis del rendimiento y de la fiabilidad en el funcionamiento de los sistemas informáticos y los componentes que los integran. Este análisis será entendido como un conjunto de componentes funcionales que contribuyen a la consecución de un objetivo específico: la ejecución de programas. La aplicación recibirá el nombre de “Evaluación y Modelado de Sistemas Informáticos” (en adelante “EMSI”). En la articulación existente entre los diferentes componentes de un sistema informático existe una especialización funcional, y ello desde un doble punto de vista: físico y lógico. Cada componente está especializado en la realización de unas actividades concretas que tienen relación muy estrecha con la ejecución de las instrucciones del programa. La reunión de todos los componentes, que actuarán de forma coordinada, constituye un EVALUACIÓN Y MODELADO DE SISTEMAS INFORMÁTICOS 2 verdadero sistema en el que el conjunto tiene una virtualidad mayor que la mera unión de ellos. En resumen, podemos entender el concepto de sistema informático como el conjunto de componentes hardware y software que lo forman y que son capaces de procesar datos según programas diseñados e implementados por programadores y ejecutados por los usuarios del mismo. Es necesario estudiar las prestaciones de un sistema informático, que se refieren a un concepto relativo al análisis y evaluación del mismo, mediante un conjunto de índices de rendimiento cuantificables. Estas prestaciones indicarán todos los servicios que el sistema informático es capaz de ofrecer al usuario que lo utilice. La elección de un sistema informático u otro depende de muchos agentes. Uno de ellos es la eficiencia requerida, que depende, a su vez, de factores como, por ejemplo, el tipo de aplicaciones ejecutadas o la carga global del sistema. No existe un criterio único de ponderación de la importancia de cada factor, por lo que se definen diversos índices de rendimiento cuantificables. Estos índices han sido desarrollados con un conjunto de técnicas que permiten su evaluación, comparación y estimación estadística. La utilización de los índices es más importante cuanto mayor es la dimensión del sistema informático y cuanto más criticas son sus necesidades de recursos. Esta evaluación no sólo es fundamental durante la vida productiva del sistema, sino también durante su diseño, elección por parte del comprador y su instalación. Estas técnicas de evaluación se implementan en dos fases diferenciadas: Fase de diagnóstico, cuyo objetivo es establecer las causas de los cuellos de botella de funcionamiento que pueden afectar al rendimiento global del sistema. Fase de terapia, cuyo objetivo es la eliminación de los factores causantes de dichos cuellos de botella para incrementar así la eficiencia del sistema. De una forma más visual tendremos: INTRODUCCIÓN 3 La mejora del rendimiento de un sistema informático es una cuestión fundamental cuando se pretende mejorar su funcionamiento. Como es obvio, esta mejora no puede ser ilimitada, sino que está acotada y el aumento del rendimiento que puede obtenerse al mejorar algún componente de la configuración del sistema puede calcularse utilizando la Ley de Amdahl. La Ley de Amdahl establece que la mejora obtenida en el rendimiento al utilizar algún módulo o componente de ejecución más rápido está limitada por la fracción de tiempo que éste se puede utilizar. Al modificar alguno de los componentes que forman parte de un sistema más complejo, podemos diferenciar dos tipos diferentes de aceleraciones, relacionadas directamente con las características nuevas que con la sustitución se introducirán en el sistema. La aceleración relativa hace referencia a la reducción del tiempo obtenida con la integración del nuevo componente. Ésta estará íntimamente relacionada con el incremento de las prestaciones que permiten que el nuevo componente emplee menos tiempo en acabar el mismo trabajo. La aceleración global del sistema es la relación existente entre los tiempos de ejecución de una misma tarea cuando se ven modificadas las características de alguno de los componentes que intervienen en ella. La Ley de Amdahl puede servir como guía para comprobar como una mejora aumenta el rendimiento del sistema informático. También nos permitirá adecuar la distribución de los recursos para mejorar la relación rendimiento/coste del mismo. El objetivo es, por Definición de objetivos Datos de la carga Datos del sistema Índices y variables Modelo del sistema Interpretación de resultados ¿Correctos? Verificaciones periódicas Modificar modelo Fase de diagnosis Sí No Fase de terapia EVALUACIÓN Y MODELADO DE SISTEMAS INFORMÁTICOS 4 tanto, emplear los recursos de modo proporcional al tiempo que se requiere en cada parte. La evaluación del rendimiento de sistemas informáticos depende en gran medida de los resultados que se pueden extraer del análisis estadístico de los datos obtenidos por la monitorización de sistemas. Para ello es necesario estudiar previamente el modelo del sistema. Uno de los modelos con mayor interés es el basado en el tiempo hasta el fallo de un componente o del sistema en general. Tras realizar la estimación oportuna de los parámetros inherentes, este modelo nos permitirá predecir la vida media y su fiabilidad, establecer programas de sustitución que prevengan de posibles fallos irreparables u otros programas de aprovisionamiento de componentes. En términos estadísticos se modeliza la variable aleatoria T como el tiempo de funcionamiento de un componente, dispositivo o sistema hasta encontrar el primer fallo. La distribución de probabilidad de esta variable, que, como toda distribución, resulta ser continua y no negativa, se denomina función de infiabilidad de T y se corresponde con algunas de las distribuciones habituales de medidas de tiempo estudiadas en estadística básica. La distribución de probabilidad de una variable aleatoria es una función que asigna a cada evento definido una probabilidad, describiendo el rango de valores que puede tomar así como la probabilidad de que alguno de ellos esté dentro de un subconjunto de dicho rango. Como la variable aleatoria toma valores en el conjunto de los números reales, la distribución de probabilidad está completamente especificada por dicha función. Por tanto, el valor para cada número real x corresponderá con la probabilidad de que la variable sea menor o igual que x. La monitorización es una técnica de uso generalizada para supervisar, analizar y evaluar el comportamiento y el rendimiento de los sistemas informáticos que ya están en funcionamiento. Hace referencia a todo lo relativo a la extracción de información que permita conocer qué está sucediendo en ellos y qué variable podría ser modificada para que el rendimiento del sistema mejorase. Para monitorizar un sistema se usan diversos útiles de medida. El objeto de todos ellos es cuantificar los resultados de una observación, obtenida durante una sesión de medida del funcionamiento del sistema informático implicado. Otra característica fundamental de los útiles de medida es su exactitud, que puede ser expresada por el error que afecta a los valores obtenidos para la magnitud medida. Si en la monitorización se utilizan un conjunto de útiles de medida, cada uno de ellos contribuirá con su inexactitud al error total. Los monitores software son programas que detectan los estados de un sistema, es decir, recogen datos del estado de ciertos componentes en determinados instantes de tiempo. También pueden tratarse, simplemente, de conjuntos de instrucciones capaces de detectar la aparición de determinados acontecimientos que influyen en el rendimiento de la máquina. INTRODUCCIÓN 5 Sea cual sea la implementación interna de cualquier monitor, su finalidad consiste en detectar los cuellos de botella que influyen directamente en el rendimiento final de la máquina. Por su importancia, en el desarrollo de la aplicación se ha seleccionado el monitor SAR (System Activity Reporter) ya que es una de las herramientas más potentes disponible para monitorizar la actividad de sistemas informáticos que ya se encuentran en funcionamiento. La tendencia actual dentro del campo de la evaluación de prestaciones se orienta principalmente a utilizar índices relacionados con el tiempo de ejecución de determinados programas de prueba con unas características peculiares en un sistema informático. Estos programas reciben el nombre de Benchmark y, dado que se crean con el fin de poner a prueba las características de cómputo de un sistema, se utilizan para conocer sus prestaciones y la relación entre éstas y su coste. Su finalidad básica es la de conocer qué sistema es el más adecuado para realizar una función en concreto. La comparación cuantitativa empieza por la definición del Benchmark o modelo de carga. Este modelo se hace funcionar en diferentes sistemas informáticos y las prestaciones y precios de cada sistema son medidos y analizados. Una medida típicamente utilizada para las prestaciones es el número de trabajos que se completan o ejecutan por unidad de tiempo. El precio, en sí, es una medida del coste a un horizonte dado. Uniendo ambas medidas obtendremos la relación directa entre las prestaciones y el desembolso necesario para obtener un sistema. Otra cuestión a considerar es que ninguna métrica sencilla puede medir las prestaciones de un sistema informático en todo tipo de aplicaciones ya que éstas varían enormemente de un dominio a otro. Dicho de otro modo, cada sistema informático está diseñado para un entorno limitado de aplicaciones y puede dar peores resultados fuera de estos dominios. Por ello, cada Benchmark se destina a un dominio específico de aplicación, fuera del cual carece de interés su uso. Hay varios consorcios que se ocupan de definir estándares para los Benchmark. Los tres más importantes son: SPEC (System Performance Evaluation Cooperative) orientados a entornos científicos y de estaciones de trabajo. The Perfect Club, destinados a entornos científicos haciendo un particular énfasis en nuevas arquitecturas de sistemas y de computación paralela. TPC (Transaction Processing Performance Council), encaminados a dominios de almacén y transacción de datos. En el proceso de toma de decisiones resulta necesaria la utilización conjunta de los enfoques cuantitativo y cualitativo. La teoría de la decisión multicriterio constituye un instrumento a tener en cuenta en este proceso porque permite considerar el conjunto de objetivos usualmente en conflicto buscando un compromiso o equilibrio entre ellos o la satisfacción de un conjunto de metas asociadas a dichos objetivos de decisiones. EVALUACIÓN Y MODELADO DE SISTEMAS INFORMÁTICOS 6 La lógica borrosa o difusa se basa en la relatividad que rodea los hechos observados. Por ello, puede usarse para explicar el mundo en el que vivimos, puesto que sigue el comportamiento humano de razonar, sacando conclusiones a partir de hechos acontecidos realmente. La lógica difusa admite varios valores de verdad posibles. Si tenemos en cuenta que P es una proposición cualquiera, podemos asociarle un número ( )Pμ no negativo e inferior a la unidad tal que: Si ( ) 0=Pμ , se considera que la proposición es falsa. Si ( ) 1=Pμ , se considera que la proposición es verdadera. Para valores intermedios se supone que la veracidad de la proposición aumenta proporcionalmente al valor de ( )Pμ . La lógica difusa se adapta fielmente al mundo real en el que vivimos e, incluso, puede comprender y funcionar con expresiones exclusivamente humanas. La clave de esta adaptación al lenguaje, se basa en comprender y traducir los cuantificadores que usamos en nuestro lenguaje. Cada conjunto difuso asocia una función de pertenencia a cada uno de sus elementos, indicando en qué grado el elemento forma parte del mismo. La lógica difusa se utiliza cuando la complejidad del proceso en cuestión es muy alta y no existen modelos matemáticos precisos que lo resuelvan. También suele utilizarse en procesos altamente no lineales y cuando se envuelven definiciones y conocimientos imprecisos o subjetivos. En EMSI aparecen diferentes apartados destinados a la aplicación de los distintos conceptos mencionados anteriormente, a saber: Sistema informático (Computer System), donde se puede realizar el proceso de modelado del sistema necesario para su evaluación posterior. Evaluación del rendimiento (Performance Evaluation), en el que se pueden aplicar las características propias de la Ley de Amdahl. Fiabilidad del sistema (System’s Reliability), dedicado al estudio de la fiabilidad de los componentes a lo largo de su tiempo de vida. Monitorización SAR (System Activity Reporter), que se representará gráficamente los datos obtenidos de la ejecución del monitor en una máquina real. Análisis comparativo (Comparative Analysis), en el que se podrá realizar comparaciones de rendimiento entre distintas alternativas. Decisión multicriterio (Fuzzy MCDM), donde se obtendrá una recomendación del componente a sustituir para mejorar el rendimiento global del sistema. INTRODUCCIÓN 7 Para facilitar la continuidad del trabajo en futuros proyectos con componentes de investigación, como estudios de doctorado o de fin de máster, la aplicación software ha sido desarrollada íntegramente en inglés. 2.- Estado del arte Una simulación por ordenador, un modelo de ordenador o un modelo computacional es un modelo de programa de ordenador, o red de computadoras, que intenta simular un modelo abstracto de un sistema informático. Las simulaciones por ordenador se han convertido en una parte útil de la modelización matemática de muchos de los sistemas naturales de la física computacional, la química y la biología, los sistemas humanos en economía, la psicología y las ciencias sociales y en el proceso de ingeniería de las nuevas tecnologías, permitiendo conocer mejor el funcionamiento de esos sistemas u observar su comportamiento. Varían las simulaciones por ordenador en las que se ejecutan las aplicaciones unos minutos, a los grupos basados en la red de equipos que se ejecutan durante horas, a las simulaciones que se ejecutan durante días. La escala de los eventos a simular por ordenador ha superado con creces todo lo posible (o tal vez incluso todo lo imaginable). La siguiente es una lista de los principales programas informáticos de simulación por computadora. De código abierto: ASCED, entorno de modelización de NLA/DAE. Facsimile, librería de simulación y emulación de eventos discretos. NS2, un popular simulador de red. De ámbito comercial: DX Studio, suite de herramientas para la simulación y visualización. Modelica, un estándar para la modelización de software. EVALUACIÓN Y MODELADO DE SISTEMAS INFORMÁTICOS 10 VisSim, se trata de un lenguaje visual de diagrama de bloques para modelar, simular y analizar sistemas dinámicos. En la actualidad se esta reevaluando la Ley de Amdahl; en los laboratorios Ames, del departamento de energía de Iowa, a través de la universidad de ése mismo estado. Este estudio está dedicado actualmente a la investigación de procesamiento de datos de forma masiva y paralela. Existiendo un considerable escepticismo con respecto a la viabilidad de la investigación, concretamente con respecto a los centros de la Ley de Amdahl; un argumento presentado por Gene Amdahl indica que aun cuando la fracción de trabajo en serie en un determinado problema es pequeña, la aceleración máxima obtenible incluso en un numero infinito de procesadores en paralelo es 1/s. Podemos probar una aplicación de la Ley de Amdahl en el mundo de los negocios mediante la herramienta que encontraremos dentro del sitio Web [20]. Allí se explica que siempre se esta tratando de hacer funcionar los procesos de negocio más rápidamente. Además de innovar en nuevas áreas, se está tratando de hacer las cosas, que ya se hacen, más dinámicas que la competencia, lo que representa un pilar básico de la ventaja competitiva. Una manera de buscar algo en el exceso de velocidad es dividir el problema en partes independientes y ejecutar cada una de forma paralela. Con un buen diseño, este tipo de enfoque puede funcionar bien, pero no tanto en entornos heredados de etapas del proceso donde puede vagar a través de múltiples aplicaciones con características muy diferentes. Es aquí donde la Ley de Amdahl comienza a tener efecto ya que establece que cualquiera de las partes paralelas de un proceso de negocio, formado por, al menos, un paso que deba ejecutarse de forma secuencial o con ciertas restricciones en la velocidad y que ocupa una fracción f del tiempo de cómputo global, no podrán acelerarse en más de un factor de 1/f. Podremos encontrar y realizar un ejemplo práctico de otra aplicación de la Ley de Amdahl en la construcción del Multiprocesador ERA en el sitio Web [22]. En el campo de la monitorización de sistemas informáticos existen infinidad de programas que se pueden utilizar, tanto de código abierto como propietarios, para comprobar el funcionamiento de las distintas plataformas: Unix, Linux, Windows… Actualmente tienen una importante relevancia las aplicaciones dedicadas a la monitorización de redes, debido al auge y la expansión de Internet. Cabe destacar los denominados Firewall o cortafuegos, los cuáles permiten monitorizar programas con acceso a Internet o a otras redes locales. En este ámbito se sitúan programas de empresas de software como Symantec, Panda, McAfee… Hay que realizar una mención especial a los programas denominados Benchmark, utilizados con el fin de medir el rendimiento de un sistema o de un componente específico. ESTADO DEL ARTE 11 Cabe destacar el Benchmark SPEC (Standard Performance Evaluation Corporation) diseñado para proporcionar mediciones que pueden ser utilizadas para comparar el flujo de trabajo de computación intensivo en diferentes sistemas informáticos. Concretamente, SPEC CPU2006 contiene dos series de aplicaciones para medir y comparar el rendimiento de computación intensiva de las unidades internas que forman un procesador: CINT2006, centrada en el tratamiento de números enteros, y CFP2006, centrada en los números en punto flotante. En la dirección Web [28] encontraremos toda la información existente sobre este Benchmark, además de las anteriores versiones del producto, tales como, SPEC CPU2000, SPEC CPU95 y SPEC CPU92. También descubriremos gráficos y rendimientos de estaciones de trabajo que se han comparado utilizando las características que los diferentes Benchmark incluyen. Encontraremos también un apartado donde consultar los resultados de la ejecución del Benchmark SPEC2006 y comparaciones de éstos con otros productos de la misma empresa. En el campo del estudio de la fiabilidad de los distintos componentes que puede tener un sistema informático, debemos mencionar a la empresa ReliaSoft, líder en la industria del software para ingeniería de fiabilidad y campos relacionados. En el sitio Web [27] se nos proporcionará información detallada acerca de su software y sus servicios de fiabilidad. Entre las herramientas para analizar la fiabilidad en el ámbito profesional cabría destacar la denominada WEIBULL++ dado que es el estándar más utilizado en la industria de análisis de datos (análisis Weibull) en miles de empresas de todo el mundo. El software realiza el análisis de datos utilizando múltiples distribuciones de tiempo de vida (incluidas todas las formas de la distribución Weibull), con un interfaz claro y conciso orientado a la fiabilidad de ingeniería. La característica más importante de este software es que ofrece el más completo conjunto de herramientas disponibles para el análisis de la fiabilidad de datos reales, resultados calculados con soporte para todo tipo de datos y todas las distribuciones de productos comúnmente utilizados. La aplicación incluye el modelo Weibull (en sus variantes estándar o mixta), el Exponencial, el LogNormal, el Normal, el Gamma (en sus versiones estándar o generalizada), el Logístico, el LogLogístico, el Gumbel y el Weibull-Bayesiano. El software contiene también otras herramientas de análisis relacionadas con la fiabilidad, como pueden ser la garantía y la degradación de análisis de datos, la utilización de datos no paramétricos y el análisis de eventos periódicos. En este trabajo también se ha utilizado la herramienta JFreeChart, localizada en el sitio Web [21], para el desarrollo de la parte gráfica y visual de la aplicación. JFreeChart es una biblioteca gráfica de Java que hace que sea fácil para los desarrolladores mostrar gráficos de calidad profesional en sus aplicaciones. La librería incluye un extenso conjunto de características entre las que se encuentran: EVALUACIÓN Y MODELADO DE SISTEMAS INFORMÁTICOS 12 Un interfaz de desarrollo bien documentado, con apoyo de una amplia gama de tipos de gráficos para realizar las representaciones. Un diseño flexible que sea fácil de ampliar, tanto del lado del servidor y como del lado de las aplicaciones cliente. Soporte para muchos tipos de datos de salida, incluyendo los componentes Swing, archivos de imagen (incluyendo PNG y JPEG), gráficos vectoriales y otros formatos de archivo (incluyendo PDF, EPS y SVG); JFreeChart es software libre que se distribuye bajo los términos de la GNU Lesser General Public Licence (LGPL). Por ello permite su uso en aplicaciones propietarias. Finalmente también se ha hecho uso del proyecto Colt, desarrollado por el CERN (Conseil Européen pour la Recherche Nucléaire, Organización Europea de Investigación Nuclear). Colt ofrece un conjunto de bibliotecas de código abierto de alto rendimiento para la computación científica y técnica en Java. La biblioteca de Colt se licencia bajo los siguientes términos: Copyright© 1999 CERN - Organización Europea de Investigación Nuclear. La autorización para utilizar, copiar, modificar, distribuir y vender este software y su documentación con cualquier propósito se concede sin tasa, siempre que el anterior aviso de derechos de autor aparezca en todas las copias y que tanto el aviso de copyright y esta nota de permiso aparezcan en la documentación. CERN no se hace responsable de la idoneidad de este software para cualquier propósito. Se proporciona “tal cual”, sin garantía expresa o implícita. En el CERN nació el estándar World Wide Web que conocemos y que utilizamos asiduamente en la actualidad. Allí también, en el Laboratorio Europeo de Física de Partículas, fueron descubiertos los bosones W y Z. En la actualidad están desarrollando un ambicioso proyecto, el LHC (Large Hadron Collider, Gran Colisionador de Hadrones), un enorme acelerador de partículas que buscará el bosón de Higgs (conocido también como “la partícula de Dios”) y otras nuevas partículas subatómicas y fuerzas fundamentales que ayuden a explicar cómo se creó el universo. El LHC, formado por una cadena de aceleradores de diferentes dimensiones, se encuentra situado bajo tierra cerca de Ginebra, en la frontera entre Francia y Suiza. En su diseño y construcción, con un presupuesto superior a un millón y medio de euros, han participado más de dos millares de físicos y universidades y centros de investigación de todo el mundo. Para enfriar los conductos de los aceleradores que forman el LHC se ha confeccionado un complejo sistema de refrigeración y una avanzada red de computación, basada en fibra óptica e Internet de alta velocidad, procesará y enviará a más de un centenar de instituciones en todo el mundo una media de 27 TB de información diariamente. ESTADO DEL ARTE 13 Encontrará más información sobre el CERN y los proyectos que lleva a cabo en el sitio Web [24]. Para localizar más información sobre la librería Java Colt se puede visitar la dirección [25]. 3.- Evaluación y modelado del rendimiento En los siguientes apartados podrá conocer los detalles técnicos y teóricos que motivan la creación de la aplicación EMSI, así como diversos ejemplos de cálculo que ayudarán en su comprensión y que podrán ser fácilmente comprobados. 3.1.- Sistemas informáticos Según la ISO (Internacional Standarization Organization, Organización Internacional para la Estandarización), un sistema informático es aquel sistema compuesto por equipos y personal que realiza funciones de entrada, proceso, almacenamiento, salida y control de la información con el fin de llevar a cabo una secuencia de operaciones con datos. Podríamos decir que se forma por un conjunto de partes interrelacionadas de muy diversos tipos: hardware, software y recursos humanos. Normalmente consta de un computador que usa distintos dispositivos o componentes para capturar, almacenar y procesar datos. Incluso el ordenador más sencillo puede constituir un sistema informático, ya que dos componentes (hardware y software) han de trabajar unidos. Pero normalmente el concepto proviene de la interconexión entre ellos; muchos sistemas informáticos de reducidas dimensiones pueden interconectarse entre sí para formar un único sistema informático mayor. Podemos clasificar los sistemas informáticos en cuanto al uso que se les va a dar: EVALUACIÓN Y MODELADO DE SISTEMAS INFORMÁTICOS 16 Sistemas informáticos de uso general, que se utilizan comúnmente para ejecutar diferentes tipos de aplicaciones. En estos sistemas podemos encontrar módulos de funcionamiento estándar que pueden ser utilizados por todas las aplicaciones de igual forma. En este tipo incluiríamos las computadoras personales. Sistemas informáticos de uso específico, que se caracterizan por ejecutar un reducido conjunto de programas. En estos sistemas, las unidades que los forman están completamente adaptadas a la aplicación que ejecutan para que la especialización y los resultados obtenidos sean óptimos. Un ejemplo de este tipo podríamos encontrarlo en los robots industriales. Podríamos clasificar también los sistemas informáticos en cuanto a las prestaciones que nos ofrecen: Supercomputadores. Se trata de equipos con gran capacidad de cálculo. Suelen ser de tipo vectorial con varios procesadores trabajando en paralelo. Se utilizan fundamentalmente en la ejecución de simuladores en el entorno técnico y científico. Sistemas grandes. Se trata de equipos caracterizados por dar soporte a grandes redes de comunicaciones con cientos e, incluso, miles de usuarios. Sistemas medios. Se trata de equipos con capacidad para soportar cientos de usuarios con un coste y unas prestaciones inferiores a los grandes sistemas. En este grupo se incluyen equipos de prestaciones muy variadas. Estaciones de trabajo. Se trata de equipos monousuario muy potentes con algunas mejoras en sus arquitecturas para conseguir un aumento en las prestaciones y en la clase de programas que son capaces de ejecutar. Microordenadores. Se trata de equipos monousuario menos potentes que se pueden clasificar en ordenadores profesionales, personales y domésticos. Hoy en día las fronteras entre los tipos anteriores son mucho más difíciles de establecer, puesto que los ordenadores personales actuales son mucho más potentes que grandes sistemas de hace unos años. Como anteriormente se comentó, un sistema informático se forma por una serie de componentes que capturan, almacenan y procesan datos. Estos componentes se dividen en tres categorías fundamentales: Los componentes físicos constituyen el hardware del sistema informático y están formados, básicamente, por los computadores, los periféricos y el sistema de comunicaciones que los interconecta. Proporcionan la capacidad y la potencia de cálculo del sistema global. Los componentes lógicos constituyen el software del sistema informático y están formados por las aplicaciones, las estructuras de datos y la documentación asociada. El software se encuentra distribuido en el hardware y lleva a cabo el proceso lógico que requiere la información. EVALUACIÓN Y MODELADO DEL RENDIMIENTO - SISTEMAS INFORMÁTICOS 17 Los componentes humanos se constituyen por todas las personas que participan en las diferentes fases de la vida de un sistema: diseño, desarrollo, implantación, explotación… Aunque no lo parezca, es sumamente importante ya que un sistema informático está creado por y para los humanos. En nuestra aplicación daremos especial importancia a la visión física de los componentes, sin olvidar en ningún momento la parte lógica. Cada componente tiene una función específica y una serie de atributos con sus propias unidades de medida que permiten diferenciarlo de los demás. Aunque muchas de estas características son comunes a todos los componentes de la misma familia, en ocasiones dependen del propio fabricante. Por ello, en la aplicación hemos decidido utilizar los atributos más habituales. Los componentes más importantes que EMSI permite utilizar en la personalización del propio sistema informático que se utilizará en el resto de los módulos que conforman la aplicación son: Procesador: dispositivo que interpreta las instrucciones de las aplicaciones y procesa los datos según sea preciso. Sus características principales son: Frecuencia de reloj (en MHz). Número de núcleos. Capacidad de la memoria cache (en MB). Número de niveles de memoria cache. Disco duro interno: dispositivo de almacenamiento no volátil que, empleando un sistema de grabación digital magnética, es capaz de conservar la información incluso tras la pérdida de energía. Sus características principales son: Capacidad (en MB). Velocidad rotacional (en rpm). Tiempo medio de acceso (en ms). Tiempo medio de posicionamiento (en ms). Latencia media (en ms). Memoria: dispositivo de almacenamiento volátil que, empleando diferentes tecnologías de implementación, retiene los datos informáticos que necesitan las aplicaciones durante algún intervalo de tiempo. Sus características principales son: Capacidad (en MB). Tiempo de medio de acceso (en ms). EVALUACIÓN Y MODELADO DE SISTEMAS INFORMÁTICOS 18 Placa base: tarjeta de circuito impreso que sirve como soporte e interfaz de comunicación a las demás partes del ordenador. Tiene instalados una serie de circuitos integrados, entre los que se encuentra el Chipset que sirve como centro de conexión entre el procesador, la memoria, los buses de expansión y otros dispositivos. La placa base además incluye un software llamado BIOS (Basic Input-Output System, Sistema Básico de Entrada-Salida), que le permite realizar funciones básicas como pruebas y detección de componentes, manejo del teclado y carga del sistema operativo. Sus características principales son: Frecuencia del bus (en MHz). Memoria interna (en MB). Número de canales IDE. Número de ranuras de expansión. Modelo de Chipset. Tarjeta gráfica: tarjeta de expansión que se encarga de procesar los datos provenientes del procesador central y transformarlos en información comprensible y representable en una pantalla o monitor. Sus características principales son: Capacidad (en MB). Frecuencia de refresco (en MHz). Frecuencia del reloj del núcleo (en MHz). Frecuencia del reloj de la memoria (en MHz). Resolución (en píxeles). Tipo de interfaz de conexión. Tarjeta de sonido: tarjeta de expansión que permite realizar entrada y salida de audio bajo el control de un programa informático y usando otros dispositivos como micrófonos y altavoces. Sus características principales son: Compatibilidad con entrada/salida analógica. Compatibilidad con entrada/salida digital. Tarjeta de vídeo: tarjeta de expansión que se encarga de procesar los datos provenientes del procesador central y que además se especializa en labores de tratamiento y edición de vídeo. Sus características principales son: Capacidad de la memoria interna (MB). Frecuencia de muestreo (en MHz). Frecuencia del reloj del núcleo (en MHz). EVALUACIÓN Y MODELADO DEL RENDIMIENTO - SISTEMAS INFORMÁTICOS 19 Frecuencia del reloj de la memoria (en MHz). Ancho de banda de la memoria (en GB/s). Tipo de interfaz de conexión. Tarjeta de red: dispositivo que permite la comunicación entre diferentes elementos conectados entre sí, logrando compartir recursos e información entre dos o más equipos. Sus características principales son: Capacidad de la memoria interna (en MB). Velocidad de enlace (en Mbps). Número de puertos. Conectividad inalámbrica. Tarjeta USB: dispositivo que permite la conexión con el equipo en marcha y configuración automática de dispositivos periféricos de muy diversa índole como memorias, ratones, discos duros, teclados, cámaras digitales o teléfonos móviles. Sus características principales son: Velocidad de subida (en MB/s). Velocidad de bajada (en MB/s). Temperatura de trabajo (en ºC). Tipo de interfaz. Tarjeta SCSI: dispositivo que permite conectar, utilizando una interfaz común, dispositivos externos de diversos tipos como discos duros, escáneres o unidades lectoras y grabadores de discos. Sus características principales son: Velocidad de transferencia de datos (en MB/s). Número de puertos. Número máximo de dispositivos conectados. Tipo de interfaz. Módem: dispositivo que convierte las señales digitales del ordenador en señales analógicas que pueden transmitirse a través del canal telefónico a otra computadora que puede descodificarlos si cuenta con otro módem. Sus características principales son: Velocidad de transferencia de datos (en Mbps). Conexión interna o externa. Formato de codificación de línea. EVALUACIÓN Y MODELADO DE SISTEMAS INFORMÁTICOS 20 Protocolos de modulación. Tecnología de conexión. Router: dispositivo destinado a la interconexión en red de ordenadores, asegurando el enrutamiento de paquetes de datos entre diferentes redes o computadores. Sus características principales son: Velocidad de transferencia de datos (en Mbps). Soporte inalámbrico. Formato de codificación de línea. Protocolos de encaminamiento. Tecnología de conexión. Monitor: dispositivo de salida que muestra los resultados del procesamiento de un ordenador cuando ejecuta las diferentes aplicaciones para las que está diseñado. Sus características principales son: Tamaño de pantalla (en pulgadas). Frecuencia de refresco de pantalla (en MHz). Resolución (en píxeles). Escáner: dispositivo que permite digitalizar imágenes o documentos, traduciéndolos en señales eléctricas que permiten su almacenamiento y procesamiento. Sus características principales son: Resolución óptica (en puntos por pulgada). Profundidad de bits para escala de grises (en bits/píxel). Profundidad de bits para color (en bits/píxel). Tableta gráfica: dispositivo que permite al usuario apuntar y señalar objetos que se encuentren en pantalla o introducir gráficos o dibujos a mano, tal como lo haría con lápiz y papel. Sus características principales son: Tamaño de pantalla (en pulgadas). Resolución óptica (en puntos por pulgada). Número de niveles de presión. Brillo. Contraste. EVALUACIÓN Y MODELADO DEL RENDIMIENTO - SISTEMAS INFORMÁTICOS 21 Impresora: dispositivo que permite reproducir en medios físicos una copia permanente de los textos o gráficos que proceden de los documentos que se encuentran almacenados en formato electrónico, utilizando tecnologías de tinta o láser. Sus características principales son: Resolución óptica (en puntos por pulgada). Memoria interna (en KB). Velocidad de impresión (en páginas por minuto). Tamaño máximo del papel admitido. Grabadora de CD: dispositivo que permite leer y grabar datos en un CD que podrá ser utilizado en otros computadores posteriormente. Sus características principales son: Velocidad rotacional (en rpm). Velocidad de lectura. Velocidad de grabación para escritura. Velocidad de grabación para reescritura. Tiempo de acceso medio (en ms). Grabadora de DVD: dispositivo capaz leer y grabar en un DVD todo tipo de datos de mayor tamaño que los que un CD normal puede contener. Sus características principales son: Velocidad rotacional (en rpm). Velocidad de lectura. Velocidad de grabación para DVD-R/+R. Velocidad de regrabación para DVD-RW/+RW. Velocidad de grabación para DVD-R/+R DL. Tiempo de acceso medio (en ms). Teclado: dispositivo consistente en un sistema de teclas, como las de una máquina de escribir, que permite introducir datos a un computador o dispositivo digital. Sus características principales son: Número de teclas. Conectividad inalámbrica. Disposición de las teclas. EVALUACIÓN Y MODELADO DE SISTEMAS INFORMÁTICOS 22 Tipo de interfaz de conexión. Ratón: dispositivo que permite manejar el cursor o puntero en la pantalla de un computador para fácilmente el intercambio entre las aplicaciones. Sus características principales son: Resolución (en puntos por pulgada). Número de botones. Conectividad inalámbrica. Tecnología de detección. Tecnología de conexión. Disco duro externo: dispositivo de almacenamiento no volátil que, empleando un sistema de grabación digital magnética, es capaz de conservar la información incluso tras la pérdida de energía y, por su diseño, puede ser transportado fácilmente de un lugar a otro e instalarse en distintos sistemas sin perder la información almacenada. Sus características principales son: Capacidad (en MB). Velocidad rotacional (en rpm). Tiempo medio de acceso (en ms). Tiempo medio de posicionamiento (en ms). Latencia media (en ms). Fuente de alimentación: dispositivo que convierte la tensión alterna de la red industrial en una tensión prácticamente continua a diferentes voltajes para representar los valores lógicos que representan la información dentro de un computador y permitir el movimiento de los elementos mecánicos que lo forman. Sus características principales son: Potencia (en W). Voltaje de entrada (en V). Voltaje de salida (en V). Ventilador: dispositivo físico destinado a eliminar el exceso de calor en los elementos de un computador, como el microprocesador o la tarjeta gráfica, para evitar su inflamación. Sus características principales son: Velocidad rotacional (en rpm). Flujo de aire expulsado (en m3/h). Ruido acústico producido (en dBA). EVALUACIÓN Y MODELADO DEL RENDIMIENTO - SISTEMAS INFORMÁTICOS 23 Dimensiones. 3.1.1.- Sistemas informáticos y componentes en EMSI En EMSI disponemos de una interfaz completa que permite crear el sistema informático que desee, añadiéndole los componentes que más se ajusten a sus necesidades. La pestaña de la aplicación dedicada a la personalización del sistema informático es “Computer System” y en ella podrá: Manipular los componentes que forman el sistema, pudiendo añadir nuevos elementos, cambiar las características que los definen e, incluso, eliminarlos si ya son innecesarios o quedaron obsoletos. Especificar un nombre para el sistema informático que esté utilizando para poder diferenciarlos fácilmente entre sí. Guardar la información del sistema informático actual en un fichero que podrá utilizar con posterioridad en sucesivas ejecuciones de la aplicación. Abrir la información de un sistema contenida en un fichero para evitar tener que crear todos los componentes de forma manual cada vez que inicie la aplicación. Para más información acerca de cómo realizar todas estas operaciones, consulte el apartado “Sistema informático (Computer System)”, situado en la página 94 (y siguientes) del manual del usuario de la aplicación que podrá encontrar en el Apéndice A del presente documento. EVALUACIÓN Y MODELADO DE SISTEMAS INFORMÁTICOS 24 3.2.- Evaluación del rendimiento La Ley de Amdahl permite cuantificar cómo mejorará el funcionamiento global de un sistema informático como consecuencia directa de la sustitución de algunos de sus componentes. Las mejoras que se obtendrán dependerán tanto del incremento en las prestaciones (velocidad o rendimiento) del elemento que sustituirá al ya existente como de la fracción de tiempo en la que se utilizará. Supongamos que disponemos inicialmente de un sistema que tarda un tiempo To en ejecutar una determinada tarea usando un determinado componente durante una fracción de tiempo f. Podemos definir los tiempos totales durante los que se está utilizando el componente (Ts) y durante los que no (Tn) de la siguiente manera: fTT os ×= ( )fTT on −×= 1 Ya que dichos tiempos forman dos subconjuntos totalmente disjuntos, cuya unión engloba la totalidad del tiempo de cómputo del sistema, éste último puede definirse como la suma de ambos. ( )( ) ( )fTfTTTT oosno ×+−×=+= 1 Supongamos que el componente seleccionado para realizar la sustitución mejora en k veces el funcionamiento del antiguo (es decir, tiene una aceleración relativa de valor k). El tiempo de cómputo introduciendo la mejora (Tm) modifica la expresión anterior sólo en la parte que corresponde a la fracción f que el componente se está utilizando. El resto del tiempo, la actividad del sistema no se verá afectada ya que en ella éste no aparece involucrado. ( ) k fTfTT o om × +−×= 1 El cociente entre el tiempo original (To) y el mejorado (Tm) resulta ser: ( ) k ffT T m o +− = 1 1 sT nT oT f f−1 EVALUACIÓN Y MODELADO DEL RENDIMIENTO - EVALUACIÓN DEL RENDIMIENTO 25 La expresión anterior es conocida como Ley de Amdahl y permite hallar la aceleración A del sistema tras haber sustituido uno de sus componentes (que intervenía durante una fracción f del tiempo total de cómputo) por uno nuevo que mejoraba k veces el funcionamiento del anterior. ( ) k ff A +− = 1 1 Dado que el componente no ocupa la totalidad del tiempo de cómputo, la aceleración máxima (Amax) del sistema será totalmente independiente de la aceleración relativa que el candidato a realizar la sustitución tenga. Por tanto, esta aceleración está dominada por la fracción de tiempo que se usa el componente. f AA k − == ∞→ 1 1limmax Por tanto existen dos casos especiales a mencionar en la Ley de Amdahl: Si el componente no se usa durante todo el tiempo de cómputo, la aceleración global que se obtiene en el sistema es siempre igual a la unidad, independientemente del factor de mejora del sustituto. Esto significa que el reemplazo del componente no interfiere de ningún modo en la mejora del sistema. ( ) 1001 10 = +− =⇒= k Af En cambio, si ocupa la totalidad del tiempo de ejecución, la aceleración del sistema tras introducir la optimización será igual al número de veces que el nuevo componente mejore al antiguo. ( ) k k Af = +− =⇒= 111 11 Podemos obtener también una generalización de la Ley de Amdahl para el caso en el que se deseen sustituir varios componentes de forma simultánea. Supongamos que tenemos n componentes diferentes, cada uno ejecutándose durante una fracción de tiempo fi. Según este planteamiento, podremos dividir el tiempo en un conjunto (Tn) durante el que no se ejecuta ninguno de los componentes candidatos y n conjuntos (Ts) más en los que se ejecuta alguno de ellos. EVALUACIÓN Y MODELADO DE SISTEMAS INFORMÁTICOS 26 nos ios os fTT fTT fTT n i ×= ×= ×= M M 11 ⎟ ⎠ ⎞ ⎜ ⎝ ⎛ −×= ∑ = n i ion fTT 1 1 Como todos estos subconjuntos son totalmente disjuntos y la unión de todos ellos representa la totalidad del tiempo de ejecución del sistema, podemos representar este último como la suma de todos ellos. ( ) ( ) ⎟ ⎠ ⎞ ⎜ ⎝ ⎛ ×+⎟⎟ ⎠ ⎞ ⎜⎜ ⎝ ⎛ ⎟ ⎠ ⎞ ⎜ ⎝ ⎛ −×= =×++×+⎟⎟ ⎠ ⎞ ⎜⎜ ⎝ ⎛ ⎟ ⎠ ⎞ ⎜ ⎝ ⎛ −×= =+++= ∑∑ ∑ == = n i io n i io noo n i io ssno fTfT fTfTfT TTTT n 11 1 1 1 1 1 K K Supongamos ahora que cada uno de los componentes que realizarán la sustitución mejora ki veces el funcionamiento de los que ya se encuentran integrados en el sistema. El tiempo (Tm) tras realizar los n reemplazos previstos será: ⎟⎟ ⎠ ⎞ ⎜⎜ ⎝ ⎛ ×+⎟⎟ ⎠ ⎞ ⎜⎜ ⎝ ⎛ ⎟ ⎠ ⎞ ⎜ ⎝ ⎛ −×= ∑∑ == n i i i o n i iom k fTfTT 11 1 El cociente entre el tiempo original (To) y el mejorado (Tm) es: ⎟⎟ ⎠ ⎞ ⎜⎜ ⎝ ⎛ +⎟ ⎠ ⎞ ⎜ ⎝ ⎛ − = ∑∑ == n i i i n i i m o k ff T T 11 1 1 La expresión anterior es una generalización de la Ley de Amdahl y permite hallar la aceleración A global del sistema tras realizar la sustitución de n componentes. Cada uno de ellos interviene durante una fracción fi del tiempo total y tendrá una aceleración relativa de valor ki. ∑ = − n i if 1 1 ∑ = n i if 1 2sT K nsT nT oT 1s T EVALUACIÓN Y MODELADO DEL RENDIMIENTO - EVALUACIÓN DEL RENDIMIENTO 27 ⎟⎟ ⎠ ⎞ ⎜⎜ ⎝ ⎛ +⎟ ⎠ ⎞ ⎜ ⎝ ⎛ − = ∑∑ == n i i i n i i k ff A 11 1 1 Nótese que, si el número de componentes a sustituir es sólo uno, la expresión generalizada coincide con la versión de la Ley de Amdahl enunciada en primer lugar. La Ley de Amdahl es sencilla de aplicar en la teoría. Sin embargo, la evolución temporal de la carga de cada uno de los componentes que forman un sistema informático hace que sea complejo utilizarla en la práctica. El porcentaje de utilización de cada elemento se modifica muy rápidamente, dependiendo de las necesidades de cómputo de cada sistema informático. Es muy difícil elegir un valor estático para la fracción de tiempo en la que se usa el componente y que es necesario en la aplicación de la Ley de Amdahl. Por todo ello es necesario utilizar una herramienta dinámica que le permita al usuario visualizar un rango de valores, seleccionando en cada momento los parámetros que considere más adecuados a la situación de interés. 3.2.1.- Prestaciones y coste Para comparar las prestaciones de un componente con respecto a otro de la misma categoría podemos establecer ciertos criterios que nos faciliten la labor. Por ejemplo: Un procesador ofrecería mejores prestaciones que otro si es capaz de ejecutar varias instrucciones a la vez, si puede simultanear cómputos de diferentes programas, si reduce el número de intercambios de información con el sistema de memoria… Un disco duro ofrecería mejores prestaciones que otro si proporciona una tasa de transferencia de información mayor, si replica información para evitar pérdidas de datos, si la capacidad de almacenamiento es mayor… Un sistema informático completo ofrecería mejores prestaciones que otro si reduce el tiempo de ejecución de los programas que se usan con mayor frecuencia, si la exactitud de los resultados de cómputo es alta, si proporciona una mejor respuesta en aplicaciones en tiempo real… Una vez elegidos los criterios y las unidades de medida que más nos interesan para cada una de las prestaciones relacionadas con una determinada categoría, podemos obtener una relación entre el rendimiento y el coste: Coste oRendimient/ =CR Esta relación permite obtener una magnitud numérica que facilite la comparación entre varios componentes de una misma familia con el fin de decidir cuál nos conviene más EVALUACIÓN Y MODELADO DE SISTEMAS INFORMÁTICOS 28 utilizar finalmente. Incluso también podremos conocer cuánto mejor es uno con respecto al otro hallando el cociente entre las respectivas relaciones rendimiento/coste. Una vez seleccionado un componente para formar parte en nuestro sistema informático es interesante también tener en cuenta los costes de integración que tendrá. Si pretendemos integrar un nuevo componente en el sistema, debemos tener en cuenta que el coste final del mismo aumentará según la siguiente relación: original Coste nuevo componente Costeoriginal Coste + =ΔC Sin embargo, si pretendemos sustituir un componente por uno nuevo, el coste final del mismo se modificará según la siguiente relación: original Coste anterior componente residual Coste-nuevo componente Costeoriginal Coste + =ΔC Dependiendo de cada caso será más adecuado utilizar una expresión u otra. Por ejemplo, si pensamos integrar en el sistema un componente que no existía o que dos de ellos simultaneen su trabajo, utilizaríamos la primera expresión. También es importante tener en cuenta si el sistema sólo es un diseño, una previsión o una simulación, o ya se han adquirido todos sus componentes. En el primer caso se puede utilizar indistintamente cualquiera de las dos expresiones. Sin embargo, en el segundo caso, tiene más sentido usar únicamente la primera. 3.2.2.- Ejemplo de cálculo Disponemos de un sistema compuesto por tres componentes. Hemos decidido sustituir uno de los tres pero no sabemos con cuál obtendremos los mejores resultados en el funcionamiento del sistema en genera. Usaremos la Ley de Amdahl para averiguarlo. Los datos de los componentes existentes y candidatos a realizar la sustitución son los siguientes: Para sustituir el procesador, que es usado el 50 % del tiempo, encontramos una alternativa que es 1,2 veces mejor. Para cambiar el disco duro, usado durante el 22 % del tiempo, disponemos de uno nuevo que es 2 veces mejor. Para reemplazar la memoria, usada durante el tiempo restante (28 %), localizamos una nueva que es 2,6 veces mejor. En un primer momento podemos suponer que el componente que deberíamos sustituir es el procesador ya que ocupa la mayor parte del tiempo de cómputo total, a pesar de que la alternativa encontrada no es la mejor de las disponibles. EVALUACIÓN Y MODELADO DEL RENDIMIENTO - EVALUACIÓN DEL RENDIMIENTO 29 Sin embargo, antes de precipitarnos, vamos a asegurar cuál de los tres componentes debería ser sustituido para obtener los mejores resultados. Para ello obtendremos la aceleración global del sistema para cada uno de ellos: ( ) ( ) 091,1 2,1 5,05,01 1 2,1 5,0 1 1 ≈ +− = ⎪ ⎪ ⎪ ⎪ ⎭ ⎪⎪ ⎪ ⎪ ⎬ ⎫ = = +− = p p p p p p p A k f k ff A ( ) ( ) 124,1 2 22,022,01 1 2 22,0 1 1 ≈ +− = ⎪ ⎪ ⎪ ⎪ ⎭ ⎪⎪ ⎪ ⎪ ⎬ ⎫ = = +− = dd dd dd dd dd dd dd A k f k ff A ( ) ( ) 208,1 6,2 28,028,01 1 6,2 28,0 1 1 ≈ +− = ⎪ ⎪ ⎪ ⎪ ⎭ ⎪⎪ ⎪ ⎪ ⎬ ⎫ = = +− = m m m m m m A k f k ff A Reuniendo todos los cálculos anteriores en una única tabla obtenemos las siguientes aceleraciones para cada componente: Componente Aceleración Procesador 1,091 Disco duro 1,124 Memoria 1,208 Según los resultados obtenidos el mejor candidato a realizar la sustitución sería la memoria. Realizando este cambio el sistema mejoraría un 20,8 % aproximadamente. Si nos hubiésemos precipitado y hubiéramos escogido el procesador, el sistema sólo habría mejorado en un 9,1 %. Según los datos iniciales, sería el peor cambio que podríamos realizar. EVALUACIÓN Y MODELADO DE SISTEMAS INFORMÁTICOS 30 Supongamos ahora que tenemos presupuesto para sustituir dos de los componentes del sistema y queremos saber cuáles deberíamos elegir y qué beneficio global obtendríamos. Para responder a ambas preguntas podemos recurrir a la versión generalizada de la Ley de Amdahl. En definitiva, queremos averiguar con qué dos componentes obtendremos mejores. Para ello, los factores de mejora indicados con anterioridad, se emparejarán dos a dos y usaremos la unidad para indicar que el otro componente no sufre cambios. Los resultados, para cada una de las tres combinaciones posibles, son: { } { } 239,1 1 28,0 2 22,0 2,1 5,0 1 128,0 222,0 2,15,0 1 1 , ,,,, , ≈ ++ = ⎪ ⎪ ⎪ ⎪ ⎭ ⎪⎪ ⎪ ⎪ ⎬ ⎫ == == == ⎟⎟ ⎠ ⎞ ⎜⎜ ⎝ ⎛ −+⎟⎟ ⎠ ⎞ ⎜⎜ ⎝ ⎛ = ∑∑ ∈∈ ddp mm dddd pp mddpi i mddpi i i ddp A kf kf kf f k f A { } { } 343,1 6,2 28,0 1 22,0 2,1 5,0 1 6,228,0 122,0 2,15,0 1 1 , ,,,, , ≈ ++ = ⎪ ⎪ ⎪ ⎪ ⎭ ⎪⎪ ⎪ ⎪ ⎬ ⎫ == == == ⎟⎟ ⎠ ⎞ ⎜⎜ ⎝ ⎛ −+⎟⎟ ⎠ ⎞ ⎜⎜ ⎝ ⎛ = ∑∑ ∈∈ mp mm dddd pp mddpi i mddpi i i mp A kf kf kf f k f A { } { } 393,1 6,2 28,0 2 22,0 1 5,0 1 6,228,0 222,0 15,0 1 1 , ,,,, , ≈ ++ = ⎪ ⎪ ⎪ ⎪ ⎭ ⎪⎪ ⎪ ⎪ ⎬ ⎫ == == == ⎟⎟ ⎠ ⎞ ⎜⎜ ⎝ ⎛ −+⎟⎟ ⎠ ⎞ ⎜⎜ ⎝ ⎛ = ∑∑ ∈∈ mdd mm dddd pp mddpi i mddpi i i mdd A kf kf kf f k f A De una forma más compacta, las aceleraciones obtenidas sustituyendo los componentes del sistemas dos a dos son: Pareja de componentes Aceleración Procesador – Disco duro 1,239 Procesador - Memoria 1,343 Disco duro - Memoria 1,393 EVALUACIÓN Y MODELADO DEL RENDIMIENTO - EVALUACIÓN DEL RENDIMIENTO 31 Como puede comprobarse la mejor opción posible sería sustituir el disco duro y la memoria si pudiésemos cambiar dos de los componentes, obteniendo una mejora del 39,3 % en el funcionamiento global del sistema. Estos resultados eran de esperar ya que ambas sustituciones son las que ofrecen mejores resultados si las realizásemos por separado. Finalmente, usando también la generalización de la Ley de Amdahl, podemos saber cuánto mejoraría el sistema realizando la sustitución de los tres componentes. { } { } 576,1 6,2 28,0 2 22,0 2,1 5,0 1 6,228,0 222,0 2,15,0 1 1 ,, ,,,, ,, ≈ ++ = ⎪ ⎪ ⎪ ⎪ ⎭ ⎪⎪ ⎪ ⎪ ⎬ ⎫ == == == ⎟⎟ ⎠ ⎞ ⎜⎜ ⎝ ⎛ −+⎟⎟ ⎠ ⎞ ⎜⎜ ⎝ ⎛ = ∑∑ ∈∈ mddp mm dddd pp mddpi i mddpi i i mddp A kf kf kf f k f A Como puede comprobarse, usando los tres candidatos encontrados para realizar la sustitución en vez de los componentes originales, el sistema mejoraría un 57,6 % el funcionamiento global. Imaginemos ahora que vamos a comparar las prestaciones y el coste entre el procesador que ya hemos integrado en nuestro sistema y otro procesador nuevo. Supondremos como criterio de comparación el tiempo que tarda en ejecutar un determinado programa de prueba. Como un procesador será mejor que otro si tarda menos en ejecutar dicho programa, utilizaremos la inversa del tiempo que se emplea para obtener una magnitud que realmente represente lo que queremos. Si usásemos simplemente el tiempo de ejecución, estaríamos indicando que un procesador es mejor que otro si tarda más, algo que no es cierto realmente. Realizando varias pruebas, observamos que nuestro procesador tarda una media de 4,5 segundos en ejecutar el programa y recordamos que nos costó 80 €. Por tanto: 310777,2 80 5,4 1 / 80 5,4 1 −×≈= ⎪⎭ ⎪ ⎬ ⎫ = = ee e e CR C R Hemos encontrado otra alternativa para realizar la sustitución que ejecuta el mismo programa de prueba en 6,5 segundos y que cuesta sólo 60 €. De aquí obtenemos que: 310564,2 60 5,6 1 / 60 5,6 1 −×≈= ⎪⎭ ⎪ ⎬ ⎫ = = nn n n CR C R Ya tenemos una magnitud que nos permite comparar ambos componentes, teniendo en cuenta los costes y las prestaciones de ambos. Como puede observarse en los resultados, el primer procesador ofrece una mejor relación rendimiento/coste que el segundo. EVALUACIÓN Y MODELADO DE SISTEMAS INFORMÁTICOS 32 El cociente entre ambas relaciones nos dará una idea de cuánto mejor es el componente que ya tenemos integrado en el sistema con respecto al otro. 083,1 10564,2 10777,2 / / 3 3 ≈ × × ≈ − − nn ee CR CR En este caso, la relación rendimiento/coste del componente existente es aproximadamente un 8,3 % mejor que la otra alternativa que hemos encontrado. Podemos calcular de forma muy sencilla también cuál es la relación entre las prestaciones de ambos componentes, dejando de lado los costes. 444,1 5,6 1 5,4 1 ≈= n e R R Como puede observarse, el procesador ya integrado en el sistema es un 44,4 % mejor que la otra alternativa. Imaginemos que decidimos integrar ambos componentes en el sistema informático. Nos interesa calcular ahora cuál es el incremento en el coste sabiendo que éste nos supuso un desembolso de 170 € en su momento. 352,1 170 60170 original Coste nuevo componente Costeoriginal Coste ≈ + = = + =ΔC Ampliando nuestro sistema con ambos procesadores obtendríamos una nueva máquina que costaría un 35,2 % más que la original. Supongamos ahora que queremos sustituir el procesador que ya tenemos por la nueva alternativa encontrada. El incremento en el coste del sistema, por tanto, sería: 882,0 170 8060170 original Coste anterior componente residual Coste-nuevo componente Costeoriginal Coste ≈ −+ = = + =ΔC En este caso, el sistema costaría un 11,7 % menos de lo que se planeó inicialmente. 3.2.3.- Ley de Amdahl, prestaciones y coste en EMSI En EMSI disponemos de una interfaz completa que permite realizar todos estos cálculos de forma automática y obtener gráficos e informes descriptivos para evaluar el rendimiento del sistema global y de los componentes que lo forman de manera individual. EVALUACIÓN Y MODELADO DEL RENDIMIENTO - EVALUACIÓN DEL RENDIMIENTO 33 La pestaña de la aplicación dedicada a la evaluación del rendimiento es “Performance Evaluation” y en ella el usuario podrá: Obtener los resultados de la generalización de la Ley de Amdahl para el sistema global, indicando para cada uno de sus componentes la fracción de tiempo que se usa y el factor de mejora de la alternativa candidata a realizar la sustitución. Obtener los resultados de la Ley de Amdahl para uno o varios componentes, simultáneamente, utilizando un rango predefinido para las aceleraciones relativas de los candidatos. También podrá personalizar el rango que más le convenga para dichos resultados. Obtener informes de rendimiento/coste. En ellos se realizará el análisis de un componente ya integrado en el sistema y de un posible sustituto, obteniendo los resultados de comparar las prestaciones de ambos y los costes de integración del nuevo candidato en el sistema. Para más información acerca de cómo realizar todas estas operaciones, consulte el apartado “Evaluación del rendimiento (Performance Evaluation)”, situado en la página 119 (y siguientes) del manual del usuario de la aplicación que podrá encontrar en el Apéndice A del presente documento. EVALUACIÓN Y MODELADO DE SISTEMAS INFORMÁTICOS 34 3.3.- Fiabilidad del sistema y de sus componentes La evaluación del rendimiento de sistemas informáticos depende en gran medida de los resultados que se pueden extraer del análisis estadístico de los datos obtenidos tras la monitorización de sistemas. Por ello, debemos estudiar con detenimiento el modelo del sistema. Uno de los modelos de mayor interés es el modelo de tiempo hasta el fallo de un componente o de un sistema en general. Una vez diseñado el modelo de probabilidades adecuado para el tiempo hasta el fallo, podremos estimar sus parámetros y utilizar el modelo para predecir la vida media y establecer programas de sustitución o de aprovisionamiento de componentes. Se define fiabilidad de un sistema o componente como la probabilidad de que ese sistema funcione o desarrolle una cierta función, bajo condiciones fijadas y durante un período de tiempo determinado. En la industria, sobre todo en la informática, los equipos y los sistemas crecen en complejidad y cada fabricante intenta llegar al objetivo de calidad exigido por el mercado con los costes mínimos posibles. Por tanto, desde un punto de vista puramente económico, es deseable una alta fiabilidad para reducir los costes finales del producto. Desde las primeras etapas del diseño, existe la necesidad de entregar equipos o sistemas que tengan las prestaciones deseadas por el cliente y que además sean fiables, de fácil mantenimiento y con funcionamiento seguro y económico durante todo el tiempo de vida útil. En términos probabilísticos, se define la variable aleatoria T como el tiempo de funcionamiento de un componente, dispositivo o sistema hasta fallo. Esta variable resulta ser siempre continua y no negativa ya que hace referencia a un tiempo, magnitud que no puede tomar nunca valores discretos o inferiores a cero. La función de distribución de probabilidad de esta variable recibe el nombre de función de infiabilidad y se corresponde con las distribuciones que se usan en estadística básica para estimar valores temporales. ( ) 0,)( ≥∀≤= ttTptF Las propiedades habituales de las funciones de distribución nos permiten hacer predicciones o aproximaciones interesantes: conocida ( )tF para cada 0≥t se puede afirmar que el ( )( )%100 tF× de estos sistemas tendrán una duración no superior a t. Además, teniendo en cuenta que ( ) ( ) ( ) baaFbFbTap <∀−=≤< , Se puede afirmar que el ( ) ( )( )( )%100 aFbF −× de los sistemas tendrá una duración comprendida en el intervalo ( )ba , . EVALUACIÓN Y MODELADO DEL RENDIMIENTO - FIABILIDAD DEL SISTEMA Y DE SUS COMPONENTES 35 La función complementaria de la función de distribución anterior juega un papel esencial en fiabilidad, como veremos a continuación. Llamamos función de fiabilidad de la variable aleatoria T, o tiempo hasta fallo, a la siguiente función: ( ) 0,)(1)( ≥∀−=>= ttFtTptR Conocida la función de fiabilidad de un determinado sistema o componente, se puede afirmar, para cada 0≥t , que el ( )( )%100 tR× de ese tipo de sistemas o componentes tendrá una duración superior a t y que el ( ) ( )( )( )%100 bRaR −× de los sistemas o componentes tendrá una duración en el intervalo ( )ba , . Como ya se ha comentado anteriormente, cada componente tendrá asociado una distribución probabilística que permitirá calcular su fiabilidad, prestando especial interés a las distribuciones conocidas y ya ampliamente probadas por estos modelos. Las más utilizadas son: Distribución exponencial: )(λExpT ≡ ( ) 0,1 ≥∀−= − tetF tλ Distribución gamma: ),( λαGT ≡ ( ) ( ) 0, 1 ≥∀ Γ = − − ttetF t