Your SlideShare is downloading. ×
Sistema operativo de tiempo real
Sistema operativo de tiempo real
Sistema operativo de tiempo real
Sistema operativo de tiempo real
Sistema operativo de tiempo real
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Sistema operativo de tiempo real

209

Published on

funcionamiento de un sistema operativo tiempo real

funcionamiento de un sistema operativo tiempo real

Published in: Design
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
209
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Sistema operativo de tiempo real Se ha sugerido que Sistema de tiempo real sea fusionado en este artículo o sección (discusión). Una vez que hayas realizado la fusión de artículos, pide la fusión de historiales aquí.Un sistema operativo de tiempo real (SOTR o RTOS -Real Time Operating System en inglés), es un sistemaoperativo que ha sido desarrollado para aplicaciones de tiempo real. Como tal, se le exige corrección en susrespuestas bajo ciertas restricciones de tiempo. Si no las respeta, se dirá que el sistema ha fallado. Paragarantizar el comportamiento correcto en el tiempo requerido se necesita que el sistema sea predecible(determinista). Contenido [ocultar]1 Características Generales2 Procesador3 Diseño4 Programación5 Comunicación entre Tareas6 Interrupciones7 Memoria8 Comunicaciones9 Algunos Ejemplos10 Enlaces externos[editar]Características GeneralesUsado típicamente para aplicaciones integradas, normalmente tiene las siguientes características: No utiliza mucha memoria Cualquier evento en el soporte físico puede hacer que se ejecute una tarea Multi-arquitectura (código portado a cualquier tipo de CPU) Muchos tienen enfermedades predecibles para eventos electrónicosSe caracterizan por presentar requisitos especiales en cinco áreas generales: Determinismo Sensibilidad Control del usuario Fiabilidad Tolerancia a los fallos
  • 2. En la actualidad hay un debate sobre qué es tiempo real. Muchos sistemas operativos de tiempo real tienenun programador y diseños decontroladores que minimizan los periodos en los que las interrupciones estándeshabilitadas, un número llamado a veces duración de interrupción. Muchos incluyen también formasespeciales de gestión de memoria que limitan la posibilidad de fragmentación de la memoria y aseguran unlímite superior mínimo para los tiempos de asignación y retirada de la memoria.Un ejemplo temprano de sistema operativo en tiempo real a gran escala fue el denominado «programa decontrol» desarrollado por American Airlines e IBM para el sistema de reservas Sabre.[editar]ProcesadorEste tipo de sistemas operativos no es necesariamente eficiente en el sentido de tener una capacidad deprocesamiento alta. El algoritmo de programación especializado, y a veces una tasa de interrupción del relojalta pueden interferir en la capacidad de procesamiento.Aunque para propósito general un procesador moderno suele ser más rápido, para programación en tiempo realdeben utilizarse procesadores lo más predecibles posible, sin paginación. Todos estos factores añaden unaaleatoriedad que hace que sea difícil demostrar que el sistema es viable, es decir, que cumple con los plazos.Un sistema operativo de tiempo real puede ser implementado en microcontroladores o procesadores digitalesde señal "DSPs", asi, se pueden desarrollar aplicaciones embebidas en diferentes áreas de la electrónica.[editar]DiseñoHay dos diseños básicos: Un sistema operativo guiado por eventos sólo cambia de tarea cuando un evento necesita el servicio. Un diseño de compartición de tiempo cambia de tareas por interrupciones del reloj y por eventos.El diseño de compartición de tiempo gasta más tiempo de la UCP en cambios de tarea innecesarios. Sinembargo, da una mejor ilusión demultitarea. Normalmente se utiliza un sistema de prioridades fijas.Uno de los algoritmos que suelen usarse para la asignación de prioridades es el Rate-Monotonic Schedule. Si elconjunto de tareas que tenemos es viable con alguna asignación de prioridades fijas, también es viable con elRate-Monotonic Schedule, donde la tarea más prioritaria es la de menor periodo. Esto no quiere decir que si noes viable con Rate-Monotonic Schedule no sea viable con asignaciones de prioridad variable. Puede darse elcaso de encontrarnos con un sistema viable con prioridades variables y que no sea viable con prioridades fijas.[editar]ProgramaciónEn los diseños típicos, una tarea tiene tres estados: ejecución, preparada y bloqueada. La mayoría de las tareasestán bloqueadas casi todo el tiempo. Solamente se ejecuta una tarea por UCP. La lista de tareas preparadassuele ser corta, de dos o tres tareas como mucho.El problema principal es diseñar el programador. Usualmente, la estructura de los datos de la lista de tareaspreparadas en el programador está diseñada para que cada búsqueda, inserción y eliminación necesiten
  • 3. interrupciones de cierre solamente durante un período muy pequeño, cuando se buscan partes de la lista muydefinidas.Esto significa que otras tareas pueden operar en la lista asincrónicamente, mientras que se busca. Una buenaprogramación típica es una lista conectada bidireccional de tareas preparadas, ordenadas por orden deprioridad. Hay que tener en cuenta que no es rápido de buscar sino determinista. La mayoría de las listas detareas preparadas sólo tienen dos o tres entradas, por lo que una búsqueda secuencial es usualmente la másrápida, porque requiere muy poco tiempo de instalación.El tiempo de respuesta crítico es el tiempo que necesita para poner en la cola una nueva tarea preparada yrestaurar el estado de la tarea de más alta prioridad.En un sistema operativo en tiempo real bien diseñado, preparar una nueva tarea necesita de 3 a 20 instruccionespor cada entrada en la cola y la restauración de la tarea preparada de máxima prioridad de 5 a 30 instrucciones.En un procesador 68000 20MHz, los tiempos de cambio de tarea son de 20 microsegundos con dos tareaspreparadas.Cientos de UCP MIP ARM pueden cambiar en unos pocos microsegundos.[editar]Comunicación entre TareasLas diferentes tareas de un sistema no pueden utilizar los mismos datos o componentes físicos al mismotiempo. Hay dos métodos para tratar este problema.Uno de los métodos utiliza semáforos. En general, el semáforo binario puede estar cerrado o abierto. Cuandoestá cerrado hay una cola de tareas esperando la apertura del semáforo.Los problemas con los diseños de semáforos son bien conocidos: inversión de prioridades y puntosmuertos (deadlocks).En la inversión de prioridades, una tarea de mucha prioridad espera porque otra tarea de baja prioridad tiene unsemáforo. Si una tarea de prioridad intermedia impide la ejecución de la tarea de menor prioridad, la de másalta prioridad nunca llega a ejecutarse. Una solución típica sería otorgar a la tarea que tiene el semáforo laprioridad de la tarea más prioritaria de las que están esperando dicho semáforo. Esto se denomina algoritmode herencia básica de prioridad.En un punto muerto, dos tareas (T1,T2) pretenden adquirir dos semáforos (semA,semB) en orden inverso. Eneste caso si T1 adquiere semA y T2 adquiere semB cuando intenten adquirir el segundo semáforo no podránhacerlo ya que lo tiene la otra tarea. De esta forma entran en un punto muerto del que ninguna de las dos tareaspuede salir sin intervención externa. Esto se resuelve normalmente mediante un diseño por ej. obligando aadquirir los semáforos en un orden concreto.La otra solución es que las tareas se manden mensajes entre ellas. Esto tiene los mismos problemas:La inversión de prioridades tiene lugar cuando una tarea está tratando un mensaje de baja prioridad, e ignora unmensaje de más alta prioridad en su correo. Los puntos muertos ocurren cuando dos tareas realizan envíosbloqueantes (se quedan en la función de envío esperando a que el receptor reciba el mensaje). Si T1 manda un
  • 4. mensaje de forma bloqueante a T2 y T2 manda un mensaje de igual forma a T1 ninguna de las dos tareas saldráde la función de envío quedando ambas bloqueadas ya que no podrán llegar a la función de recepción. Puederesolverse reordenando envíos y recepciones o empleando envíos no bloqueantes o temporizados.Aunque su comportamiento en tiempo real es algo más difícil de analizar que los sistemas de semáforos, lossistemas basados en mensajes normalmente son más sencillos de desarrollar que los sistemas de semáforo.[editar]InterrupcionesLas interrupciones son la forma más común de pasar información desde el mundo exterior al programa y son,por naturaleza, impredecibles. En un sistema de tiempo real estas interrupciones pueden informar diferenteseventos como la presencia de nueva información en un puerto de comunicaciones, de una nueva muestra deaudio en un equipo de sonido o de un nuevo cuadro de imagen en una videograbadora digital.Para que el programa cumpla con su cometido de ser tiempo real es necesario que el sistema atienda lainterrupción y procese la información obtenida antes de que se presente la siguiente interrupción. Como elmicroprocesador normalmente solo puede atender una interrupción a la vez, es necesario que los controladoresde tiempo real se ejecuten en el menor tiempo posible. Esto se logra no procesando la señal dentro de lainterrupción, sino enviando un mensaje a una tarea o solucionando un semáforo que está siendo esperado poruna tarea. El programador se encarga de activar la tarea y esta se encarga de adquirir la información ycompletar el procesamiento de la misma.El tiempo que transcurre entre la generación de la interrupción y el momento en el cual esta es atendida sellama latencia de interrupción. El inverso de esta latencia es una frecuencia llamada frecuencia de saturación, silas señales que están siendo procesadas tienen una frecuencia mayor a la de saturación, el sistema seráfísicamente incapaz de procesarlas. En todo caso la mayor frecuencia que puede procesarse es mucho menorque la frecuencia de saturación y depende de las operaciones que deban realizarse sobre la informaciónrecibida.[editar]MemoriaHay dos problemas con el reparto de la memoria en SOTR (sistemas operativos en tiempo real).El primero, la velocidad del reparto es importante. Un esquema de reparto de memoria estándar recorre unalista conectada de longitud indeterminada para encontrar un bloque de memoria libre; sin embargo, esto no esaceptable ya que el reparto de la memoria debe ocurrir en un tiempo fijo en el SOTR.En segundo lugar, la memoria puede fragmentarse cuando las regiones libres se pueden separar por regionesque están en uso. Esto puede provocar que se pare un programa, sin posibilidad de obtener memoria, aunque enteoría exista suficiente memoria. Una solución es tener una lista vinculada LIFO de bloques de memoria detamaño fijo. Esto funciona asombrosamente bien en un sistema simple.La paginación suele desactivarse en los sistemas en tiempo real, ya que es un factor bastante aleatorio eimpredecible, que varía el tiempo de respuesta y no nos permite asegurar que se cumplirán los plazos, debido altrasiego de páginas de memoria con un dispositivo de almacenamiento (trashing)
  • 5. [editar]ComunicacionesPara las comunicaciones se suelen usar conexiones o redes deterministas CAN bus o puertos serie, ya que lasredes más usuales, comoEthernet son indeterministas y no pueden garantizarnos el tiempo de respuesta. Elsistema CAN bus es utilizado para la interconexión de dispositivos electrónicos de control (ECU) en losvehículos.Es.wikipedia.org

×