CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament d’Arquitectura de Computadors
QNX: una visión general.
(Seminaris de CASO)
Autors
Daniel García Lugo
Miguel Tomás Ozalla
Xavier Teruel García
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).
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
2
CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament d’Arquitectura de Computadors
Parte 1: Introducción
(Seminaris de CASO)
Autors
Introducción: Contenido.

1.1. Ficha Técnica.
– ¿Que es QNX?
1.2. Objetivos.
 1.3. Historia.
 1.4. Empresas Clientes.

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
4
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
– QNX 6.1
(1.999)
(2.001)
(Presentada)
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
5
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.

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
6
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.

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
7
Introducción: Empresas Clientes.
Alcatel
 Ford motor company
 Honda
 IBM
 Mitsubishi
 Motorola
 Siemens
 Sony
 Visa

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
8
CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament d’Arquitectura de Computadors
Parte 2: Características.
(Seminaris de CASO)
Autors
Caracteristicas: Contenido.
2.1. Filosofia.
 2.2. Arquitectura Microkernel.

– Microkernel.
– Procesos de Sistema.
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
10
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
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
11
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)
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
12
Caracteristicas: Arquitectura Microkernel (cont.)
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
13
CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament d’Arquitectura de Computadors
Parte 3: Arquitectura Microkernel.
(Seminaris de CASO)
Autors
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.
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
15
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.

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
16
Microkernel : Responsabilidades (cont.)
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
17
Microkernel : IPC via mensajes.
Fundamental para comunicacion entre procesos en QNX.
 Trabaja a traves de la red.
 Primitivas:

– Send( )
– Receive( )
– Reply( )
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
18
Microkernel : IPC via mensajes (cont.)
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
19
Microkernel : IPC via mensajes (cont.)
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
20
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()
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
21
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.
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
22
Microkernel : IPC via proxies (cont.)
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
23
Microkernel : IPC via signals.
Metodo asincrono de comunicacion entre procesos
 Comportamiento ante un signal:

– Accion por defecto.
– Ignorar.
– Programar el signal.
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
24
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.
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
25
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.
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
26
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.
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
27
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.
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
28
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.
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
29
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.
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
30
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).
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
31
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.
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
32
CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament d’Arquitectura de Computadors
Parte 4 : Procesos de Sistema.
(Seminaris de CASO)
Autors
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.
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
34
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).
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
35
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)
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
36
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
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
37
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).

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
38
Admin. de S.F. : Links e inodos (cont.)
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
39
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
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
40
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.
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
41
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.
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
42
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.
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
43
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.
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
44
Descargar

Document