440 likes | 629 Views
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).
E N D
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). • 4.2. Administrador del Sistema de Ficheros (Fsys). • 4.3. Administrador de Dispositivos (Dev). • 4.4. Administrador de Red (Net).
Introducción: Contenido. • 1.1. Ficha Técnica. • ¿Que es QNX? • 1.2. Objetivos. • 1.3. Historia. • 1.4. Empresas Clientes.
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)
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.
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.
Introducción: Empresas Clientes. • Alcatel • Ford motor company • Honda • IBM • Mitsubishi • Motorola • Siemens • Sony • Visa
Caracteristicas: Contenido. • 2.1. Filosofia. • 2.2. Arquitectura Microkernel. • Microkernel. • Procesos de Sistema.
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
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)
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.
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.
Microkernel : IPC via mensajes. • Fundamental para comunicacion entre procesos en QNX. • Trabaja a traves de la red. • Primitivas: • Send( ) • Receive( ) • Reply( )
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()
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.
Microkernel : IPC via signals. • Metodo asincrono de comunicacion entre procesos • Comportamiento ante un signal: • Accion por defecto. • Ignorar. • Programar el signal.
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.
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.
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.
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.
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.
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.
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).
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.
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.
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).
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)
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
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).
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
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.
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.
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.
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.