AbrilJose TA3
AbrilJose TA3
AbrilJose TA3
2) Describa brevemente cada uno de los 6 tipos de sistemas de tiempo real clasificados de acuerdo a
las propiedades del sistema controlado.
1. Críticos (Hard)
No se puede admitir que se sobrepase el plazo de respuesta especificado ni una sola
vez
2. Acrítica (Soft)
Es admisible que se sobrepase el plazo ocasionalmente
3. Firme (Firm)
El plazo no es crítico, pero una respuesta tardía no sirve para nada
4. Interactiva
No se especifican plazos de respuesta, sino tiempos de respuesta medios
4) Mencione los 3 tipos de lenguajes que son de interés para los sistemas de tiempo real y señale 2
ejemplos de cada uno.
1) Lenguajes ensambladores
2) Lenguajes secuenciales (Fortran, Pascal, C, ...)
3) Lenguajes concurrentes (Modula, Ada, ...)
Los Sistemas Operativos de tiempo real son aquellos en los cuales no tiene importancia el usuario,
sino los procesos. Por lo general, están subutilizados sus recursos con la finalidad de prestar atención
a los procesos en el momento que lo requieran. se utilizan en entornos donde son procesados un
gran número de sucesos o eventos.
• Características
1) Es un sistema operativo de tiempo real de tipo Unix que cumple con la norma POSIX
2) Es desarrollado principalmente para su uso en sistemas embebidos.
• Plataformas admitidas:
Intel 8088, x86, MIPS, PowerPC, SH-4, ARM, StrongARM, Xscale
• Características
1) Es utilizado para sistemas embebidos que habitualmente necesitan una respuesta rápida del
orden de ms o microsegundos ante interrupciones en su funcionamiento.
2) Una reconocida estabilidad y una seguridad certificada.
• Plataformas admitidas:
Intel x86, x86-64, MIPS, ARM, PowerPC, SuperH.
9) Mencione 4 características del sistema operativo FreeRTOS y 8 plataformas admitidas.
• Características
1) Fue desarrollado en asociación con las principales compañías de chips del mundo durante un
período de 15 años, es el estándar de facto para uC y uP pequeños.
2) Es gratuito incluso cuando se utiliza en aplicaciones comerciales.
3) FreeRTOS está diseñado para ser pequeño y simple. El núcleo en sí consta de sólo tres
archivos implementados en C, pero hay un par de funciones en assembler que están
incluidas.
4) Ocupa típicamente entre 6KB a 12KB.
• Plataformas admitidas:
ARM, 8051, AVR, AVR32, PIC32, PIC24, dsPIC, x86, Microblaze, RISC-V, APS3, V850, IA32, etc.
El planificador es la parte del kernel responsable de decidir qué tarea se debe ejecutar en un
momento determinado.El kernel puede suspender y luego reanudar una tarea muchas veces durante
la vida útil de la tarea.
La política de planificación es el algoritmo utilizado por el planificador para decidir qué tarea ejecutar
en cualquier momento. La política de un sistema multiusuario (no en tiempo real) probablemente
permitirá a cada tarea una proporción "justa" del tiempo del procesador.
Una tarea es un trabajo por ejecutarse en el CPU. Estas tareas pueden ser procesos, es decir, ordenes
secuenciales o hilos de ejecución.
15) ¿En qué se diferencia una co-rutina de una tarea?
Una corrutina es un proceso que se lleva a cabo y puede ser suspendido para continuar
posteriormente, sin embargo, se debe tener cuidado dado que las corrutinas no se pueden bloquear
a diferencia de las tareas.
La sección crítica es el estado en el que un proceso está usando un recurso compartido, de modo que
se prohíbe a otros procesos que se lean o escriban datos compartidos en dicho recurso.
En el estado “Running” la tarea tiene asignada un procesador y está ejecutando sus instrucciones.
En el estado “Ready” la tarea está lista para ejecutar, solo necesita del recurso procesador.
En el estado “Bloked” la tarea está esperando por un evento (que se complete un pedido de E/S o
una señal).
En el estado “Suspended” la tarea ha sido suspendida (retirada del disco a otra área) para evitar un
consumo de memoria.
23) Mencione 7 recursos utilizados para la sincronicación y-o comunicación entre tareas
Una notificación de tarea RTOS puede desbloquear a la tarea receptora y opcionalmente, actualizar
el valor de notificación de la tarea receptora.
La flexibilidad de las notificaciones de tareas ha permitido que estas sean usadas en lugares donde
antes habría sido necesario usar colas o semáforos.
Los “Stream and Message Buffers” permiten pasar un stream de bytes de una rutina de servicio de
interrupción a una tarea, o de una tarea a otra. Un stream de bytes puede tener una longitud
arbitraria y no necesariamente tiene un comienzo o un final.
Los datos se pasan por copia: los datos se copian en el búfer por el remitente y fuera del búfer por la
lectura. Los buffers de flujo están optimizados para escenarios de un solo lector y un solo escritor,
como pasar datos de una rutina de servicio de interrupción a una tarea, o de un núcleo de
microcontrolador a otro, en una CPU de doble núcleo.
Se pueden usar para enviar mensajes entre tareas y entre interrupciones y tareas. En la mayoría de
los casos, se utilizan como búferes FIFO (Primero en entrar, primero en salir).
Funcionan como una cola que solo puede contener un elemento. Por lo tanto, la cola solo puede
estar vacía o llena, es decir, binaria. Las tareas e interrupciones al usar la cola no les importa lo que
contenga la cola, solo quieren saber si la cola está vacía o llena.
Los semáforos de conteo pueden considerarse como colas de longitud mayor que uno.
Los usuarios del semáforo no están interesados en los datos almacenados en la cola, solo si la cola
está vacía o no.
Los semáforos de conteo se usan típicamente para dos cosas: conteo de eventos y administración de
recursos.
29) ¿Qué es y cómo funcionan los “Mutexes”?
Los mutexes son semáforos binarios que incluyen un mecanismo de herencia prioritario, y son la
mejor opción para implementar la exclusión mutua simple.
Cuando se usa para exclusión mutua, el mutex actúa como un token que se usa para proteger un
recurso. Cuando una tarea desea acceder al recurso, primero debe obtener el token, y cuando haya
terminado con el recurso, debe "devolver" el token, permitiendo que otras tareas tengan la
oportunidad de acceder al mismo recurso.
Utiliza un mecanismo de herencia prioritario, por lo que una tarea que 'toma' un semáforo DEBE
SIEMPRE 'devolver' el semáforo una vez que el semáforo ya no es necesario.
En pocas palabras, la función de devolución de llamada del temporizador se ejecuta cuando expira el
período del temporizador.