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 desarrollo | Software propietario(núcleo en shared source) |
| Lanzamiento inicial | 16 de noviembre de1996 |
| Última versión estable | 7.0 (info) 1 de marzo de 2011; hace 1 año |
| Tipo de mercado | PDA, teléfonos inteligentes |
| Escrito en | C |
| Tipo de núcleo | Monolítico |
| Plataformas soportadas | x86, MIPS, ARM (SuperHa partir de 6.0 R2) |
| Licencia | Microsoft CLUF (EULA) |
| Estado actual | En desarrollo |
| Idiomas | Multilingüe |
| En español | |
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
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.• 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
- 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
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:
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)
|
Suscribirse a:
Comentarios (Atom)