QNX: una visión general.

44
CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament d’Arquitectura de Computadors (Seminaris de CASO) Autors QNX: una visión general. Daniel García Lugo Miguel Tomás Ozalla Xavier Teruel García

description

Daniel García Lugo Miguel Tomás Ozalla Xavier Teruel García. QNX: una visión general. Contenido. 1. Introducción. 2. Caracteristicas. 3. Arquitectura Microkernel: 3.1. Paso de mensajes (IPC). 3.2. Planificación (scheduling). 4. Procesos de Sistema: 4.1. Administrador de Procesos (Proc). - PowerPoint PPT Presentation

Transcript of QNX: una visión general.

Page 1: QNX: una visión general.

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

(Seminaris de CASO)

Autors

QNX: una visión general.

Daniel García Lugo

Miguel Tomás Ozalla

Xavier Teruel García

Page 2: QNX: una visión general.

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

2

Contenido 1. Introducción. 2. Caracteristicas. 3. Arquitectura Microkernel:

– 3.1. Paso de mensajes (IPC).– 3.2. Planificación (scheduling).

4. Procesos de Sistema:– 4.1. Administrador de Procesos (Proc).– 4.2. Administrador del Sistema de Ficheros (Fsys).– 4.3. Administrador de Dispositivos (Dev).– 4.4. Administrador de Red (Net).

Page 3: QNX: una visión general.

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

(Seminaris de CASO)

Autors

Parte 1: Introducción

Page 4: QNX: una visión general.

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

4

Introducción: Contenido. 1.1. Ficha Técnica.

– ¿Que es QNX? 1.2. Objetivos. 1.3. Historia. 1.4. Empresas Clientes.

Page 5: QNX: una visión general.

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

5

Introducción: Ficha Tecnica. ¿Que és? : Sistema Operativo en Tiempo Real

– Multiproceso.– Multiusuario.

Empresa : QNX Software Systems Sus inicios : 1.981. Versiones actuales:

– QNX 4.25 (1.999) (Presentada)– QNX 6.1 (2.001)

Page 6: QNX: una visión general.

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

6

Introducción: Objetivos. Mayor funcionalidad utilizando menos memoria. Completa Escalabilidad. Alto rendimiento. Conectividad totalmente integrada. Estricta adaptacion a los standards (POSIX). Soporte a las innovaciones tecnologicas (PC´s). Soporte multiplataforma. Transparencia en trabajo en red.

Page 7: QNX: una visión general.

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

7

Introducción: Historia. 1981 : Primer S.O. microkernel para PC´s. 1983 : Primer S.O. ejecutado sobre 80286 en modo

protegido. 1984 : Primer S.O. para PC que ofrece transparencia en

procesamiento distribuido 1990 : Primer microkernel en Tiempo Real con certificado

POSIX. 1996 : Aparece el microkernel Neutrino. Utilizado en la

version 6.1.

Page 8: QNX: una visión general.

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

8

Introducción: Empresas Clientes. Alcatel Ford motor company Honda IBM Mitsubishi Motorola Siemens Sony Visa

Page 9: QNX: una visión general.

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

(Seminaris de CASO)

Autors

Parte 2: Características.

Page 10: QNX: una visión general.

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

10

Caracteristicas: Contenido. 2.1. Filosofia. 2.2. Arquitectura Microkernel.

– Microkernel.– Procesos de Sistema.

Page 11: QNX: una visión general.

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

11

Caracteristicas: Filosofia. Diseñado para aplicaciones en tiempo real S.O. multiproceso y multiusuario (rapido cambio de

contexto) Planificacion de procesos por prioridades:

– FIFO– Round-Robin– Planificacion adaptativa

Principios fundamentales:– Basado en arquitectura Microkernel– Comunicacion entre procesos basada en paso de mensajes

Page 12: QNX: una visión general.

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

12

Caracteristicas: Arquitectura Microkernel. Microkernel:

– Paso de mensajes (IPC).– Planificacion (scheduling).

Procesos de sistema (subsistemas):– Administrador de Procesos (Proc)– Administrador del Sistema de Ficheros (Fsys)– Administrador de Dispositivos (Dev)– Administrador de Red (Net)

Page 13: QNX: una visión general.

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

13

Caracteristicas: Arquitectura Microkernel (cont.)

Page 14: QNX: una visión general.

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

(Seminaris de CASO)

Autors

Parte 3: Arquitectura Microkernel.

Page 15: QNX: una visión general.

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

15

Microkernel: Contenido. 3.1. Responsabilidades. 3.2. IPC via mensajes. 3.3. IPC via proxies. 3.4. IPC via signals. 3.5. IPC via semaforos. 3.6. Planificador de Procesos.

– FIFO.– Round-Robin.– Prioridad Adaptativa.

Page 16: QNX: una visión general.

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

16

Microkernel : Responsabilidades. Supervision del encaminamiento de mensajes.

– Mensajes.– Proxies.– Signals.– Semaforos.

IPC a traves de la red, mediante:– Circuito Virtual, Proceso Virtual y Proxy Virtual.

Comunicacion a bajo nivel con la red. Planificacion de procesos. Manejo de las interrupciones de primer nivel.

Page 17: QNX: una visión general.

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

17

Microkernel : Responsabilidades (cont.)

Page 18: QNX: una visión general.

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

18

Microkernel : IPC via mensajes. Fundamental para comunicacion entre procesos en QNX. Trabaja a traves de la red. Primitivas:

– Send( )– Receive( )– Reply( )

Page 19: QNX: una visión general.

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

19

Microkernel : IPC via mensajes (cont.)

Page 20: QNX: una visión general.

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

20

Microkernel : IPC via mensajes (cont.)

Page 21: QNX: una visión general.

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

21

Microkernel : IPC via proxies. Modo no bloqueante de comunicación. Utilizado especialmente para la notificacion de eventos. Trabaja a traves de la red. Primitivas:

– qnx_proxy_attach()– Trigger()

Page 22: QNX: una visión general.

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

22

Microkernel : IPC via proxies (cont.) Ejemplos de utilizacion de proxies:

– Un proceso quiere notificar a otro proceso que un evento ha ocurrido.

– Un proceso necesita enviar informacion a otro proceso. (Sin respuesta, sin confirmacion).

– El controlador de interrupciones comunica a otro proceso que hay datos para procesar.

Page 23: QNX: una visión general.

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

23

Microkernel : IPC via proxies (cont.)

Page 24: QNX: una visión general.

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

24

Microkernel : IPC via signals. Metodo asincrono de comunicacion entre procesos Comportamiento ante un signal:

– Accion por defecto.– Ignorar.– Programar el signal.

Page 25: QNX: una visión general.

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

25

Microkernel : signals - primitivas SIGABRT Abnormal termination signal such as issued by the abort() function. SIGALRM Timeout signal such as issued by the alarm() function. SIGBUS Indicates a memory parity error (QNX-specific interpretation). Note that if a

second fault occurs while your process is in a signal handler for this fault, the process will be terminated.

SIGCHLD Child process terminated. The default action is to ignore the signal. SIGCONT Continue if HELD. The default action is to ignore the signal if the process

isn't HELD. SIGDEV Generated when a significant and requested event occurs in the Device

Manager. SIGFPE Erroneous arithmetic operation (integer or floating point), such as division

by zero or an operation resulting in overflow. Note that if a second fault occurs while your process is in a signal handler for this fault, the process will be terminated.

Page 26: QNX: una visión general.

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

26

Microkernel : signals - primitivas (cont.) SIGHUP Death of session leader, or hangup detected on controlling terminal. SIGILL Detection of an invalid hardware instruction. Note that if a second fault

occurs while your process is in a signal handler for this fault, the process will be terminated.

SIGINT Interactive attention signal (Break) SIGKILL Termination signal - should be used only for emergency situations. This

signal cannot be caught or ignored. Note that a server with superuser privileges may protect itself from this signal via the qnx_pflags() function.

SIGPIPE Attempt to write on a pipe with no readers. SIGPWR Soft boot requested via Ctrl -Alt -Shift -Del or shutdown utility. SIGQUIT Interactive termination signal.

Page 27: QNX: una visión general.

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

27

Microkernel : signals - primitivas (cont.) SIGSTOP HOLD process signal. The default action is to hold the process. Note that

a server with superuser privileges may protect itself from this signal via the qnx_pflags() function.

SIGTERM Termination signal. SIGTSTP Not supported by QNX. SIGTTIN Not supported by QNX. SIGTTOU Not supported by QNX. SIGUSR1 Reserved as application-defined signal 1. SIGUSR2 Reserved as application-defined signal 2. SIGWINCH Window size changed.

Page 28: QNX: una visión general.

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

28

Microkernel : IPC via semaforos. Metodo común de sincronización. Permite la creacion de semaforos (mutex…). Primitivas:

– sem_post( ): equivalente a signal.– sem_wait( ): equivalente a wait.

Page 29: QNX: una visión general.

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

29

Microkernel : Planificador de procesos. Toma decisiones cuando:

– un proceso se desbloquea.– se le acaba el tiempo de ejecucion a un proceso.– un proceso en estado running es apropiado.

Scheduling de prioridad con apropiacion inmediata:– FIFO.– Round-Robin.– Adaptativo: cuando se consume el quantum decrementa su

prioridad.

Page 30: QNX: una visión general.

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

30

Microkernel : Planificación FIFO.

El proceso continua ejecutandose hasta:– Voluntariamente sale de ejecucion (llamada al sistema).– Un proceso de prioridad mas alta se apropia de la CPU.

Page 31: QNX: una visión general.

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

31

Microkernel : Planificación Round-Robin.

El proceso continua ejecutandose hasta:– Voluntariamente sale de ejecucion (llamada al sistema).– Un proceso de prioridad mas alta se apropia de la CPU.– Termina su timeslice (quantum).

Page 32: QNX: una visión general.

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

32

Microkernel : Planificación Adaptativa.

Basado en Round-Robin:– Si el proceso consume su

timeslice su prioridad se reduce en 1 unidad. (decay).

– Si el proceso se bloquea recupera su prioridad original.

Page 33: QNX: una visión general.

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

(Seminaris de CASO)

Autors

Parte 4 : Procesos de Sistema.

Page 34: QNX: una visión general.

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

34

Procesos de Sistema: Contenido. 4.1. Administrador de Procesos (Proc).

– Responsabilidades, ciclo de vida de un proceso, nombres simbolicos de procesos...

4.2. Administrador del Sistema de Ficheros (Fsys).– Vision general del Sistema de Ficheros, extensiones...

4.3. Administrador de Dispositivos (Dev). 4.4. Administrador de Red (Net).

– Envio y recepcion de mensajes.

Page 35: QNX: una visión general.

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

35

Admin. Procesos : Responsabilidades. Es el unico proceso que comparte espacio de

direccionesdel microkernel. Crear nuevos procesos de la misma manera en nodos

locales y remotos (a traves del paso de mensajes) Administrar los recursos fundamentales asociados a un

proceso Primitivas:

– fork( ) POSIX.– exec( ) POSIX.– spawn( ) Propia de QNX. (Crea un hijo con codigo propio).

Page 36: QNX: una visión general.

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

36

Admin. Procesos : Varios. Ciclo de vida de un procesos:

– Creacion : Buscar PCB libre y rellenarlo– Carga : Realizada por un thread del administrador.– Ejecucion : El proceos se ejecuta.– Finalizacion : Un thread del administrador libera los recursos.

Nombres simbolicos de procesos:– Para poder realizar el paso de mensajes, los procesos se

registran con un nombre simbolico en el administrador de procesos (un nodo) o en el process name locator (varios nodos)

Page 37: QNX: una visión general.

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

37

Admin. de S.F. : Visión General. Tipos de ficheros:

– Ficheros "comunes”.– Directorios.– Soft-links.– Pipes y FIFOs.– Ficheros de dispositivos.

Permisos:– usuario– grupo– otros

Page 38: QNX: una visión general.

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

38

Admin. de S.F. : Links e inodos. El nombre del fichero se separa de la informacion. La

informacion del fichero, excepto el nombre, se guarda en un inodo.

Si el fichero solo tiene un hard-link, la informacion del inodo se guarda en la entrada del directorio.

Si el fichero tiene mas de un hard-link, el inodo se guarda como un registro en un fichero especial (/.inodes).

Page 39: QNX: una visión general.

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

39

Admin. de S.F. : Links e inodos (cont.)

Page 40: QNX: una visión general.

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

40

Admin. de S.F. : Rendimiento.

Caracteristicas– Ordenacion de peticiones de E/S– Buffer cache– Multi-thread– Prioridad de procesos– Ficheros temporales– Memoria Ram como un disco simulado

Page 41: QNX: una visión general.

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

41

Admin. de Dispositivos . Hace de interfaz entre los

procesos y los dispositivos. Servicios de dispositivo:

– read( )

– write( )

– open( )

– close( )

Modos de procesamiento de dispositivo:– Edited Input Mode.

– Raw Input Mode.

Page 42: QNX: una visión general.

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

42

Admin. de Red : Introducción. Caracteristicas mas importantes:

– Incrementa en throughput mediante balanceo de carga.– Tolerante a fallos mediante conectividad redundante.– “bridging” entre redes QNX.

Responsabilidades:– Propagar los mensajes a traves de LAN.

Page 43: QNX: una visión general.

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

43

Admin. de Red : Enviando mensajes. Descripcion del proceso:

– 1. El proceso manda un Send() ó Reply().

– 2. El microkernel encola la petición.– 3. El Administrador de Red

desencola la petición.– 4. El Administrador de Red pasa la

petición al “driver” de Red.– 5. El Administrador de Red inicia la

transmision a traves del medio, y se responsabiliza de su entrega.

Page 44: QNX: una visión general.

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

44

Admin. de Red : Recibiendo mensajes. Descripción del proceso:

– 1. El “driver” de Red coloca el mensaje en el buffer del Circuito Virtual.

– 2. El “driver” de Red informa al Administrador de Red que la recepción se ha completado.

– 3. El Administrador de Red informa al microkernel que la recepción se ha completado.

– 4. El microkernel coloca el mensaje del buffer del circuito virtual al buffer del proceso.