El examen consistirá en ejercicios tipo Multiple Choice y falso/Verdadero Los horarios de consulta en época de exámenes: viernes 10 hs. y lunes 8 hs. Embedded Systems and Real-Time Programming (Niklaus Wirth, 2001) 1.-Indique los grados de dificultad en la programación 2.-Indique y explique desafíos y dificultades que presentan los sistemas embebidos 3.-Indique y explique los medios propuestos por el autor para manejar la complejidad de la programación de sistemas embebidos 4.-Explique (puede realizar algún diagrama en bloques) el ejemplo que utiliza el autor para mostrar cómo se puede reducir la complejidad mencionada en el ítem anterior 5.-Explique las decisiones realizadas por el autor para simplificar el diseño 6.-Explique las conclusiones y reglas generales que postula el autor a partir de dicho ejemplo. Cyber-Physical Systems -Are Computing Foundations Adequate? (Edward A. Lee, 2006) 1.-Defina sistemas embebidos y ciberfísicos (CPS), según el autor 2.-Indique aplicaciones actuales y futuras de los CPS, según el autor 3.-Indique algunas de las tecnologías informáticas y de comunicaciones (las abstracciones principales) que, según el autor, impiden actualmente el progreso hacia las aplicaciones futuras indicadas en el ítem anterior. 4.-Indique diferencias entre el software para sistemas embebidos de cualquier otro tipo de software y cómo se resuelve hoy día el problema del “software embebido”. Mencione además en donde se han centrado hasta ahora los retos en el diseño de sistemas embebidos. 5.-Explique qué desafíos tecnológicos impondrá el conectar en redes a los sistemas embebidos 6.-Liste y explique las líneas de investigación y tecnologías que el autor considera prometedoras para la construcción de los CPS Nota: el autor deja planteado muchos interrogantes, puede incluir algunos de ellos. Busque en Internet (por ej. Wikipedia) los conceptos que use el artículo y no sepa que signifiquen. Las preguntas no siguen un orden determinado, deben acomodar la presentación de tal forma de seguir un orden acorde al artículo Misconceptions About Real-Time Computing (John A. Stankovic, 1988) 1.-Indique los 3 principales objetivos del artículo 2.-Defina sistemas informáticos de tiempo real según el autor 3.-Cite ejemplos de dichos sistemas (actuales y futuras según preveía el autor/áreas que impulsarían estas aplicaciones futuras/técnicas actuales que impiden los requerimientos de estas aplicaciones futuras) 4.-En cuanto a la primera idea falsa acerca de estos sistemas: explique brevemente de dónde surge y cite contraejemplos (o investigaciones que comenzaban a perfilarse en el tiempo en que se escribió el artículo, al respecto) 5.-En cuanto a la segunda idea falsa: explique (según el autor) porque la considera errada 6.-En cuanto a la tercera idea falsa: explique objetivo de la computación rápida y de aquélla de tiempo real, indique factores que determinan la predictibilidad de un sistema de tiempo real (¿la computación rápida resuelve el problema de obtener predictibilidad?, ¿el test de los sistemas es la respuesta? ¿sabía el autor la respuesta?) 7.-En cuanto a la cuarta idea falsa: indique cómo se alcanza actualmente (al momento de la escritura) los estrictos requerimientos temporales de este tipo de sistemas, problemas con este tipo de técnicas, objetivos principales en la investigación de sistemas de tiempo real, al respecto 8.-En cuanto a la quinta idea falsa: indique el objetivo de la “performance engineering” según el autor, indique qué problemas relacionados con un adecuado diseño de sistemas de tiempo real requieren solución 9.-En cuanto a la sexta idea falsa: indique problemas relacionados con este tipo de sistemas y que no se presentan en otros. Indique ejemplo de técnicas usadas en investigación operativo y porqué no sirven en este tipo de sistemas. 10.-En cuanto a la séptima idea falsa: indique qué piensa el autor qué puede garantizarse en el diseño de un sistema de tiempo real 11.-En cuanto a la octava idea falsa: porque no es verdadera? 12.-En cuanto a los desafíos en especificación y verificación: indique las restricciones 13.-En cuanto al desafío en planificación: indicar con respecto al ítem anterior, diferencia de objetivos en ambas áreas; indique las principales medidas de los algoritmos de planificación 14.-En cuanto al desafío en sistemas operativos en tiempo real: indique soporte básico que deben proveer 15.-En cuanto al desafío en lenguajes de programación y metodologías de diseño para sistemas de tiempo real: indique y explique brevemente los temas más importantes a investigar 16.-En cuanto al desafío de base de datos de tiempo real distribuidas: indique qué involucra satisfacer los requerimientos de tiempo real. Indique significado de seriabilidad, en este contexto. 17.-En cuanto al desafío de tolerancia a fallos: indique y explique brevemente los temas pendientes (al momento de la publicación) de investigación 18.-En cuanto al desafío de arquitecturas de sistemas de tiempo real: indique temas abiertos de investigación 19.-En cuanto al desafío de comunicaciones de tiempo real: indique temas que necesitan investigarse al momento de la publicación. Si tiene tiempo y posibilidades comente si estos temas de investigación abiertos se resolvieron (no es obligatorio) 20.-En cuanto a conclusiones: indique qué aspectos tienen qué conjugarse para alcanzar los desafíos mencionados. Indique cómo piensa el autor acerca de dónde reside la respuesta para el desarrollo de una teoría de sistemas de tiempo real en gran escala Software Architecture for Hard Real-Time Applications: Cyclic Executives vs. Fixed Priority Executives (C. Douglass Locke, 1992) Introducción: 1.-Defina el objetivo principal de diseño de una aplicación de tiempo real, que determina la arquitectura de software a usar para dicha aplicación 2.-Explique las diferencias entre determinismo y predictibilidad 3.-Defina planificación 4.-Defina sistemas de tiempo real estrictos 5.-Explique cómo se divide una aplicación en el caso de un ejecutivo y en el caso de uso de prioridades fijas. Indique también, para ambos, si se utiliza apropiación o no apropiación de recursos. 6.-Indique qué condición se requiere para cualquiera de los dos esquemas de planificación, según lo mencionado en introducción 7.-Presente Modelo de procesos simple (ver libro en 13.1) 8.-Presente el ejemplo de aplicación que usará para analizar las ventajas y desventajas de cada uno de los esquemas de planificación Con respecto al ejecutivo cíclico: 9.-Presente brevemente en qué consiste este algoritmo de planificación 10.-Defina ciclo principal y ciclo secundario y cómo se eligen ambos 11.-Indique de qué forma se genera la señal que activa cada uno de los ciclos secundarios 12.-Defina marco o frame 13.-Indique cómo deben estar relacionados los períodos de todas las tareas 14.-De acuerdo al artículo, indique cómo se ejecutarían las tareas en el ejemplo de aplicación (explique las 3 posibilidades que propone el autor y sus desventajas) 15.-Explique significado de frame overrun y cómo se lo maneja 16.-Explique las ventajas del ejecutivo cíclico, según el artículo 17.- Defina cambio de contexto (context switch) 18.-Defina jitter 19.-Explique las desventajas del ejecutivo cíclico, según el artículo 20.-Explique significado de fragilidad de la aplicación y cómo lo aplica el artículo al ejemplo 21.-Resuma el ejecutivo cíclico, de acuerdo al artículo En cuanto al algoritmo de planificación de prioridades fijas: 22.-Explique brevemente el algoritmo y cómo se eligen las prioridades 23.-Explique brevemente el algoritmo de asignación de prioridad de tasa monotónica y el test de planificabilidad que se usa (ver libro 13.4) y valor al que tiende el límite de utilización. Explique porqué se dice que el test es suficiente pero no necesario 24.-Defina instante crítico (ver libro) 25.-Indique si se pide o no a los períodos de las tareas tengan algún tipo de relación entre sus valores 26.-Aplique el método al ejemplo 27.-Explique el análisis del tiempo de respuesta (ver libro 13.5, puede usar ejemplo libro) 28.-Explique las ventajas del algoritmo, según artículo 29.-Explique las desventajas del algoritmo, según artículo (sólo la número 1!) 30.-Haga un resumen del algoritmo, según el artículo En cuanto a las conclusiones del artículo: 31.-Indique, según el autor, cuál de los dos algoritmos domina en aplicaciones de tiempo real estrictos y sus ventajas que lo hacen superior 32.-Indique según el autor para qué tipo de aplicaciones es más apropiado usar el ejecutivo cíclico (Para los dos algoritmos de planificación puede consultar al libro Sistemas de tiempo real y lenguajes de programación de Burns/Wellings: Desde comienzo de capítulo 13 hasta ítem 13.5 inclusive