martes, 26 de junio de 2012

SEÑALES



CONCEPTO

Durante una sesión cualquiera, el número de procesos depende del trabajo que los
usuarios realicen. Se sabe que los procesos tienen su propio contexto, pero esto no quiere
decir que estén incomunicados entre sí. Existe un conjunto de métodos mantenidos por el
kernel que permiten entablar diálogos entre ellos. Estos métodos se llaman mecanismos IPC
(Interprocess Comunication). Dentro del conjunto de IPC’s se tienen a los semáforos, la
memoria compartida, colas de mensajes, etc.


COMPORTAMIENTOS

existen 3 tipos de comportamientos

1) Ignorar la señal

2) Invocar a la rutina de tratamiento correspondiente al número de señal. Esta rutina no

la codifica el programador, sino que la aporta el kernel y normalmente tiene como fin

el terminar el proceso que recibe la señal

3) Invocar a una rutina que se encarga de tratar la señal y que ha sido creada por el

programador




SEÑALES BASICAS

a) Señales relacionadas con la terminación de procesos.

b) Señales relacionadas con las excepciones inducidas por los procesos. Por ejemplo, el
intento de acceder fuera del espacio de direcciones virtuales, los errores producidos al
utilizar números en coma flotante, etc.

c) Señales relacionadas con los errores irrecuperables originados en el transcurso de una
llamada al sistema.

d) Señales originadas desde un proceso que se está ejecutando en modo usuario. Por
ejemplo, cuando un proceso envía una señal a otro, etc.

e) Señales relacionadas con la interacción con el terminal. Por ejemplo, pulsar la tecla
break.

f) Señales para ejecutar un programa paso a paso. Son usadas por los depuradores.



SIGALRM: Alarma de relok (Alarm clock). cada proceso tiene un tiempo determinada y cuando este tiempo llega a cero se manda esta señal

SIGINT: Interrupción. esta señal se manda cada que en un proceso se presiona (Ctrl + c). y por defecta el proceso interrumpido llega a su fin

SIGTERM: Finalización software. Es la señal utilizada para indicarle a un proceso que
debe terminar su ejecución. Esta señal no es tajante como SIGKILL y pued
ser ignorada. Lo

SIG_IGN: Indica que la señal se debe ignorar. No todas las señales pueden
ignorarse. Este es el caso de SIGKILL

ACCIÓN Y TRANSACCIÓN ATÓMICA




                                           ACCIÓN ATÓMICA



Una acción es atómica si los procesos que la realizan no saben de la existencia de ningún otro proceso activo, y ningún otro proceso activo tiene constancia de las actividades de los procesos durante el tiempo que en el actué están realizando la acción.
Una acción es atómica si los procesos que 1a realizan no se comunican con otros procesos mientras esta siendo realizada la acción.
Una acción es atómica si los procesos que la realizan no pueden detectar ningún cambio de estado salvo aquéllos realizados por ellos mismos, y si no revelan sus cambios tic estado hasta que la acción se haya completado.
Las acciones son atómicas si, en lo que respecta a otros procesos, pueden ser consideradas invisibles e instantáneas, de forma que los efectos sobre el sistema sean como si estuvieran entrelazadas y no en concurrencia.


Aunque una acción atómica se vea como algo indivisible. puede tener estructura interna. Para permitir la descomposición modular de las acciones atómicas se incorpora la noción de acciones atómicas anidadas. Los procesos comprometidos en una acción anidada deben ser un subconjunto de los que están involucrados en el nivel externo de la acción. Si no fuera así. una acción anidada podría pasar información relativa a la acción de nivel externo a un proceso externo.
Entonces, la acción de nivel externo ya no sería indivisible.

                                   TRANSACCIÓN ATÓMICA


La expresión transacciones atómicas se ha utilizado frecuentemente en el marco conceptual de los sistemas operativos y las bases de datos. Una transacción atómica tiene todas las propiedades de una acción atómica, más la característica adicional de que su ejecución puede tener éxito o fallar (no éxito). Por fallo se entiende la ocurrencia de un error del que la transacción no puede recuperarse; por ejemplo, un fallo de procesador. Si falla una acción atómica, los componentes del sistema que están siendo manipulados por la acción pueden terminar en un estado inconsistente.


aunque, desafortunadamente, se tienden a confundir los términos acción atómica y transacción atómica.


Atomicidad de fallo. lo que significa la transacción debe o bien ser completada con éxito, o (en el caso de fallar) no tener efecto.
Atomicidad de sincronización (o aislamiento), lo que significa que la transacción es indivisible, en el sentido de que su ejecución parcial no puede ser observada por ninguna transacción que se este ejecutando concurrentemente.

martes, 12 de junio de 2012

RTOS (licencia GPL) Windows CE


Windows CE (conocido oficialmente como Windows Embedded Compact y anteriormente como Windows Embedded CE,1 también abreviado como WinCE) es un sistema operativo desarrollado por Microsoft para sistemas embebidos. Windows CE no debe confundirse con Windows Embedded Standard, que es un sistema basado en Windows NT; Windows CE está desarrollado independientemente.
La versión actual de Windows Embedded Compact funciona en procesadores Intel x86 y compatibles, además de los tipos MIPS y ARM.
Actualmente lo vemos en teléfonos inteligentes, notebook, hasta en pocket pc y gps.


Windows CE
Desarrollador
Microsoft
http://msdn.microsoft.com/en-ph/embedded/
Información general
Modelo de desarrolloSoftware propietario(núcleo en shared source)
Lanzamiento inicial16 de noviembre de1996
Última versión estable7.0 (info)
1 de marzo de 2011; hace 1 año
Tipo de mercadoPDAteléfonos inteligentes
Escrito enC
Tipo de núcleoMonolítico
Plataformas soportadasx86MIPSARM (SuperHa partir de 6.0 R2)
LicenciaMicrosoft CLUF (EULA)
Estado actualEn desarrollo
IdiomasMultilingüe
En españolSí 

Windows CE es un integrante de la familia Windows que tiene un objetivo especial, proveer un moderno sistema operativo de plataforma cruzada, multihilado y de tamaño pequeño.

Cuando se habla de tamaño, se refiere a la cantidad de memoria y de almacenamiento necesario para albergar al sistema.

Mientras se desarrollaba Windows CE se le dio el nombre de Pegasus y junto a él se estaba diseñando un nuevo dispositivo que lo tendría más tarde como sistema operativo. A este dispositivo se le llamó Handheld PC (HPC) o PC de bolsillo.

Este documento brinda una amplia información sobre todo lo relacionado con este sistema operativo.


FUENTES

RTOS RT Linux y MarteOS.

RTOS RT Linux


¿Qué es un RTOS?
 • Un RTOS es una clase de sistemas operativos que se destinen a tiempo real de aplicaciones

¿Qué es una aplicación en tiempo real?
 • Una aplicación en tiempo real es una aplicación que garantiza tanto la exactitud del resultado y la restricción añadida de conocer a un plazo


RT Linux es un microkernel en hard realtime RTOS que ejecuta el sistema operativo Linux como un proceso totalmente preventiva. Se trata de la variante hard real time de Linux que permite controlar robots, sistemas de adquisición de datos, plantas de fabricación, y otros instrumentos sensibles al tiempo y las máquinas.


Fue desarrollado por Victor Yodaiken (Yodaiken 1999), Michael Barabanov (Barabanov 1996), Cort Dougan y otros en el Instituto Nuevo México de Minería y Tecnología y luego como un producto comercial en FSMLabs. Wind River Systems adquirió la tecnología FSMLabs incrustado en febrero de 2007 e hizo una versión disponible como Wind River en tiempo real Core para Wind River Linux. A partir de agosto de 2011, Wind River, ha dejado de Wind River en tiempo real Core línea de productos, matando con eficacia RTLinux.





CARACTERÍSTICAS
RTLinux proporciona la capacidad de ejecutar tareas especiales en tiempo real y el manejador de interrupciones en la misma máquina como estándar de Linux. Estas tareas y controladores de ejecución cuando se necesitan para ejecutar Linux sin importar lo que está haciendo. El peor de los casos el tiempo entre el momento en que una interrupción de hardware es detectado por el procesador y el momento en un controlador de interrupciones comienza a ejecutar es de menos de 15 microsegundos en RTLinux se ejecutan en un x86 genérico. Una tarea periódica RTLinux se ejecuta dentro de 25 microsegundos de la hora programada en el mismo hardware. Estos horarios son de hardware limitado, y como el hardware mejora RTLinux mejorará también. Linux Standard tiene un rendimiento promedio excelente, e incluso puede proporcionar el nivel de precisión de milisegundos para las tareas de programación que utilizan las capacidades POSIX suaves en tiempo real. Linux Standard no es, sin embargo, diseñada para proporcionar la precisión submillisecond y garantías fiables de tiempo.

Entonces, ¿qué hace un RTOS en especial?
• Un RTOS dispone de instalaciones para
plazos de garantía se cumplirán
• Un RTOS proporcionará programación
algoritmos con el fin de permitir determinista
comportamiento en el sistema
• Un RTOS se valora más la previsibilidad
que el rendimiento


Problemas con Linux 
• El uso de memoria virtual 
• El uso de memoria compartida 
• No es compatible con la herencia de prioridad



MarteOS

    MaRTE OS es un duro en tiempo real del sistema operativo para aplicaciones embebidas que siguen a la mínima en tiempo real POSIX.13 subconjunto. Proporciona un entorno fácil de usar y controlada, se desarrolló Multi-Thread Real-Time. Principales características de MaRTE OS kernel:
  • Soporta aplicaciones mixtas de idiomas en Ada, C y C + + (soporte experimental para Java también).
  • Ofrece los servicios definidos en el POSIX.13: pthreads, exclusiones mutuas condvars, ...
  • Todos los servicios tienen un tiempo de respuesta limitada (incluyendo la asignación de memoria dinámica con tlsf ).
  • Único espacio de direcciones de memoria compartida por la aplicación multi-hilo y sistema operativo MaRTE .
  • Disponible bajo la Licencia Pública General de GNU 2.
  • Sobre la base de la cadena de herramientas GNU AdaCore.
  • Implementa el Ada2005 en real -time annex








FUENTES

martes, 5 de junio de 2012

DIFERENCIAS ENTRE SISTEMAS CONVENCIONALES Y DE TIEMPO REAL (RTOS)



Un Sistema Operativo es un conjunto de programas que controla la ejecución de programas de aplicación y actúa como una interfaz entre el usuario y el hardware de una computadora.

Caracteristicas
Convencional
Tiempo Real
Requiere Determinismo
No
Si
Usos
Generalmente múltiplesActiva
Generalmente hechos para propósitos muy específicos
Restricciones De Tiempo
No
Si
Recuperación ante errores
Check Point
Activa
Objetivo Principal
Dar la ilusión de que usuario o proceso tiene una maquina para si mismo
Minimizar la complejidad para lograra determinismo y evitar la incertidumbre
Capacidad de Proceso
ALTA (Usar todas las características que aumenten la velocidad y eficiencia)
BAJA (Deshabilita características que puede producir indeterminismo  )
Procesador Preferido
Los mas Nuevos
Los mas predecibles a pesar de su tecnología de punta
Tipos de Funciones
Funciones sofisticadas
Funciones predecibles, básicas y rápidas
Importancia de Latencia
Importante que sea Baja
Necesariamente baja
Tiempo de Respuesta
Tan pronto como es posible
Tiempo definido (Si sobrepasa el tiempo se define como fallo)
Eficiencia
Uso de recursos de manara optima
Tiempos de respuesta rápidos
Independencia de tareas
Todas las tareas se ejecutan en la misma Emacs
Cada tarea se ejecuta de forma independiente
Comunicaciones de Red
Generalmente usa Ethernet que es indeterminista
Conexiones o redes deterministas CAN bus o puertos de serie
Gestión de Archivos
Utilización eficiente de recursos
Velocidad de acceso
Planificación
Prioridades dinámicas en función del tiempo que ha esperado un proceso para ser ejecutado
Prioridades fijas con desalojo y protocolo herencia de prioridad
Expropiatividad
Evita Monopolización de sistemas
Planificación expropiativa basada e prioridades
Demanda de Memoria
ALTA
BAJA (Por lo general)
Reparto de Memoria
El tiempo depende de la carga del sistema
Tiempo fijo
Interrupciones
Pueden desactivarse
No se pueden desactivar, ignorar ni hacerla esperar
Tipo de Interrupciones
Interrupciones de time y de E/S del hardware
Interrupciones por eventos
Interrupciones por time y eventos
Atenciones a interrupciones
Las atiende el procesador (Las atiende en primer plano)
Son encargadas a una tarea nueva
Interrupciones anidadas
Se pueden implementar
No se pueden implementar (Se implementan inmediatamente antes de que llegue la siguiente)

miércoles, 14 de marzo de 2012

CONCEPTOS

- TAREA

Tarea puede referirse a:

Trabajo obra.
Deberes especialmente en el sentido de trabajo
En el sentido de computación
Trabajo que debe hacerse en un tiempo determinado.


- LATENCIA

En red. Es el tiempo o lapso necesario para que un paquete de información se transfiera de un lugar a otro. La latencia, junto con el ancho de banda, son determinantes para la velocidad de una red. En memoria. En computación, la latencia de la memoria es el tiempo entre el inicio de la petición por un byte o una palabra en memoria hasta que es efectivamente recibido. Si los datos no están en el caché del procesador, toma más tiempo obtenerlos La latencia es por esto una medida fundamental de la velocidad de memoria: a menor latencia, más rápida es la operación de lectura. La latencia de memoria no debería ser confundida con el ancho de banda de la memoria, que mide la capacidad de procesamiento de la memoria


- PROCESO

En informática, cuando hablamos de proceso nos referimos a un concepto que se maneja dentro del ámbito de los sistemas operativos, como por ejemplo Windows, GNU/Linux, Mac OS X u otros. En este contexto, un proceso se refiere a las instrucciones que ejecutará el microprocesador mientras lee un programa determinado. Esto también implica a la memoria reservada y a sus contenidos,

Un proceso puede informalmente entenderse como un programa en ejecución. Formalmente un proceso es "Una unidad de actividad que se caracteriza por la ejecución de una secuencia de instrucciones, un estado actual, y un conjunto de recursos del sistemas asociados".1

Los procesos son gestionados por el sistema operativo y están formados por:
Las instrucciones de un programa destinadas a ser ejecutadas por el microprocesador.
Su estado de ejecución en un momento dado, esto es, los valores de los registros de la unidad central de procesamiento para dicho programa.
Su memoria de trabajo, es decir, la memoria que ha reservado y sus contenidos.
Otra información que permite al sistema operativo su planificación.
Los procesos son creados y eliminados por el sistema operativo, así como también este se debe hacer cargo de la comunicación entre procesos, pero lo hace a petición de otros procesos



-CONCURRENCIA 

 En computación, la concurrencia es la propiedad de los sistemas que permiten que múltiples procesos sean ejecutados al mismo tiempo, y que potencialmente puedan interactuar entre sí.

Los procesos concurrentes pueden ser ejecutados realmente de forma simultánea, sólo cuando cada uno es ejecutado en diferentes procesadores. En cambio, la concurrencia es simulada si sólo existe un procesador encargado de ejecutar los procesos concurrentes, simulando la concurrencia, ocupándose de forma alternada en uno y otro proceso a pequeñísimos intervalos de tiempo. De esta manera simula que se están ejecutando a la vez.

Fuentes:
http://www.alegsa.com.ar/Dic/latencia%20de%20memoria.php
http://es.thefreedictionary.com/tarea
http://es.wikipedia.org/wiki/Proceso_(inform%C3%A1tica)
http://www.mastermagazine.info/termino/6377.php
http://www.alegsa.com.ar/Dic/concurrencia.php 

lunes, 5 de marzo de 2012

Ejemplo De Sistema En Tiempo Real

este sistema de tiempo real cambia sus parámetros mediante la posición donde se encuentre el vehículo en el planeta y funciona con los satélites y los mapas digitales de esta manera da un tiempo de respuesta parcial mediante el cambio de posición (estimulo o cambio en el ambiente)

Vídeos de sistemas en tiempo real

En los vídeos visto en clase el primer vídeo del péndulo invertido es un sistema de tiempo real por que tiene que esta cambiando sus parámetros constante mente para mantener la pequeña barra en equilibrio. esta barra esta sujeta a un pequeño brazo mecánico que se mueve de forma circular de tal manera de que la barra sufre cambios de ángulos y posición para mantenerla de "pie" por así decirlo.


¿Por qué se consideran como sistemas de tiempo real?.por este sistema tiene un tiempo de respuesta como es el que dicta la definición de tiempo real y por que reacciona ante un cambio o estimulo cada bes que la barra en equilibrio sufría un cambio el braso rotaba de tal manera para volverlo a poner de "pie" como lo muestra el video








martes, 28 de febrero de 2012

DETERMINISTA

DETERMINISTA

Doctrina filosófica que preconiza la tesis que entre todos los acontecimientos hay una relación ineludible de causa a efecto, especialmente en cuanto a herencia y ambiente como condicionantes de las posibilidades del ser humano, el que de ninguna manera puede sustraerse a esta relación preestablecida. Se le opone la doctrina del libre albedrío.

El determinismo es una doctrina filosófica que afirma que todo suceso que acontece está determinado por una causa y que no existe el azar.
Se consideran generalmente dos tipos de determinismo, uno estricto (afirma la inexistencia del azar y que todo suceso es causal) y uno más flexible (afirma la causalidad de los hechos pero admite la existencia de algunos eventos azarosos).

Sistema determinista


Un sistema determinista es aquel en el que no está presente el azar y al conocer el estado actual del sistema es posible determinar sin riesgo de error cómo reaccionará al sistema ante determinado cambio en el entorno, por lo que todos los posibles cambios que pueda tener dicho sistema ante cierto estímulo son conocidos y no dejan lugar a la incertidumbre.



Referencias: 
http://www.definicion.org/determinismo
http://es.wikipedia.org/wiki/Determinismo

Hard Real Time Systems y Soft Real Time Systems


Hard Real Time Systems y Soft Real Time Systems


Sistemas de Tiempo Real


Sistemas de tiempo real abarcan varios ámbitos de la informática. Son sistemas de defensa y del espacio, sistemas de red, multimedia, etc incorporado la electrónica AUTOMATIVE En un sistema en tiempo real de la corrección del comportamiento del sistema depende no sólo de los resultados lógicos de los cálculos, sino también en el instante físico en el que se producen estos resultados . Un sistema en tiempo real cambia su estado como una función del tiempo físico, por ejemplo, una reacción química continúa para cambiar su estado, incluso después de su sistema de ordenador de control se ha detenido. Basado en este sistema un tiempo real se puede descomponer en un conjunto de subsistemas es decir, el objeto controlado, el sistema informático en tiempo real y el operador humano. Un sistema informático en tiempo real debe reaccionar a los estímulos del objeto controlado (o el operador) en intervalos de tiempo impuestas por su entorno. En el instante en que se produce un resultado se llama una fecha límite. Si el resultado tiene una utilidad, incluso después de que el plazo ha expirado, el plazo se clasifica como suave, de lo contrario, es firme. Si una catástrofe podría ocurrir si una fecha límite se pierde, el plazo es difícil. Los comandos y sistemas de control, sistemas de control aéreo son ejemplos de duros sistemas de tiempo real. Los sistemas en línea de las transacciones, los sistemas de reservas de aerolíneas son suaves sistemas de tiempo real.



Conceptos clave


Criterios para la computación en tiempo real

Un sistema se dice que es en tiempo real si la corrección total de una operación no sólo depende de su corrección lógica, sino también en el momento en que se realiza. Sistemas de tiempo real, así como sus plazos, se clasifican por la consecuencia de no cumplir un plazo.DuroFalta una fecha límite es un fallo total del sistema.FirmaFallos poco frecuentes fecha límite es tolerable, pero puede degradar la calidad del sistema de servicio. La utilidad de un resultado es cero después de su fecha límite.SuaveLa utilidad de un resultado degrada después de su plazo, por lo tanto la calidad degradantes del sistema de servicio.

Por lo tanto, la meta de un duro en tiempo real del sistema es asegurar que todos los plazos se cumplen, pero por suaves sistemas de tiempo real se convierte en el objetivo de alcanzar un cierto subconjunto de los plazos a fin de optimizar algunos de los criterios de aplicación específicos. Los criterios particulares optimizados depende de la aplicación, pero algunos ejemplos típicos son la maximización del número de plazos cumplidos, lo que minimiza el retraso de las tareas y maximizar el número de tareas de alta prioridad para cumplir con sus plazos.

Clasificación de Sistemas de Tiempo Real

Sistemas de tiempo real se pueden clasificar [Kopetz97] desde diferentes perspectivas. Las dos primeras clasificaciones, de tiempo real en comparación con suave en tiempo real, y prueba de fallos contra no-operativa, dependerá de las características de la aplicación, es decir, de factores externos al sistema informático. Las otras tres clasificaciones, con garantía de puntualidad versus el mejor esfuerzo, los recursos adecuados frente al inadecuado de los recursos, y activado por eventos en función del tiempo-activa, dependerá del diseño y la ejecución, es decir, de factores dentro del sistema informático. Sin embargo, este documento se centra en las diferencias entre duros y blandos en tiempo real de la clasificación.



Hard Real-Time  contra Soft Real-Time

Tabel 1 muestra las principales diferencias entre duros y blandos sistemas de tiempo real. Los requisitos de tiempo de respuesta de duros sistemas en tiempo real son del orden de milisegundos o menos, y puede resultar en una catástrofe si no se cumplen. En contraste, los requisitos de tiempo de respuesta de blandos sistemas en tiempo real son más altos y no estrictas muy. En un duro en tiempo real del sistema, el rendimiento máximo de carga deben ser previsibles y no debe violar los plazos predefinidos. En una suave sistema en tiempo real, un funcionamiento degradado en una carga pico raramente ocurre puede ser tolerada. Un duro en tiempo real del sistema debe permanecer sincrónico con el estado del medio ambiente en todos los casos. En el otherhand blandos sistemas en tiempo real se ralentizará su tiempo de respuesta si la carga es muy alta. Hard sistemas de tiempo real son a menudo críticos para la seguridad. Hard sistemas de tiempo real tienen pequeños ficheros de datos y bases de datos en tiempo real. La precisión temporal es a menudo la preocupación en este caso. Soft sistemas de tiempo real, por ejemplo, los sistemas en línea de reserva tienen grandes bases de datos y requieren a largo plazo la integridad de los sistemas de tiempo real. Si se produce un error en una suave y en tiempo real del sistema, el cálculo se deshace de un puesto de control establecido con anterioridad para iniciar una acción de recuperación. En duros sistemas de tiempo real, roll-back/recovery es de uso limitado.






Característica
Hard real-time
Soft real-time
Tiempo de respuesta
Requerido
Deseado
Rendimiento máximo de carga
Predecible
Degradado
Control de ritmo
Entorno
Computadora
Seguridad
A menudo crítica
No crítica
Tipo de redundancia
Activa
Checkpoint-recovery
Detección de errores
Autónoma
Asistida por el usuario




Planificación de tiempo real

Un duro en tiempo real del sistema debe ejecutar un conjunto de concurrentes en tiempo real las tareas de un modo que todas las tareas de tiempo crítico cumplir los plazos especificados. Cada tarea requiere de recursos computacionales y los datos para completar el trabajo. El problema de programación se refiere a la asignación de los recursos para satisfacer las limitaciones de tiempo. Figura 2 a continuación representa una taxonomía de los algoritmos de programación en tiempo real.
 

En tiempo real la programación se pueden clasificar en blandas vs duro. Duro en tiempo real la programación se puede utilizar para suave planificación en tiempo real. Algunas de las investigaciones sobre la calidad de servicio [
 Klara95 ] aborda este problema en detalle y no está cubierto aquí. El presente trabajo se centra en la programación de algoritmos de tiempo real estricto.




Referencia de consulta
  

PRESENTACION


Presentación

Glog creado por el alumno Diego Juarez Carranza  para la materia de Programación en Tiempo Real del semestre de la Facultad de Ingeniería Eléctrica (FIE) de U.M.S.N.H.



TEMAS DE ESTUDIO DEL CURSO QUE SE VERAN EN EL BLOG

  • Introducción a los sistemas en tiempo real.
  • Restricciones de la programación en tiempo real.
  • Planificación de prioridades.
  • Planificación de tiempos.
  • Manejo de recursos.
  • Sincronización.
  • Confiabilidad.
  • Sistemas Operativos en Tiempo Real.
  • Aplicaciones.