1 / 44

QNX: una visión general.

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

quanda
Download Presentation

QNX: una visión general.

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Daniel García Lugo Miguel Tomás Ozalla Xavier Teruel García QNX: una visión general.

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

  3. Parte 1: Introducción

  4. Introducción: Contenido. • 1.1. Ficha Técnica. • ¿Que es QNX? • 1.2. Objetivos. • 1.3. Historia. • 1.4. Empresas Clientes.

  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)

  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.

  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.

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

  9. Parte 2: Características.

  10. Caracteristicas: Contenido. • 2.1. Filosofia. • 2.2. Arquitectura Microkernel. • Microkernel. • Procesos de Sistema.

  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

  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)

  13. Caracteristicas: Arquitectura Microkernel (cont.)

  14. Parte 3: Arquitectura Microkernel.

  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.

  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.

  17. Microkernel : Responsabilidades (cont.)

  18. Microkernel : IPC via mensajes. • Fundamental para comunicacion entre procesos en QNX. • Trabaja a traves de la red. • Primitivas: • Send( ) • Receive( ) • Reply( )

  19. Microkernel : IPC via mensajes (cont.)

  20. Microkernel : IPC via mensajes (cont.)

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

  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.

  23. Microkernel : IPC via proxies (cont.)

  24. Microkernel : IPC via signals. • Metodo asincrono de comunicacion entre procesos • Comportamiento ante un signal: • Accion por defecto. • Ignorar. • Programar el signal.

  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.

  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.

  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.

  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.

  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.

  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.

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

  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.

  33. Parte 4 : Procesos de Sistema.

  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.

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

  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)

  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

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

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

  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

  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.

  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.

  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.

  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.

More Related