QNX: una visión general.
description
Transcript of 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
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).
CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament d’Arquitectura de Computadors
(Seminaris de CASO)
Autors
Parte 1: Introducción
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.
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)
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.
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.
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
CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament d’Arquitectura de Computadors
(Seminaris de CASO)
Autors
Parte 2: Características.
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.
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
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)
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
13
Caracteristicas: Arquitectura Microkernel (cont.)
CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament d’Arquitectura de Computadors
(Seminaris de CASO)
Autors
Parte 3: Arquitectura Microkernel.
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.
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.
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
17
Microkernel : Responsabilidades (cont.)
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( )
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 mensajes (cont.)
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()
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.
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
23
Microkernel : IPC via proxies (cont.)
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.
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.
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.
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.
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.
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.
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.
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).
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.
CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament d’Arquitectura de Computadors
(Seminaris de CASO)
Autors
Parte 4 : Procesos de Sistema.
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.
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).
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)
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
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).
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
39
Admin. de S.F. : Links e inodos (cont.)
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
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.
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.
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.
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.