1 / 60

MINIX4RT: A Real-Time Operating System Based on MINIX

Universidad Nacional de La Plata Facultad de Informática. MINIX4RT: A Real-Time Operating System Based on MINIX. Ing. Pablo A. Pessolani Abril 2006. INTRODUCCION. Objetivo.

colm
Download Presentation

MINIX4RT: A Real-Time Operating System Based on MINIX

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. Universidad Nacional de La Plata Facultad de Informática MINIX4RT: A Real-Time Operating System Based on MINIX Ing. Pablo A. Pessolani Abril 2006

  2. INTRODUCCION

  3. Objetivo Desarrollar una herramienta educativa para cursos de Diseño e Implementación de Sistemas Operativos en Tiempo Real (TR)

  4. Porqué basado en MINIX? • Disponibilidad de documentación. • Requerimientos de la plataforma de hardware. • Diseño elegante y modular. • Aplicaciones y herramientas de programación. • Experiencia Académica.

  5. Información Previa sobreMINIX y RT-MINIX

  6. Características de MINIX • Basado en Microkernel. • Multicapa de Procesos • Modelo Cliente/Servidor • Basado en Transferencia de Mensajes • Ocultamiento de Interrupciones

  7. Características de RT-MINIX • Diferentes algoritmos de planificación. • Colas de planificación conjuntas. • Abundante recolección de estadísticas. • Gestión de la resolución del Temporizador. Entonces, por qué MINIX4RT?

  8. Problemas de RT-MINIX • Es un parche para MINIX, no una Arquitectura. • No prioriza el servicio de las Interrupciones TR. • Acepta llamadas al Sistema MINIX desde procesos TR. • El planificador prioriza al Gestor de Memoria y al Gestor de Archivos. • Usa IPC de MINIX sin evitar Inversión de Prioridades.

  9. Características de MINIX4RT • Microkernel de TR expulsivo. • Arquitectura modular y por capas. • Gestión de Interrupciones por Tiempo y por Evento. • Procesos Periódicos y Esporádicos. • Priorización en el procesamiento de Interrupciones.

  10. Características de MINIX4RT • Planificador expulsivo de Prioridades Fijas. • Independencia de MINIX para la resolución del Temporizador. • Transferencia de Mensajes Sincrónica/Asincrónica basada en Cola de Mensajes. • Disciplina de Cola por prioridades en recepción de mensajes.

  11. Características de MINIX4RT • Soporte de Basic Priority Inheritance Protocol (BPIP) en la transferencia de mensajes. • Soporte de Timeout en primitivas de tipo Send y Receive. • Recolección de Estadísticas y Métricas de TR. • Soporte de Gestión de Interrupciones en dos Niveles utilizando Soft IRQs.

  12. Características de MINIX4RT • Temporizadores de software para la implementación de timeouts, procesamiento periódico, timestamps y alarmas. • Manejo de Vencimiento de Deadlines de Interrupciones y Procesos Periódicos con el uso de procesos tipo Watchdogs. • Compatibilidad con aplicaciones MINIX.

  13. ARQUITECTURA

  14. Arquitectura de MINIX USER USER USER FS MM TASK TASK TASK MINIX Kernel

  15. Método usado por RTLinux • Sistema Operativo de Tiempo Real Anfitrión • Sistema Operativo de Tiempo Compartido Invitado. • Máquina Virtual limitada a la Emulación de Interrupciones

  16. Arquitectura de MINIX4RT RT USER RT USER USER USER MRTTASK FS SERVER MM SERVER Event Driven RT-TASK Timer Driven RT-TASK TASK TASK TASK SOFT IRQs RT Timer Driven Handler RT Event Driven Handler MINIX Handlers MINIX Kernel MINIX4RT Kernel

  17. De MINIX a MINIX4RT • Tres entidades Ejecutables: • Procesos. • Rutinas de Servicio de Interrupción (ISR). • Acciones de Temporizadores. • Nuevo Planificador de TR.

  18. De MINIX a MINIX4RT • Planificador para ISRs y Acciones de Temporizadores. • Tanto el kernel de MINIX como sus procesos pueden ser expulsados por Procesos o Interrupciones de TR. • Los Procesos en TR no pueden invocar llamadas al Sistema de MINIX.

  19. De MINIX a MINIX4RT • Virtualización de Interrupciones para MINIX. • Llamadas al Sistema para procesos de TR. • Minimización del tiempo de desactivación de Interrupciones.

  20. GESTION DE INTERRUPCIONES

  21. Tipo de Manejadores de Interrupciones • Manejadores MINIX • Manejadores de TR disparados por Eventos. • Manejadores de TR disparados por Tiempo.

  22. Prioridad de Manejadores de Interrupción • Un manejador de Interrupción solo se ejecutará si su prioridad es mayor que el nivel de prioridad de ejecución del sistema. • Los manejadores de Interrupción pendientes de atención no se ejecutarán si: • Son manejadores MINIX y éste ha deshabilitado INTs. • Son manejadores disparados por Tiempo que no han cumplido su período.

  23. Priority Al menos hay un Manejador Pendiente de Interrupción 15 1 Interrupt Queues Interrupt Descriptors 14 MRT_si.irqtab[7] MRT_si.irqtab[9] 13 MRT_si.iQ.irqQ[12] next=9 next=NULL 12 1 first=7 SERVICED TRIGGERED last=9 prev=NULL prev=7 11 10 Descriptor de más alta prioridad 9 MRT_si.iQ.irqQ[8] first=NULL 8 0 last=NULL 7 6 La cola está vacía 5 MRT_si.irqtab[3] 4 next=NULL 3 1 MRT_si.iQ.irqQ[3] TRIGGERED 2 prev=NULL first=3 last=3 1 0 0 0 MRT_si.iQ.bitmap

  24. Software IRQs Como ejecutar acciones prolongadas fuera del tiempo de interrupción? • MINIX usa Tareas • LINUX divide el manejador de Interrupciones: • Top-Half • Botton-Half • MINIX4RT dispone de Software IRQs

  25. GESTION DE PROCESOS

  26. MINIX4RT: Modos de Ejecución • Non Real Time Mode: El comportamiento del sistema es idéntico al de MINIX. Todas las llamadas al Sistema de TR están deshabilitadas. • Real Time Mode: Se pueden ejecutar tanto procesos de TR como Standards.

  27. MINIX4RT: Procesos TR • Solo se pueden crear y terminar procesos standards. MINIX4RT no dispone de nuevas llamadas al Sistema para crear o terminar procesos de TR. • Un proceso MINIX Standard se convierte a un proceso de TR • Para finalizar un proceso de TR, antes debe convertirse en proceso MINIX standard.

  28. Estados y Transiciones de Procesos en MINIX RUNNING BLOCKED READY BLOCKED REALTIME

  29. Estados y Transiciones de Procesos en MINIX4RT RT-RUNNING RT-BLOCKED RT-READY NRT-BLOCKED

  30. Estados y Transiciones de Procesos de TR y Standard ESTADOS DE PROCESOS MINIX ESTADOS DE PROCESOS MINIX4RT RUNNING RT-RUNNING BLOCKED READY RT-BLOCKED RT-READY

  31. Planificación de Procesos en MINIX

  32. Planificación de Procesos de TR La política planificación de Tiempo Real es simple: ”Un Planificador de Tiempo Real por prioridades debe asegurar que se activará el proceso ejecutable de mas alta prioridad en un tiempo limitado y ese tiempo debe ser pequeño." Victor Yodaiken

  33. Priority 15 0 Process Descriptors 14 proc[7] proc[5] MRT_procL[12]; 13 first=7 next=5 next=NULL 12 1 last=5 prev=NULL prev=7 11 10 9 MRT_procL[8]; first=NULL 8 0 last=NULL 7 6 5 4 MRT_procL[3]; 3 1 proc[3] first=3 2 0 last=3 next=NULL prev=NULL 1 0 0 0 Al menos un proceso de TR en la cola Proceso de TR ACTIVO La cola está vacía Ready Queues MRT_sp.rdyQ.bitmap

  34. GESTION DEL TIEMPO

  35. Virtualización del Timer de MINIX MRT_sv.harmonic = 2 MINIX ticks 1/HZ MINIX4RT RT-ticks Time 1/MRT_sv.tickrate

  36. Virtual Timers: Acciones • MRT_ACT_MSGOWN: Envía un mensaje Timeout al proceso dueño del VT. • MRT_ACT_MSGWDOG: Envía un mensaje Timeout al proceso Watchdog del proceso dueño del VT. • MRT_ACT_IRQTRIG: Dispara un Descriptor de Interrupciones (usado por Gestores de Interrupciones disparados por tiempo). • MRT_ACT_DEBUG: Imprime valor del parámetro en la consola.

  37. Virtual Timers: Acciones • MRT_ACT_SNDTO: Un timeout de una primitiva tipo send() ha vencido. • MRT_ACT_RCVFR: Un timeout de una primitiva tipo receive() ha vencido. • MRT_ACT_WAKEUP: Despierta al proceso dueño del VT que ha ejecutado una llamada al kernel mrt_sleep(). • MRT_ACT_SCHED: Despierta a otro proceso que se encuentra en estado RT-BLOCKED.

  38. Virtual Timers: Cola VT Activos 14 Ticks 10 Ticks MRT_st.timerQ MRT_st.vtimer[3] MRT_st.vtimer[7] first=3 next=7 next=NULL last=7 prev=NULL prev=3 inQ = 2 nextexp=4 nextexp=0 firstexp=10

  39. Ejecución de Acciones de VTs Timer Interrupt Timer Interrupt Period Timer ISR MRT_vtimer_flush VT Actions Higher Priority Process Latency Time

  40. Ejecución de Acciones de VTs Timer Interrupt Timer Interrupt Period Timer ISR MRT_vtimer_flush MRT_vtimer_flush Higher Priority VT Actions Lower Priority VT Actions Higher Priority Process Lower Priority Process Latency Time

  41. Priority Al menos un VT vencido en cola 15 0 Expired Timers Queues Expired Virtual Timers 14 13 MRT_st.expiredQ[12] 12 1 MRT_st.vtimer[7] MRT_st.vtimer[5] first=7 11 next=5 next=NULL last=5 prev=NULL prev=7 10 9 MRT_st.expiredQ[8] 8 0 first=NULL VT vencido de máxima Prioridad 7 last=NULL 6 La cola está vacía 5 4 MRT_st.vtimer[9] MRT_st.expiredQ[3] next=NULL 3 1 prev=NULL first=9 2 0 last=9 1 0 0 0 MRT_st.exp.bitmap

  42. COMUNICACIÓN ENTRE PROCESOS (IPC)

  43. Primitivas de IPC • mrt_rqst( dest, m_ptr, timeout) • mrt_arqst( dest, m_ptr) • mrt_reply(dest, m_ptr) • mrt_uprqst(dest, m_ptr, priority) • mrt_sign(dest, m_ptr) • mrt_rcv( source, hdr_ptr, m_ptr, timeout) • mrt_rqrcv( dest, rqst, rply, hdr, timeout)

  44. BPIP Request Request Request Reply Reply Reply TH TM TL S Server Priority Operation BASE LOW TIME TL Request MEDIUM TL Request HIGH HIGH TL Request MEDIUM TH Request LOW MEDIUM TM Request BASE BASE

  45. Priority 15 0 Al menos un descriptor de mensajes en cola Message Queue Descriptor Message Queue Entry Descriptors 14 13 MRT_st.vtimer[3] MRT_st.vtimer[7] 12 1 first=3 next=7 next=NULL 11 last=7 prev=NULL prev=3 priority=12 priority=12 10 9 La cola está vacía 8 0 7 Mensaje de más alta prioridad 6 MRT_st.vtimer[5] 5 first=5 next=0 last=5 4 prev=NULL priority=3 3 1 2 0 1 0 0 0 MRT_sm.msqQ[i].mQ.bitmap

  46. LLAMADAS AL SISTEMA Y LLAMADAS AL KERNEL

  47. Llamadas al Sistema de MINIX User Level Process libc (System Calls) File System Server libc (Task Calls) SYSTASK KERNEL

  48. Llamadas al Sistema de MINIX4RT User Level Process libc (System Calls) Memory Manager libc (Task Calls) MRTTASK RT-KERNEL

  49. Llamadas al Kernel de MINIX4RT User Level RT-Process libc (RT-Kernel Calls) RT-KERNEL

  50. TESTS DE PERFORMANCE

More Related