Академический Документы
Профессиональный Документы
Культура Документы
ndice
[ocultar]
1 Caractersticas Generales
2 Procesador
3 Diseo
4 Programacin
5 Comunicacin entre Tareas
6 Interrupciones
7 Memoria
8 Comunicaciones
9 Algunos Ejemplos
10 Enlaces externos
Caractersticas Generales[editar]
Usado tpicamente para aplicaciones integradas, normalmente tiene las siguientes
caractersticas:
Determinismo
Sensibilidad
Control del usuario
Fiabilidad
Tolerancia a los fallos
Procesador[editar]
Este tipo de sistemas operativos no es necesariamente eficiente en el sentido de tener una
capacidad de procesamiento alta. El algoritmo de programacin especializado, y a veces
una tasa de interrupcin del reloj alta pueden interferir en la capacidad de procesamiento.
Aunque para propsito general un procesador moderno suele ser ms rpido, para
programacin en tiempo real deben utilizarse procesadores lo ms predecibles posible, sin
paginacin. Todos estos factores en un procesador aade una aleatoriedad que hace que sea
difcil demostrar que el sistema es viable, es decir, que cumpla con los plazos de tiempo
para la ejecucin de las tareas y la atencin de los servicios o interrupciones.
Un sistema operativo de tiempo real puede ser implementado en microcontroladores o
procesadores digitales de seal "DSP's", as, se pueden desarrollar aplicaciones embebidas
en diferentes reas de la electrnica.
Diseo[editar]
Hay dos diseos bsicos:
Un sistema operativo guiado por eventos slo cambia de tarea cuando un evento
necesita el servicio.
Un diseo la comparticin de tiempo cambia de tareas por interrupciones del reloj y
por eventos.
prioritaria es la de menor periodo. Esto no quiere decir que si no es viable con RateMonotonic Schedule no sea viable con asignaciones de prioridad variable. Puede darse el
caso de encontrarnos con un sistema viable con prioridades variables y que no sea viable
con prioridades fijas.
Programacin[editar]
En los diseos tpicos, una tarea tiene tres estados: ejecucin, preparada y bloqueada. La
mayora de las tareas estn bloqueadas casi todo el tiempo. Solamente se ejecuta una tarea
por UCP. La lista de tareas preparadas suele ser corta, de dos o tres tareas como mucho.
El problema principal es disear el programador. Usualmente, la estructura de los datos de
la lista de tareas preparadas en el programador est diseada para que cada bsqueda,
insercin y eliminacin necesiten interrupciones de cierre solamente durante un perodo
muy pequeo, cuando se buscan partes de la lista muy definidas.
Esto significa que otras tareas pueden operar en la lista asincrnicamente, mientras que se
busca. Una buena programacin tpica es una lista conectada bidireccional de tareas
preparadas, ordenadas por orden de prioridad. Hay que tener en cuenta que no es rpido de
buscar sino determinista. La mayora de las listas de tareas preparadas slo tienen dos o tres
entradas, por lo que una bsqueda secuencial es usualmente la ms rpida, porque requiere
muy poco tiempo de instalacin.
El tiempo de respuesta crtico es el tiempo que necesita para poner en la cola una nueva
tarea preparada y restaurar el estado de la tarea de ms alta prioridad.
En un sistema operativo en tiempo real bien diseado, preparar una nueva tarea necesita de
3 a 20 instrucciones por cada entrada en la cola y la restauracin de la tarea preparada de
mxima prioridad de 5 a 30 instrucciones. En un procesador 68000 20MHz, los tiempos de
cambio de tarea son de 20 microsegundos con dos tareas preparadas.
Cientos de UCP MIP ARM pueden cambiar en unos pocos microsegundos.
En la inversin de prioridades, una tarea de mucha prioridad espera porque otra tarea de
baja prioridad tiene un semforo. Si una tarea de prioridad intermedia impide la ejecucin
de la tarea de menor prioridad, la de ms alta prioridad nunca llega a ejecutarse. Una
solucin tpica sera otorgar a la tarea que tiene el semforo la prioridad de la tarea ms
prioritaria de las que estn esperando dicho semforo. Esto se denomina algoritmo de
herencia bsica de prioridad.
En un punto muerto, dos tareas (T1,T2) pretenden adquirir dos semforos (semA, semB) en
orden inverso. En este caso si T1 adquiere semA y T2 adquiere semB cuando intenten
adquirir el segundo semforo no podrn hacerlo ya que lo tiene la otra tarea. De esta forma
entran en un punto muerto del que ninguna de las dos tareas puede salir sin intervencin
externa. Esto se resuelve normalmente mediante un diseo por ej. obligando a adquirir los
semforos en un orden concreto.
La otra solucin es que las tareas se manden mensajes entre ellas. Esto tiene los mismos
problemas: La inversin de prioridades tiene lugar cuando una tarea est tratando un
mensaje de baja prioridad, e ignora un mensaje de ms alta prioridad en su correo. Los
puntos muertos ocurren cuando dos tareas realizan envos bloqueantes (se quedan en la
funcin de envo esperando a que el receptor reciba el mensaje). Si T1 manda un mensaje
de forma bloqueante a T2 y T2 manda un mensaje de igual forma a T1 ninguna de las dos
tareas saldr de la funcin de envo quedando ambas bloqueadas ya que no podrn llegar a
la funcin de recepcin. Puede resolverse reordenando envos y recepciones o empleando
envos no bloqueantes o temporizados.
Aunque su comportamiento en tiempo real es algo ms difcil de analizar que los sistemas
de semforos, los sistemas basados en mensajes normalmente son ms sencillos de
desarrollar que los sistemas de semforo.
Interrupciones[editar]
Las interrupciones son la forma ms comn de pasar informacin desde el mundo exterior
al programa y son, por naturaleza, impredecibles. En un sistema de tiempo real estas
interrupciones pueden informar diferentes eventos como la presencia de nueva informacin
en un puerto de comunicaciones, de una nueva muestra de audio 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 la interrupcin y procese la informacin obtenida antes de que se presente
la siguiente interrupcin. Como el microprocesador normalmente solo puede atender una
interrupcin a la vez, es necesario que los controladores de tiempo real se ejecuten en el
menor tiempo posible. Esto se logra no procesando la seal dentro de la interrupcin, sino
enviando un mensaje a una tarea o solucionando un semforo que est siendo esperado por
una tarea. El programador se encarga de activar la tarea y esta se encarga de adquirir la
informacin y completar el procesamiento de la misma.
Memoria[editar]
Hay 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
estndar recorre una lista conectada de longitud indeterminada para encontrar un bloque de
memoria libre; sin embargo, esto no es aceptable 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 regiones que estn en uso. Esto puede provocar que se pare un programa, sin
posibilidad de obtener memoria, aunque en teora exista suficiente memoria. Una solucin
es tener una lista vinculada LIFO de bloques de memoria de tamao fijo. Esto funciona
asombrosamente bien en un sistema simple.
La paginacin suele desactivarse en los sistemas en tiempo real, ya que es un factor
bastante aleatorio e impredecible, que vara el tiempo de respuesta y no nos permite
asegurar que se cumplirn los plazos, debido al trasiego de pginas de memoria con un
dispositivo de almacenamiento (thrashing)
Comunicaciones[editar]
Para las comunicaciones se suelen usar conexiones o redes deterministas CAN bus o
puertos serie, ya que las redes ms usuales, como Ethernet son indeterministas y no pueden
garantizarnos el tiempo de respuesta. El sistema CAN bus es utilizado para la interconexin
de dispositivos electrnicos de control (ECU) en los vehculos.
Algunos Ejemplos[editar]
SOOS
VxWorks
Windows CE
Linchos
UNIX (Some)
DuinOS
RTAI
Symbian
BlackBerry 10
Sistemas de tiempo real duros o Hard real-time systems: aqu la respuesta fuera de trmino no tiene valor
alguno, y produce la falla del sistema. Estos sistemas tienen menos utilidades que los implementados por
hard, por ejemplo no pueden utilizarse para control industrial y robtico. Pero si para multimedia, supervisin
de controles industriales y realidad virtual.
MTODOS DE DISEOS
Cuando se elabora software de tiempo real se deben incorporar una alta calidad.
Al elaborar el software de tiempo real se presentan mltiples problemas como:
Representacin de interrupciones y cambio de contexto.
Comunicacin y sincronizacin de tareas.
Grandes variaciones en las tasas de datos.
Requisitos especiales para manejo de errores y recuperacin de fallos.
Procesamiento asncrono.
Para evitar muchos de los problemas que se presentan al elaborar software de tiempo real se han establecido
algunos mtodos como lo son:
1. Metodologa de flujo de datos.
2.
3. Metodologa de estructura de datos.
4. Metodologa orientada a los objetos.
REQUISITOS TEMPORALES
ESTRUCTURA DE UN STR
CARACTERSTICAS SECUNDARIAS
Procedimiento concurrente
Fiabilidad
Interfaz hardware
Reconfigurabilidad
Obligaciones
Bases de datos
Capacidad de evolucin
OTRAS CARACTERISTICAS:
DETERMINISMO EN LOS STR
Este trmino es una parte fundamental en estos sistemas, podra decirse que es una cualidad ya que es la
capacidad de determinar con una alta probabilidad, cuanto es el tiempo que tarda una tarea en iniciar, es
decir, que los STR necesitan que ciertas tareas se comiencen a ejecutar antes que otras.
RESPONSIVIDAD EN LOS STR:
Este trmino se basa en el tiempo que tarda una tarea en ejecutarse. La responsividad se enfoca a 3 aspectos
los cuales son:
1.
2. La cantidad de tiempo que tarda iniciar la ejecucin de una interrupcin
3. La cantidad de tiempo que se necesita para realizar las tareas que pidi la interrupcin.
4. Los efectos de Interrupciones anidadas.
USUARIOS CONTROLADORES
Todos los el usuario tienen un mejor control de todos los procesos que se ejecutan en el sistema esto es:
a.
b. Los procesos son capaces de especificar su prioridad
c. Los procesos son capaces de especificar el manejo de memoria que requiere
d. Los procesos especifican que derechos tiene sobre el sistema.
CONFIABILIDAD
En los STR la confiabilidad juega un papel muy importante, ya que el sistema no debe de presentar fallos, sino
que ms aun la calidad del servicio que ofrezca no debe de degradarse ms all de un lmite especificado.
El sistema tiene que tener la capacidad de seguir funcionando aunque se presenten grandes catstrofes, o
fallos mecnicos. Por lo general una degradacin en el servicio en un STR lleva consecuencias catastrficas.
TOLERANCIA A FALLOS
Al hablar de tolerancia a los fallos nos estamos refiriendo a la capacidad de un sistema de conservar la
mxima capacidad y los mximos datos posibles en caso de un problema grave que afecte a parte del
sistema.
Al referirnos a la tolerancia a los fallos estamos hablando tambin de la estabilidad ya que un sistema de
tiempo real cuando le es imposible cumplir todos los plazos de ejecucin de las tareas que tenia asignado en
ese momento, el sistema cumple los plazos de las tareas mas criticas y de mayor prioridad que hasta ese
momento se estaban ejecutando.
Entonces el sistema debe de fallar de manera que cuando se presente un problema en el sistema conserve
gran parte de los datos y capacidades del sistema en la mayor medida posible.
Caractersticas concretas:
1. Se presentan en entornos en donde deben ser aceptados y procesados una gran cantidad de sucesos,
donde la mayora de estos sucesos son externos al sistema computacional, con un tiempo de respuesta
inmediato.
2. Pueden ser utilizados en muchos mbitos entre los cuales estn en control industrial, conmutacin
telefnica, control de vuelo, simulaciones en tiempo real., aplicaciones militares (entre otras).
3. Proporciona rpidos tiempos de respuesta.
4. Capacidad de procesar rfagas de miles de interrupciones por segundo sin perder un solo suceso.
5. El proceso que tenga mayor prioridad expropia recursos.
6. La mayora de los de procesos son estticos.
7. La gestin de archivos se enfoca a velocidad de acceso que a la utilizacin eficiente del recurso.
Entonces para establecer la transmisin de datos o informacin entre el sistema de tiempo real, los sensores y
actuadores que conforman al sistema, pueden usarse diversas tcnicas de buses de tiempo real, que ofrecen
la oportunidad de disponer de sensores inteligentes.
Este tipo de sensores no solo tienen la capacidad de transmitir los datos que se recolectaron, sino tambin
poseen la capacidad de enviar la informacin del instante que los datos fueron recolectados.
Ejemplos de protocolos de comunicacin que utilizan los STR los cuales tienen la capacidad de reducir los
tiempos de transmisin son los siguientes:
El protocolo PAR (Positive Acknowledge or Retransmit), Implicit Flow Control, CSMA/CD (Carrier Sense
Multiple Access/Collision Detection), CAN (Control Area Network), Tokenbus, Central Master, y TDMA-TTP.
CONCLUSIONES
Los sistemas de tiempo real (STR) juegan un papel muy importante ya que como todo sistema debe tener la
capacidad de satisfacer tareas en un tiempo de respuesta mnimo.
Los STR estn presentes en todos los aspectos de nuestra vida diaria como aeronaves, telfonos mviles,
automviles, entre muchas otras aplicaciones que nos benefician ampliamente.
Se podra tambin concluir que los sistemas de tiempo real estn en constante desarrollo puesto que con los
avances tecnolgicos se construyen nuevas maquinas que operan en tiempo real y que por consiguiente
necesitan tener sistemas controlados por un computador que tenga la capacidad de interactuar con el mundo
fsico.
Los sistemas de tiempo real bsicamente estn integrados en un sistema de ingeniera ms avanzado el cual
realiza funciones de control, por lo que tambin se les llama sistemas empotrados o embedded systems.
Los sistemas de tiempo real suelen tener un reloj y un timer para verificar los tiempos reales de respuesta del
sistema. Se dice que no son trminos iguales ya que un reloj le sirve al sistema nicamente para llevar un
conteo, en cambio un timer es un dispositivo que cuando llega a un estado determinado tiene la capacidad de
notificar que esta pasando, pero uno es el complemento del otro.
Los programas creados para la programacion exclusiva en tiempo real, son dos,
Ada y Occam, los cuales presento un pequeo resumen a continuacion.
Ada
Es un lenguaje de programacin orientado a objetos y fuertemente tipado de
forma esttica que fue diseado por Jean Ichbiah de CII Honeywell Bull por
encargo del Departamento de Defensa de los Estados Unidos. Es un lenguaje
multipropsito, orientado a objetos y concurrente, pudiendo llegar desde la
facilidad de Pascal hasta la flexibilidad de C++.
Fue diseado con la seguridad en mente y con una filosofa orientada a la
reduccin de errores comunes y difciles de descubrir. Para ello se basa en un
tipado muy fuerte y en chequeos en tiempo de ejecucin (desactivables en
beneficio del rendimiento). La sincronizacin de tareas se realiza mediante la
primitiva rendezvous.
Ada se usa principalmente en entornos en los que se necesita una gran
seguridad y fiabilidad como la defensa, la aeronutica (Boeing o Airbus),
la gestin
del
trfico
Espaa)
la
Caractersticas
Occam
Es un lenguaje de programacin imperativo y estructurado (al igual que Pascal).
Poco conocido y Con muy pero muy poca informacion en la red. Fue
desarrollado por David May en Inmos Limited, Bristol, Inglaterra, para
desarrollar software para su lnea de procesadores Transputers, existiendo
tambin implementaciones para otras plataformas.
Es un lenguaje de procesamiento en paralelo; se basa en el lgebra de procesos
CSP (Communicating Sequential Processes) y comparte muchas de sus
caractersticas. Lleva el nombre de William of Ockham famoso por ser el creador
de la navaja de Occam.
Occam incorpora soporte para grano muy fino, facilidad para usar hilos y el
apoyo sin fisuras de los entornos multi-procesador. Puede ser utilizado en
2778 Visitas
Todos los navegadores llevan integrados sus propios motores JavaScript con objeto de
jQuery: es la librera ms utilizada por su fcil manejo en el tratamiento de los objetos del DOM ya
que nos permite abstraernos completamente. Muy aconsejable para la integracin de efectos y
animaciones personalizadas.
jQuery es software libre y de cdigo abierto permitiendo su uso en proyectos libres y privativos.
Adems es compatible con los navegadores ms comunes del mercado como Mozilla Firefox 2.0+,
Internet Explorer 6+, Safari 3+, Opera 10.6+ y Google Chrome 8+
Mootools: este framework est enfocado a la orientacin de objetos como sus siglas indican (My
object oriented tools).
Cuenta con un componente avanzado de efectos y con transiciones optimizadas y utilizadas por
multitud de desarrolladores Flash.
Es de cdigo abierto y compatible y probado en Safari 3+, Internet Explorer 6+, Mozilla Firefox 2+,
Opera 9+, Google Chrome 4+
Yahoo! UI Library: bibliotecas utilizadas para la construccin de aplicaciones enriquecidas RIA (rich
Internet applications) o aplicaciones web que tienen la mayora de las caractersticas de las
aplicaciones de escritorio tradicionales.
Liberadas bajo licencia BSD por parte de la compaa Yahoo.
Modernizr: esta librera proporciona la misma experiencia de usurio a todos los visitantes del sitio
web independientemente de su navegador.
Modernizr no aade ninguna funcionalidad al navegador. En cambio, slo averigua si la
funcionalidad que ests intentando implementar responde en dicho navegador. Esto nos permite
experimentar con las nuevas caractersticas de HTML5 y CSS3 sin preocuparnos por restar
experiencia de usuario o que la pgina no se renderice adecuadamente.
Dojo: es un framework que contiene APIs y widgets para facilitar el desarrollo de aplicaciones Web
que utilicen tecnologa AJAX.
Es de cdigo abierto y se puede descargar de forma gratuita en su pgina oficial. Cuenta con el
patrocinio de IBM, Google, AOL y Nexaweb.