CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament d’Arquitectura de Computadors
QNX (Un ejemplo de SOTR)
(Seminaris de CASO)
Autors
Javier Sebastián Carretero Casado
Ricard Pascual Pijoan
Antonio Juan Prieto Jiménez
La filosofía de QNX
Las aplicaciones de tiempo real dependen del
sistema operativo para manipular eventos
múltiples dentro de restricciones fijas de tiempo.
 QNX es ideal para las aplicaciones de tiempo
real. Proporciona multitarea, planificación por
prioridades con desalojo, y rápido cambio de
contexto.
 Flexible, robusto, escalable y fácil de
personalizar.

– Pueden añadirse funcionalidades (p.e: drivers) sin
adquirir una nueva versión del producto.
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
2
La filosofía de QNX
Su API cumple el estándar POSIX.
 Los SO de tiempo real se caracterizan por una
ausencia de estándars. QNX propone :

-Estándar POSIX 1003.1, que define la API para la
gestión de procesos, dispositivos, y sistemas de
ficheros y IPC básica. (Funcionalidades básicas) .
-Extensiones para tiempo real : semáforos,
planificación prioritaria de procesos, control del reloj
mayor, primitivas IPC mejoradas.
-Threads …
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
3
La filosofía de QNX

QNX consigue su eficiencia, modularidad y
simplicidad gracias a 2 principios:
- Una arquitectura microkernel
- Comunicación de procesos basada en paso de
mensajes.

La arquitectura del Microkernel de QNX:
– Microkernel muy pequeño que, básicamente, se
dedica al intercambio de mensajes (asignación de la
ruta) y a la planificación de procesos (se invoca
cuando un proceso cambia de estado, por una
interrupción o por un mensaje)
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
4
La filosofía de QNX
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
5
La filosofía de QNX

Los servicios, excepto los del microkernel, los
ofrecen procesos:
–
–
–
–
Administrador de procesos (Proc)
Administrador del sistema de archivos (Fsys)
Administrador de dispositivos (Dev)
Administrador de red (Net)
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
6
La filosofía de QNX

Primer S.O. Comercial de su tipo en utilizar
intercambio de mensajes (IPC).
– QNX no presta atención al contenido del mensaje.
– IPC también proporciona mecanismos de
sincronización entre varios procesos.

QNX como una red:
– Permite el acceso por parte de los procesos a todos
los recursos de la red de manera transparente.
– Los usuarios pueden acceder a archivos en cualquier
parte en la red, aprovechar dispositivos y periféricos, y
ejecutar aplicaciones en cualquier máquina en la red
(siempre que tengan la autorización apropiada).
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
7
La filosofía de QNX

Soporte para SMP (Symmetric Multi-Processing)
– Soporta hasta 8 procesadores Pentium.
– Para añadir esta funcionalidad tan solo hay que
modificar el microkernel, de manera que los procesos
que implementan las demás funcionalidades del
sistema se beneficien automáticamente.
– Mejora aún más si los procesos son MultiThreads.
– Al modificar solo el microkernel, el añadir esta
funcionalidad hace que el código tan solo aumente
unos pocos kilobytes.
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
8
MicroKernel

El MicroKernel es responsable de lo siguiente:
- IPC - gestión de mensajes proxies y señales.
- La comunicación de la red a bajo nivel - gestión de
mensajes destinados a procesos en otros nodos
- Scheduling de procesos - orden de ejecución de
procesos.
- Gestión de interrupciones del primer nivel - todas las
interrupciones hardware y fallos primero deben pasar
por el Microkernel y luego se pasan al driver o
administrador de sistema.
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
9
MicroKernel
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
10
Comunicación entre procesos

El microkernel de QNX soporta 3 tipos de IPC:
– Mensajes:
• La forma fundamental de IPC en QNX. Requiere confirmación
del receptor y, posiblemente, contestación.
– Proxies:
• Una forma especial de mensaje. Preparado para notificar
eventos donde el proceso que lo envía no necesita actuar
recíprocamente con el destinatario.
– Señales (Signals):
• Una forma tradicional de IPC. Se utiliza para comunicar
procesos asíncronamente.
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
11
Comunicación entre procesos

IPC vía mensajes
– Paquete de bytes que se transmite de manera
síncrona entre dos procesos.
– Utiliza las primitiva Send(), Receive() y Reply() (para
contestar al proceso que ha mandando el mensaje)
• Pueden usarse tanto localmente como por la red
• Son bloqueantes
– Adicionalmente QNX ofrece facilidades como:
• Recepción condicional de mensajes
• Leer/escribir partes de mensajes
• Mandar mensajes por partes (optimiza E/S)
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
12
Comunicación entre procesos
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
13
Comunicación entre procesos

IPC via proxies
– Comunicación asíncrona entre procesos (notificación
de eventos). No bloqueante
– Los mensajes también pueden mandarse por la red
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
14
Comunicación entre procesos

IPC vía señales (signals)
– Sistema típico para la comunicación asíncrona
– Soporta un gran conjunto de signals POSIX, algunos
tradicionales de UNIX y algunos específicos de QNX
– Al recibir un signal, el proceso puede:
• No hacer nada. Se ejecuta la acción por defecto (lo mata)
• Ignorarlo (excepto SIGCONT, SIGKILL, y SIGSTOP)
• Capturarlo y actuar en consecuencia
– Si llegan varios signals en un momento dado, el
proceso no puede asumir ningún orden de llegada.
– Permite bloquear signals.
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
15
Comunicación de la red
QNX ofrece transparencia en la comunicación
con procesos remotos.
 Para lograrlo utiliza circuitos virtuales (VC), qué
son los caminos que el Administrador de Red
proporciona para transmitir mensajes, proxies y
señales por la red.
 Cuando un proceso quiere comunicarse con un
proceso remoto este hace una llamada a
sistema (qnx_vc_attach()) que crea un circuito
virtual y dos procesos virtuales en cada extremo
del circuito.

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
16
Comunicación de la red

Ejemplo de comunicación en la red:
Un proceso en el nodo 20(PID 1) quiere enviar un mensaje a otro
proceso en el nodo 40(PID 2) y crea un circuito virtual. El proceso PID
1 primero envía el mensaje a su proceso virtual, luego este envía el
mensaje al segundo proceso virtual que finalmente retransmite el
mensaje al proceso PID 2.
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
17
Comunicación de la red

Proxy virtual
Un proxy virtual se crea mediante la llamada
qnx_proxy_rem_attach() que recibe como parámetros el
nodo remoto y un proxy local. Permite que cualquier
proceso del nodo remoto pueda lanzar proxies al
proceso que lo crea.
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
18
Comunicación de la red

Integridad de los circuitos virtuales
El Administrador de Red controla cada cierto tiempo la
integridad de los circuitos virtuales para evitar errores en
la comunicación. Para conseguirlo realiza lo siguiente:
- Actualiza el último acceso al circuito virtual.
- En distintos intervalos de tiempo comprueba si el circuito está
en uso, si no lo usa nadie comprueba enviando un mensaje al
Administrador de Red del otro extremo si el circuito continua
activo.
- Sino recibe mensaje o recibe una notificación de error intenta
restablecer la comunicación.
- Sino lo consigue desbloquea todos los procesos bloqueados en
el circuito virtual y les devuelve un código de error.
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
19
Scheduling de procesos
El scheduler del MicroKernel toma decisiones
de planificación cuando un proceso se bloquea,
el quantum de un proceso expira o un proceso
se desaloja.
 Selecciona el proceso con prioridad más alta
que se encuentra en la cola de procesos
preparados para ejecutarse.
 En caso de empate, QNX proporciona tres
métodos de planificación: FIFO, Round-robin y
Adaptativa.

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
20
Scheduling de procesos
Cola de prioridades
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
21
Scheduling de procesos

Planificación adaptativa
Si un proceso consume su quantum (sin bloquearse), su
prioridad se reduce 1 unidad. Si continua siendo el
proceso con mayor prioridad seguirá ejecutándose
aunque no reducirá más su prioridad. El proceso vuelve
a su prioridad original cuando se bloquea.
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
22
Gestión de Interrupciones
En un RTSO es esencial minimizar el tiempo
entre que se sucede un evento y que lo recibe el
programa responsable de actuar.
 Este tiempo se conoce como latencia:

– Es el tiempo entre que se produce la interrupción
hasta que se ejecuta la primera instrucción del Gestor
de interrupciones software.
– QNX habilita las interrupciones el máximo de tiempo
posible. Aunque en algunas regiones críticas las
inhabilita. De todas maneras, en QNX la latencia es
muy pequeña.
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
23
Gestión de Interrupciones

Latencia de interrupciones según procesador
3.3 microsec
4.4 microsec
5.6 microsec
22.5 microsec

Pentium de 166 MHz
Pentium de 100 MHz
486DX4 de 100 MHz
386EX de 33 MHz
QNX soporta interrupciones de distinta prioridad
– Mientras se atiende una interrupción, si llega otra más
prioritaria pasa a atender a la nueva.
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
24
Gestión de Interrupciones
Process A is running.
Interrupt IRQx causes interrupt
handler Intx to run, which is
preempted by IRQy and its handler
Inty. Inty triggers a proxy causing
Process B to run; Intx triggers a
proxy causing Process C to run.
- Al finalizar la atención a una interrupción, el Gestor
puede mandar un proxy a otro proceso para que se
active
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
25
Gestión de Interrupciones

La gestión de interrupciones también afecta a la
planificación de procesos.
– Al producirse una interrupción tiene que cargarse el
proceso del driver (cambio de contexto). Es costoso,
pero en QNX es bastante rápido.

Latencia de scheduling
4.7 microsec
6.7 microsec
11.1 microsec
74.2 microsec
Pentium de 166 MHz
Pentium de 100 MHz
486DX4 de 100 MHz
386EX de 33 MHz
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
26
Bibliografia

http://support.qnx.com/support/docs/qnx4/sysarc
h/proc.htm

Documentación de CASO
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
27
Descargar

Document