Sobre el Libro
Sistemas Tolerantes a Fallas (Fault-Tolerant Systems, 2nd Edition) es un libro de 416 páginas, escrito en inglés por Israel Koren y C. Mani Krishna. Fue publicado por la editorial Morgan Kaufmann en el año 2020 en su segunda edición.
Descripción del Libro
(Información extraída y traducida del sitio web del libro en Amazon)
Sistemas tolerantes a fallas, segunda edición, es el primer libro sobre diseño de tolerancia a fallas que utiliza un enfoque de sistemas tanto para hardware como para software. Ningún otro texto adopta este enfoque ni ofrece el tratamiento completo y actualizado que brindan Koren y Krishna. El libro cubre exhaustivamente el diseño de hardware y software tolerantes a fallas, el uso de técnicas de tolerancia a fallas para mejorar los rendimientos de fabricación y el diseño y análisis de redes. Al incorporar estudios de casos que destacan más de diez sistemas informáticos diferentes con técnicas de tolerancia a fallas implementadas en su diseño, el libro incluye material crítico sobre métodos para proteger contra amenazas a los subsistemas de cifrado utilizados con fines de seguridad.
El contenido actualizado del texto ayudará a los estudiantes y profesionales de ingeniería eléctrica e informática y ciencias de la computación a aprender cómo diseñar sistemas informáticos confiables y cómo analizar sistemas informáticos tolerantes a fallas.
- Entrega el primer libro sobre diseño de tolerancia a fallas con un enfoque de sistemas
- Ofrece una cobertura completa de tolerancia a fallas de hardware y software, así como redundancia de información y tiempo.
- Incluye contenido completamente actualizado y nuevos capítulos sobre mecanismos de falla y tolerancia a fallas en sistemas ciberfísicos.
- Proporciona un paquete complementario completo, que incluye un manual de soluciones en línea para instructores y diapositivas de PowerPoint.
Sobre los autores
(Información extraída y traducida del sitio web del libro en Amazon)
Israel Koren es profesor emérito de ingeniería eléctrica e informática en la Universidad de Massachusetts, Amherst. Previamente ocupó cargos en el Technion — Instituto de Tecnología de Israel, Haifa, la Universidad de California en Berkeley, la Universidad del Sur de California, Los Ángeles y la Universidad de California, Santa Bárbara. Ha sido consultor de varias empresas, incluidas Analog Devices, AMD, Digital Equipment Corp., IBM, Intel y National Semiconductors. Sus intereses de investigación incluyen Computación tolerante a fallas, sistemas ciberfísicos, arquitectura de computadoras, aritmética de computadoras y sistemas criptográficos seguros. Tiene más de 300 publicaciones en revistas y conferencias arbitradas y se desempeñó como presidente general, presidente del comité de programa y miembro del comité de programa para numerosas conferencias.
C. Mani Krishna es profesor de ingeniería eléctrica e informática en la Universidad de Massachusetts, Amherst. Recibió su doctorado en Ingeniería Eléctrica de la Universidad de Michigan en 1984. Anteriormente recibió un BTech en Ingeniería Eléctrica del Instituto Indio de Tecnología, Delhi, en 1979, y una maestría del Instituto Politécnico Rensselaer en Troy, Nueva York, en 1980 Los intereses de investigación del Dr. Krishna se encuentran en las áreas de sistemas ciberfísicos, computación en tiempo real y tolerante a fallas, y sistemas distribuidos y en red. También ha sido editor de volúmenes de lecturas en evaluación de desempeño y sistemas en tiempo real, y para temas especiales sobre sistemas en tiempo real de IEEE Computer y Proceedings of the IEEE.
Tabla de Contenido
(Información extraída y traducida del sitio web del libro en Amazon)
- Preliminares.
- Tolerancia a fallas de hardware.
- Redundancia de información.
- Redes tolerantes a fallas.
- Tolerancia a fallas de software.
- Puntos de control.
- Sistemas ciberfísicos.
- Estudios de caso.
- Técnicas de simulación.
- Tolerancia a defectos en circuitos VLSI.
- Detección de fallas en sistemas criptográficos.
Clasificación de Fallas
(Información extraída y traducida del sitio web del libro en Amazon)
Las fallas se pueden clasificar en múltiples dimensiones. Algunas dimensiones importantes son: su duración, cuándo fueron introducidas, si hubo o no una intención consciente detrás de su introducción, y si ocurrieron en hardware o en software. Examinemos cada una de estas dimensiones una a una.
Duración: la duración es una dimensión de clasificación importante para las fallas de hardware. Estos se pueden clasificar en permanentes, transitorios o intermitentes. Una falla permanente es solo eso; refleja un componente que está fuera de servicio permanentemente. Como ejemplo de falla permanente. piense en una bombilla fundida. Una falla transitoria es aquella que hace que un componente funcione mal durante algún tiempo: desaparece después de ese tiempo y la funcionalidad del componente se restablece por completo. Como ejemplo, piense en una interferencia de ruido aleatorio durante una conversación telefónica. Otro ejemplo es una celda de memoria con contenido que se modifica de forma falsa debido a alguna interferencia electromagnética. La celda en sí no está dañada; es solo que su contenido es incorrecto por el momento, y sobrescribir la celda de memoria hará que la falla desaparezca. Una falla intermitente nunca desaparece por completo; oscila entre inactivo y activo. Cuando la falla está inactiva, el componente funciona normalmente; cuando la falla está activa, el componente funciona mal. Un ejemplo de falla intermitente es una conexión eléctrica suelta.
Cuándo se introdujeron: Los fallos se pueden introducir en varias fases de la vida útil del sistema. Las decisiones de diseño erróneas provocan la introducción de fallos en la fase de diseño. Pueden nacer durante la implementación del sistema (por ejemplo, desarrollo de software). Pueden ocurrir durante el funcionamiento del sistema debido a la degradación del hardware, actualizaciones de software defectuosas o entornos hostiles (por ejemplo, debido a altos niveles de radiación o temperaturas excesivas).
Intención: las fallas pueden ser intencionales o no intencionales. La mayoría de los errores de software son errores no intencionales. Por ejemplo, considere la instrucción de Fortran doi = 1.35 cuando el programador pretendía teclear do i = 1,35. El programador estaba intentando crear un bucle; lo que vio el sistema fue una instrucción para asignar el valor de 1,35 a la variable doi.
Pueden ser intencionales: las decisiones de diseño tomadas conscientemente pueden conducir a fallas en el diseño del sistema. Tales fallas se pueden subdividir aún más en nennalicions y categorías maliciosas. Las fallas de diseño no malignas se introducen con la mejor de las intenciones; a menudo debido a efectos secundarios (a menudo en la forma en que interactúan varios módulos del sistema) que no se previeron en el momento del diseño, o porque el entorno operativo no se entendió perfectamente. Las fallas maliciosas se introducen con intenciones maliciosas: por ejemplo, un programador puede insertar deliberadamente un punto débil en el software que permite el acceso no autorizado a alguna estructura de datos. También incluimos en esta subcategoría las fallas. que pueden no haber sido introducidos deliberadamente, pero que se comportan como si fueran el producto de una intención nefasta. Por ejemplo. un componente puede fallar de tal manera que “actúa como si fuera malicioso” y envía salidas con valores diferentes a diferentes receptores. Piense en un sensor de altitud en un avión que informa una altitud de 1000 pies a una unidad, mientras que informa una altitud de 8000 pies a otra unidad. Las fallas maliciosas también se conocen como fallas bizantinas.