ebook img

Herramientas del sistema para la detección de errores de hardware PDF

261 Pages·2009·2.49 MB·Spanish
by  
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Herramientas del sistema para la detección de errores de hardware

Instituto de Computaci(cid:243)n Facultad de Ingenier(cid:237)a Universidad de la Repœblica Proyecto de Grado Herramientas del sistema operativo para combatir el Software Aging Daniel G. Pedraja, Fabricio S. GonzÆlez, Agustin Van Rompaey Tesis 14 de Diciembre de 2009 Montevideo - Uruguay Tribunal: Tutores: Gerardo Ares AndrØs Aguirre HØctor Cancela Ariel Sabiguero Jorge Merlino Resumen. El hardware falla, no podemos hacer nada al respecto. Diferentes causashacenquelosprogramasydatosquenosotrosalmacenamosenmedios digitales no sean estÆticos y se degraden con el paso del tiempo. Esto ocurre tantoenlosmediosdealmacenamiento,comoenloscomponenteselectr(cid:243)nicos delsistema.Estasmodi(cid:28)cacionespuedenocasionarseporfallosenelhardware (corrupci(cid:243)ndememoria),fallosenelsoftware(unbu(cid:27)erover(cid:29)owqueescribe enunÆreadememoriaquenoseespera)uotrosmotivos.Elresultadoesque, laimagenquetenemosdelsoftwareenmemoriaylaimagenoriginalendisco di(cid:28)eren.Aesteefectoseloconocecomosoftwareaging. Enestetrabajosepresentaunaherramientaaniveldelsistemaoperativo que permite mitigar los efectos del software aging causado por errores de hardwareenlamemoriaprincipaldelsistemaysuprototipaci(cid:243)nenelsistema operativoLinux.SepresentaademÆs,unconjuntodeexperimentosyanÆlisis de resultados, que justi(cid:28)can el grado de cubrimiento de errores que logra la herramienta, su aceptable efecto en la performance general del sistema, la efectividad comparativa de algunas de las estrategias que utiliza y el efecto delaincorporaci(cid:243)ndelasmismasenunambienteconrequerimientosdealta disponibilidad. Palabras clave: Envejecimiento de Software, Errores Temporales, Rejuvenecimiento, SistemasOperativos,kernelLinux,Administraci(cid:243)ndememoria Keywords: Software Aging, Soft Errors, Rejuvenation, Operative Systems, Linux kernel,MemoryManagement ˝ndice general ˝ndice de (cid:28)guras 7 Cap(cid:237)tulo 1. Introducci(cid:243)n 9 1.1. Motivaci(cid:243)n 10 1.2. Objetivos 12 1.3. Pœblico objetivo 16 Cap(cid:237)tulo 2. Estado del arte 17 2.1. Relevamiento objetivo 17 2.2. TØcnicas de rejuvenecimiento 23 2.3. Soluciones al envejecimiento 24 2.4. Investigaci(cid:243)n del Manejo de memoria en Linux 25 Cap(cid:237)tulo 3. Prototipo 45 3.1. Motivaci(cid:243)n 46 3.2. Objetivos Iniciales 47 3.3. Selecci(cid:243)n de plataforma y herramientas 47 3.4. Revisi(cid:243)n de Objetivos 50 3.5. Especi(cid:28)caci(cid:243)n Funcional 50 3.6. Arquitectura 53 3.7. Diseæo 56 3.8. Implementaci(cid:243)n 84 3.9. Veri(cid:28)caci(cid:243)n 97 3.10. Pruebas de performance 103 3.11. Proceso de Desarrollo 109 Cap(cid:237)tulo 4. Resultados 117 4.1. Frames de s(cid:243)lo lectura 117 4.2. Bœsqueda de soft errors 120 4.3. Retraso de detecci(cid:243)n 122 4.4. Efecto en la disponibilidad 123 Cap(cid:237)tulo 5. Conclusiones y Trabajo a futuro 125 5.1. Conclusiones 125 5.2. Trabajo a futuro 127 Bibliograf(cid:237)a 129 ApØndice A. Glosario 131 ApØndice B. Manual de usuario 135 5 6 ˝ndice general B.1. Modos de Funcionamiento 135 B.2. Registro de Procesos 136 B.3. Archivos de Estad(cid:237)sticas 138 ApØndice C. Porcentaje de frames de solo lectura 141 ApØndice D. Agente Inyector 153 ApØndice E. CosmicRayn 155 ApØndice F. C(cid:243)digo para pruebas de inyecci(cid:243)n 157 F.1. Inyector 157 F.2. Hola Mundo 157 F.3. Increment 158 F.4. Function 158 ApØndice G. Salidas de las pruebas de performance 161 G.1. Pruebas de performance AB 161 G.2. Pruebas de performance POV-Ray Benchmark 177 G.3. Pruebas de performance POV-Ray O(cid:30)ce 218 ˝ndice de (cid:28)guras 1. Clasi(cid:28)caci(cid:243)n de errores y acciones correctivas 19 2. Modelo de Paginaci(cid:243)n de x86 27 3. Modelo de Paginaci(cid:243)n de Linux 28 4. Mapa de la memoria f(cid:237)sica en el Linux kernel 29 5. Zoned Page Frame Allocator 32 6. Espacio de memoria virtual de un proceso 36 7. Representaci(cid:243)n del Espacio de Memoria 38 8. Diagrama de Arquitectura 54 9. Complemento de struct page 58 10. Maquina de estados de un frame 59 11. Diseæo de mØtodos de bœsqueda 72 12. Diseæo de procesamiento de Errores 80 13. Inyecci(cid:243)n en una constante 100 14. Inyecci(cid:243)n en una funci(cid:243)n 100 15. Inyecci(cid:243)n en una llamada 101 16. Tiempo total de los tests 105 17. Tiempo por pedido 106 18. Pedidos por segundo 107 19. Tiempo para estar en el 80% mÆs rapido 108 20. Tiempo de Parseo 109 21. Tiempo de etapa Photon 110 22. Tiempo de Render 111 23. Tiempo total 112 24. Tiempo de parseo 113 25. Tiempo de render 114 26. Tiempo total 115 27. Cronograma Efectivo 116 28. Porcentaje de frames read-only por proceso antes de la prueba 119 29. Porcentaje de frames read-only durante la pruba 120 7 Cap(cid:237)tulo 1 Introducci(cid:243)n El envejecimiento de software, o "software aging" es un fen(cid:243)meno que œlti- mamente ha empezado a cobrar importancia, siendo objetivo de varios estudios e investigaciones. Consiste en la degradaci(cid:243)n con el tiempo del estado de un proceso o de su ambiente. Esta degradaci(cid:243)n se debe a la acumulaci(cid:243)n de errores durante la ejecuci(cid:243)n de un programa lo que eventualmente afecta a su performance o provoca quefalle.ComoseverÆenlasecci(cid:243)n2.1estoserrorespuedentenerdiversosor(cid:237)genes dentro de las distintas capas de software y hardware que componen un sistema de c(cid:243)mputoyllevaneventualmentealadegradaci(cid:243)nenlaperformancedelsoftware,o incluso a una falla total. En la secci(cid:243)n 2.1.1 se ubica dichos errores en una taxono- m(cid:237)a de acuerdo al tipo de fallas que causan, identi(cid:28)cÆndose como causa de mayor interØs para el proyecto la ocurrencia de errores de hardware conocidos como (cid:16)soft errors(cid:17).Paraevitarestasfallas,sehanbuscadosolucionesalproblemaaqu(cid:237)tratado. Como se verÆ en las secci(cid:243)n 2.1 las mÆs utilizadas son variaciones de una tØcnica pro-activa,llamadarejuvenecimientodesoftware,o"softwarerejuvenation",lacual consisteendetenerlaejecuci(cid:243)ndelsoftware,limpiarsuestadointernoosuambien- tedeejecuci(cid:243)n,y(cid:28)nalmentevolverainiciarlaejecuci(cid:243)n.Existendistintosenfoques sobre cuÆndo y c(cid:243)mo se debe aplicar el rejuvenecimiento, ver secci(cid:243)n 2.2. Mientras algunos se basan en predicciones de acuerdo a estad(cid:237)sticas del sistema como puede ser el consumo de recursos, otros apuestan a la redundancia de nodos para poder ejecutar rejuvenecimiento individual y transparente de los mismos, ante la eviden- cia de fallas. Se puede encontrar en el mercado algunas soluciones de software que toman en cuenta el problema de software aging, e intentan atacarlo. En la secci(cid:243)n 2.3 se presenta un relevamiento de las mismas. Como se verÆ incluyen servidores web, suites de herramientas, e incluso sistemas operativos. La mayor(cid:237)a de estas herramientas solucionan el envejecimiento causado por el agotamiento de recursos. Existen casos en que se intenta mitigar la ocurrencia de errores en Æreas particu- lares de la memoria, pero esto se hace por razones de seguridad, para solucionar vulnerabilidades del kernel ante ataques y no errores del hardware. El presente trabajo se enfoca en el estudio de tØcnicas nuevas o existentes para mitigarlosefectosdelsoftwareaging.DentrodeunÆreatanextensa,secentrarÆla atenci(cid:243)nenelenvejecimientoprovocadoporlaocurrenciadeerroresenelhardware, en particular, en el que constituye la memoria principal de un sistema de c(cid:243)mputo moderno. Existen diversos factores que pueden provocar cambios en los bits alma- cenadosenlasplacasquecomponendichamemoria,comopuedenserlaemisi(cid:243)nde part(cid:237)culas alfa, los rayos c(cid:243)smicos o la interferencia electromagnØtica. Se verÆ estos y otros factores en detalle en la secci(cid:243)n 2.1.1, pero por ahora basta con mencionar que la frecuencia con que ocurren estos errores bajo ciertas condiciones como la al- turasobreelniveldelmarolaproximidadcondispositivoselectr(cid:243)nicos,noespara nadadespreciable,llegandoaprovocarefectosobservablesenlaperformancedeun 9 10 1.INTRODUCCI(cid:211)N sistemadecomputo.Secuanti(cid:28)carÆmÆsclaramentelavariaci(cid:243)ndelafrecuenciade aparici(cid:243)n de errores en la memoria en la secci(cid:243)n 2.1.1 y en contraparte se mostrara en la secci(cid:243)n 4.2 en base a experimentos, estudios y datos de fabricantes, la baja tasa de los mismos cuando no se presenta ninguna de las condiciones mencionadas. El principal objetivo planteado para el proyecto fue llevar las tØcnicas para combatir el envejecimiento y en particular los soft errors, al contexto de los ser- vicios brindados por el sistema operativo, de(cid:28)niendo y prototipando herramientas estÆndar para detectar la ocurrencia de los errores mencionados y tomar acciones para contrarrestar sus efectos en los procesos del espacio de usuarios. La secci(cid:243)n 1.2 detallarÆ los objetivos y el alcance planteados, trazando esto en los productos o aportes del proyecto que determinan su cumplimiento. All(cid:237) se harÆ tambiØn una introducci(cid:243)n a dichos productos, los cuales se verÆn con mayor profundidad a lo largo de los cap(cid:237)tulos 2, 3 y 4. UnadelasmotivacionesmÆsgrandesdelproyectofueadentrarseenunÆrea,la del envejecimiento de software, la cual es relativamente joven y cuenta todav(cid:237)a con mucho campo para explorar. Particularmente, fueron muy pocos los antecedentes a nivel de sistemas operativos que se pudieron encontrar sobre el tratamiento del tema. Se dedicarÆ la primer secci(cid:243)n de este cap(cid:237)tulo a explicar la motivaci(cid:243)n de este proyecto y de la elecci(cid:243)n del prototipo realizado. Desde un principio se pens(cid:243) en Linux como el sistema operativo ideal para el desarrollo de las herramientas planteadas. Esto es debido a cuatro razones fundamentales. La primera es que el mismo es open source, lo que facilita la investigaci(cid:243)n y modi(cid:28)caci(cid:243)n de su c(cid:243)digo, necesidades fundamentales para el proyecto. La segunda es la gran comunidad que hay detrÆs del mismo, la cual es un importante soporte en un desarrollo de este tipo.Laterceraessucalidaddesistemamultiplataforma,locualampl(cid:237)aelespectro de aplicaci(cid:243)n del producto desarrollado, en especial en el universo de los sistemas embebidos donde se encuentran distintas arquitecturas y Linux es cada vez mÆs utilizado. Finalmente, la cuarta raz(cid:243)n es la experiencia previa de los autores como usuarios del sistema e incluso haciendo pequeæas modi(cid:28)caciones a su nœcleo con (cid:28)nesacadØmicos.LaposibilidaddetrabajarconelkerneldeLinuximplic(cid:243)unamo- tivaci(cid:243)n extra, pero tambiØn un reto muy importante que se centr(cid:243) en comprender su funcionamiento y en particular el de su subsistema de administraci(cid:243)n de la me- moria, el Memory Manager (MM), a tal nivel que permitiera realizar importantes modi(cid:28)cacionesalnœcleodelsistemaoperativo,sinperderlaestabilidadoriginal.Se dedicarÆ la secci(cid:243)n 2.4 a dar un resumen introductorio al funcionamiento del MM que sirva como contexto para el prototipo desarrollado. La tarea de investigaci(cid:243)n de Linux fue muy exigente y demand(cid:243) mÆs tiempo del esperado, manteniendo con- tinuidadhastalasœltimasetapasdelproyecto.Afortunadamente,alcabodeunaæo y medio de haber comenzado, se pudo completar el alcance que se deseaba para redondear el mismo. No obstante todav(cid:237)a queda mucho trabajo a futuro para con- tinuarlohechoyseguiradentrÆndoseenestaÆrea.SededicarÆelcap(cid:237)tulo5deeste documento a presentar las conclusiones (cid:28)nales del proyecto y algunas propuestas para la continuaci(cid:243)n del mismo. 1.1. Motivaci(cid:243)n Como se dijo, tal vez la mayor motivaci(cid:243)n para la selecci(cid:243)n del proyecto fue la posibilidad de hacer una contribuci(cid:243)n a un Ærea relativamente joven c(cid:243)mo la del software aging. La problemÆtica que la misma trata resulta de gran interØs ya que

Description:
sea basado en el Linux kernel debido, entre otras cosas, a la evolución en soporte para tiempo real que este ha .. "salud" del sistema para determinar si es necesario aplicar el rejuvenecimiento. En este escenario, el sistema es [12] Daniel P. Bovet, Marco Cesati. - Understanding the Linux Kernel
See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.