Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1. ¿Qué es un sistema en tiempo real? ¿Cuál es la diferencia entre uno estricto y uno no
estricto?
Es un tipo de sistema cuyo comportamiento será correcto si los resultados son conformes a las
especificaciones y si el momento en que se generan estos resultados es el adecuado (la
especificación debe tener en cuenta el tiempo máximo permitido para realizar una determinada
tarea). Un sistema en tiempo real debe integrar hardware, software y elementos de una base de
datos para conseguir este objetivo.
Sistemas en tiempo real estrictos – Son aquellos en los que es absolutamente imperativo que la
respuesta se produzca dentro del periodo de tiempo especificado. Por ejemplo, el control de
alarma de una central nuclear, o el control de vuelo de una aeronave.
Sistemas en tiempo real no estricto o flexible – Son aquellos en los que, siendo importantes las
limitaciones temporales, si éstas ocasionalmente no se cumplen el sistema aun funciona
correctamente. Un sistema de adquisición de datos podría caer dentro de esta clasificación.
Tamaño y complejidad: Muchos de los problemas asociados al desarrollo del software están
relacionados con su tamaño y complejidad. Los sistemas en tiempo real se caracterizan por
responder a sucesos del mundo real, por lo que el software de tiempo real se encuentra
sometido a continuos cambios, lo que implica un constante mantenimiento.
Manipulación de números reales: Los lenguajes de programación de tiempo real deben permitir
operar con números reales y números de coma flotante (en control de procesos por ejemplo es
preciso poder calcular el valor del error a partir y poder realizar los cálculos que requiera el
algoritmo de control)
Confianza y seguridad: Los sistemas en tiempo real deben ser seguros. Para ello, los lenguajes
de programación de tiempo real tienen que permitir introducir instrucciones que impidan que se
produzcan errores inesperados.
Control concurrente de distintos componentes del sistema: En un sistema en tiempo real, el
computador se comunica con distintos componentes a los que debe atender de forma
simultánea. El mayor problema asociado a la producción del software para sistemas en los que
se produce concurrencia es cómo expresar esa concurrencia en la estructura del programa.
Interacción con el hardware. El computador debe ser capaz de comunicarse con sensores,
actuadores y otros dispositivos. Estos dispositivos pueden generar interrupciones con el fin de
que la operación a realizar se produzca de forma adecuada.
produce una?
• Servir a la interrupción.
tiempo real.
Seguridad. El análisis de seguridad se debe ir realizando a lo largo de cada una de las etapas
del ciclo de vida software.
Flexibilidad. El programador deber poder expresar todas las operaciones que se requieran de
una forma sencilla y coherente.
Simplicidad. Escribir el programa debe ser sencillo, con un número suficiente y no contradictorio
de componentes y criterios de combinación para las estructuras de control y manejo y definición
de los datos.
Eficiencia. Se debe garantizar que los tiempos de respuesta cumplen las especificaciones, de
forma que el programa sea eficiente y predecible.
Tipo 1 o general: El tiempo de ejecución medio debe ser inferior a un tiempo máximo
especificado.
Tipo 2 o específico: El resultado de cada cálculo individual debe ser completado dentro de un
tiempo máximo especificado.
6. Atendiendo a la forma en que se realizan las distintas acciones requeridas a un programa (es
decir, el orden en el que se realizan sus operaciones), ¿qué tres tipos de programación
existen?
Programación de tiempo real. Además de que sus acciones no necesitan ser disjuntas en el
tiempo, la secuencia de algunas de las acciones se determina por los sucesos que ocurran en el
entorno que influye sobre el programa. Un programa de tiempo real también puede ser dividido
en un número de tareas, pero la comunicación entre las tareas no tiene porque esperar una
señal de sincronización.
7. ¿Qué es el polling?
La forma más sencilla de sincronización es ver si ha ocurrido un suceso externo. Este método se
conoce como polling (sondeo) y se puede realizar de dos formas:
1.- Si el suceso no ha ocurrido el programa continúa con otras acciones antes de volver
a comprobar otra vez si se ha producido éste.
2.- El programa de forma continua repite la comprobación hasta que ocurre el suceso.
Para descomponer un sistema grande en módulos, se debe tener en cuenta que una buena
descomposición es aquella que tiene fuerte cohesión y un acoplamiento débil. El acoplamiento
se dice que es fuerte si se produce intercambio de información de control entre los módulos. El
acoplamiento es débil si sólo se produce intercambio de datos entre los módulos.
Por otra parte, las siguientes medidas dan una indicación de la cohesión desde muy débil a muy
fuerte.
Casual: Los elementos del módulo están ligados de una forma muy superficial; por ejemplo,
escritos el mismo mes.
Lógico: Los elementos del módulo están relacionados en términos del sistema global, pero no
en términos del software utilizado. Un ejemplo es los drivers de los dispositivos de salida.
Temporal: Los elementos del módulo se ejecutan en tiempos similares; por ejemplo, rutinas de
arranque.
Procedural: Los elementos del módulo se usan juntos en la misma sección del programa. Un
ejemplo es los componentes de la interfaz gráfica de usuario de un programa.
Comunicacional: Los elementos del módulo trabajan sobre la misma estructura de datos; por
ejemplo, los algoritmos usados para analizar una señal de entrada.
Funcional: Los elementos del módulo trabajan juntos para contribuir a la realización de una única
función del sistema. Un ejemplo es procesamiento de datos de un sistema de ficheros
distribuidos.
Los módulos o tareas con fuertes restricciones temporales son aquellos que están más ligados a
los procesos externos y se ejecutan en el denominado foreground, mientras que los módulos
con menores restricciones temporales, o sin ninguna restricción, son ejecutados en el llamado
background. A los módulos foreground se les dota de mayor prioridad y de un mecanismo que
les permite interrumpir las tareas que se ejecutan en el background.