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)