conceptes avanÇats de sistemes operatius departament darquitectura de computadors (seminaris de...

27
CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament d’Arquitectura de Computadors (Seminaris de CASO) Autors QNX (Un ejemplo de SOTR) Javier Sebastián Carretero Casado Ricard Pascual Pijoan Antonio Juan Prieto Jiménez

Upload: angelita-lacerda

Post on 22-Jan-2015

17 views

Category:

Documents


8 download

TRANSCRIPT

Page 1: CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament dArquitectura de Computadors (Seminaris de CASO) Autors QNX (Un ejemplo de SOTR) Javier Sebastián

CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament d’Arquitectura de Computadors

(Seminaris de CASO)

Autors

QNX (Un ejemplo de SOTR)

Javier Sebastián Carretero Casado

Ricard Pascual Pijoan

Antonio Juan Prieto Jiménez

Page 2: CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament dArquitectura de Computadors (Seminaris de CASO) Autors QNX (Un ejemplo de SOTR) Javier Sebastián

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament. d’Arquitectura de Computadors - UPC

2

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.

Page 3: CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament dArquitectura de Computadors (Seminaris de CASO) Autors QNX (Un ejemplo de SOTR) Javier Sebastián

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament. d’Arquitectura de Computadors - UPC

3

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 …

Page 4: CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament dArquitectura de Computadors (Seminaris de CASO) Autors QNX (Un ejemplo de SOTR) Javier Sebastián

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament. d’Arquitectura de Computadors - UPC

4

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)

Page 5: CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament dArquitectura de Computadors (Seminaris de CASO) Autors QNX (Un ejemplo de SOTR) Javier Sebastián

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament. d’Arquitectura de Computadors - UPC

5

La filosofía de QNX

Page 6: CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament dArquitectura de Computadors (Seminaris de CASO) Autors QNX (Un ejemplo de SOTR) Javier Sebastián

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament. d’Arquitectura de Computadors - UPC

6

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)

La filosofía de QNX

Page 7: CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament dArquitectura de Computadors (Seminaris de CASO) Autors QNX (Un ejemplo de SOTR) Javier Sebastián

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament. d’Arquitectura de Computadors - UPC

7

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).

Page 8: CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament dArquitectura de Computadors (Seminaris de CASO) Autors QNX (Un ejemplo de SOTR) Javier Sebastián

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament. d’Arquitectura de Computadors - UPC

8

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.

Page 9: CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament dArquitectura de Computadors (Seminaris de CASO) Autors QNX (Un ejemplo de SOTR) Javier Sebastián

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament. d’Arquitectura de Computadors - UPC

9

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.

MicroKernel

Page 10: CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament dArquitectura de Computadors (Seminaris de CASO) Autors QNX (Un ejemplo de SOTR) Javier Sebastián

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament. d’Arquitectura de Computadors - UPC

10

MicroKernel

Page 11: CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament dArquitectura de Computadors (Seminaris de CASO) Autors QNX (Un ejemplo de SOTR) Javier Sebastián

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament. d’Arquitectura de Computadors - UPC

11

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.

Page 12: CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament dArquitectura de Computadors (Seminaris de CASO) Autors QNX (Un ejemplo de SOTR) Javier Sebastián

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament. d’Arquitectura de Computadors - UPC

12

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)

Page 13: CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament dArquitectura de Computadors (Seminaris de CASO) Autors QNX (Un ejemplo de SOTR) Javier Sebastián

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament. d’Arquitectura de Computadors - UPC

13

Comunicación entre procesos

Page 14: CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament dArquitectura de Computadors (Seminaris de CASO) Autors QNX (Un ejemplo de SOTR) Javier Sebastián

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament. d’Arquitectura de Computadors - UPC

14

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

Page 15: CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament dArquitectura de Computadors (Seminaris de CASO) Autors QNX (Un ejemplo de SOTR) Javier Sebastián

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament. d’Arquitectura de Computadors - UPC

15

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.

Page 16: CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament dArquitectura de Computadors (Seminaris de CASO) Autors QNX (Un ejemplo de SOTR) Javier Sebastián

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament. d’Arquitectura de Computadors - UPC

16

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.

Page 17: CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament dArquitectura de Computadors (Seminaris de CASO) Autors QNX (Un ejemplo de SOTR) Javier Sebastián

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament. d’Arquitectura de Computadors - UPC

17

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.

Page 18: CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament dArquitectura de Computadors (Seminaris de CASO) Autors QNX (Un ejemplo de SOTR) Javier Sebastián

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament. d’Arquitectura de Computadors - UPC

18

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.

Page 19: CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament dArquitectura de Computadors (Seminaris de CASO) Autors QNX (Un ejemplo de SOTR) Javier Sebastián

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament. d’Arquitectura de Computadors - UPC

19

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.

Page 20: CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament dArquitectura de Computadors (Seminaris de CASO) Autors QNX (Un ejemplo de SOTR) Javier Sebastián

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament. d’Arquitectura de Computadors - UPC

20

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.

Page 21: CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament dArquitectura de Computadors (Seminaris de CASO) Autors QNX (Un ejemplo de SOTR) Javier Sebastián

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament. d’Arquitectura de Computadors - UPC

21

Cola de prioridades

Scheduling de procesos

Page 22: CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament dArquitectura de Computadors (Seminaris de CASO) Autors QNX (Un ejemplo de SOTR) Javier Sebastián

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament. d’Arquitectura de Computadors - UPC

22

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.

Scheduling de procesos

Page 23: CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament dArquitectura de Computadors (Seminaris de CASO) Autors QNX (Un ejemplo de SOTR) Javier Sebastián

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament. d’Arquitectura de Computadors - UPC

23

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.

Page 24: CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament dArquitectura de Computadors (Seminaris de CASO) Autors QNX (Un ejemplo de SOTR) Javier Sebastián

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament. d’Arquitectura de Computadors - UPC

24

Gestión de Interrupciones Latencia de interrupciones según procesador

3.3 microsec Pentium de 166 MHz

4.4 microsec Pentium de 100 MHz

5.6 microsec 486DX4 de 100 MHz

22.5 microsec 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.

Page 25: CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament dArquitectura de Computadors (Seminaris de CASO) Autors QNX (Un ejemplo de SOTR) Javier Sebastián

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament. d’Arquitectura de Computadors - UPC

25

Gestión de Interrupciones

- Al finalizar la atención a una interrupción, el Gestor puede mandar un proxy a otro proceso para que se active

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.

Page 26: CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament dArquitectura de Computadors (Seminaris de CASO) Autors QNX (Un ejemplo de SOTR) Javier Sebastián

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament. d’Arquitectura de Computadors - UPC

26

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 scheduling4.7 microsec Pentium de 166 MHz

6.7 microsec Pentium de 100 MHz

11.1 microsec 486DX4 de 100 MHz

74.2 microsec 386EX de 33 MHz

Page 27: CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament dArquitectura de Computadors (Seminaris de CASO) Autors QNX (Un ejemplo de SOTR) Javier Sebastián

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament. d’Arquitectura de Computadors - UPC

27

Bibliografia

http://support.qnx.com/support/docs/qnx4/sysarch/proc.htm

Documentación de CASO