La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

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

Presentaciones similares


Presentación del tema: "MINIX4RT: A Real-Time Operating System Based on MINIX Ing. Pablo A. Pessolani Abril 2006 Abril 2006 Universidad Nacional de La Plata Facultad de Informática."— Transcripción de la presentación:

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

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 sobre MINIX 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 FSMM TASK MINIX Kernel TASK USER

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 USER FS SERVER MM SERVER TASK Timer Driven RT-TASK MINIX4RT Kernel TASK USER RT USER Event Driven RT-TASK MINIX Handlers RT Timer Driven Handler SOFT IRQs MRTTASK RT Event Driven Handler MINIX Kernel RT USER

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 Interrupt Queues Interrupt Descriptors MRT_si.iQ.bitmap MRT_si.iQ.irqQ[8] first=NULL last=NULL Priority La cola está vacía MRT_si.iQ.irqQ[12] first=7 last=9 next=9 prev=NULL MRT_si.irqtab[7] SERVICED next=NULL prev=7 MRT_si.irqtab[9] TRIGGERED MRT_si.iQ.irqQ[3] first=3 last=3 next=NULL prev=NULL MRT_si.irqtab[3] TRIGGERED Al menos hay un Manejador Pendiente de Interrupción Descriptor de más alta prioridad

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 REALTIME READY

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

30 Estados y Transiciones de Procesos de TR y Standard RUNNING BLOCKEDREADY RT-RUNNING RT-BLOCKEDRT-READY ESTADOS DE PROCESOS MINIX4RTESTADOS DE PROCESOS MINIX

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 Process Descriptors next=NULL prev=NULL proc[3] next=5 prev=NULL proc[7] next=NULL prev=7 proc[5] MRT_procL[8]; MRT_procL[3]; first=NULL last=NULL first=3 last=3 MRT_procL[12]; first=7 last= Priority MRT_sp.rdyQ.bitmap Al menos un proceso de TR en la cola La cola está vacía Proceso de TR ACTIVO Ready Queues

34 GESTION DEL TIEMPO

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

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 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. Virtual Timers: Acciones

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

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

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

41 Expired Timers QueuesExpired Virtual Timers Priority MRT_st.exp.bitmap Al menos un VT vencido en cola MRT_st.expiredQ[8] MRT_st.expiredQ[3] first=NULL last=NULL first=9 last=9 next=NULL prev=NULL MRT_st.vtimer[9] MRT_st.expiredQ[12] first=7 last=5 next=5 prev=NULL MRT_st.vtimer[7] next=NULL prev=7 MRT_st.vtimer[5] La cola está vacía VT vencido de máxima Prioridad

42 COMUNICACIÓN ENTRE PROCESOS (IPC)

43 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) Primitivas de IPC

44 THTH TMTM TLTL S Operation Server Priority Request BASE LOW T L Request T L Request MEDIUM Request HIGH T L Request Reply T H Request Reply MEDIUM T M Request Reply BASE TIME BASE LOW MEDIUM HIGHBPIP

45 Message Queue DescriptorMessage Queue Entry Descriptors first=3 last=7 next=7 prev=NULL MRT_st.vtimer[3] priority=12 next=NULL prev=3 MRT_st.vtimer[7] priority=12 first=5 last=5 next=0 prev=NULL MRT_st.vtimer[5] priority= Priority MRT_sm.msqQ[i].mQ.bitmap Al menos un descriptor de mensajes en cola La cola está vacía Mensaje de más alta prioridad

46 LLAMADAS AL SISTEMA Y LLAMADAS AL KERNEL

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

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

51 En Vacío Carga de CPU Carga de E/S utilizando operaciones de Disco Rígido Carga de E/S utilizando Diskette con driver en TR Tipos de Carga

52 Tests de Performance Parallel Port Cable Parallel Port Loop RTLinux MINIX4RT Intel Pentium III 800MHz, 256 MB RTLinux Intel DX4 75MHz 8 MB

53 Tests de Latencia de Interrupciones

54 Test de Puntualidad

55 Test de Transferencia de Mensajes

56 Flujo Máximo de Mensajes

57 Contribuciones Arquitectura: Subkernel de Tiempo Real. Gestión de Interrupciones: Priorización y Soft IRQs. Gestión de Procesos: Visión de 2 Dominios. Gestión de Tiempo: Priorización de Temporizadores. Llamadas al Sistema: Kernel Calls.

58 Conclusiones El microkernel de MINIX4RT dispone de las facilidades básicas para la gestión de Interrupciones, Procesos, Temporizadores, Mensajes y recolección de estadísticas de Tiempo Real convirtiéndolo en una excelente elección para realizar prácticas de codificación en cursos de Diseño e Implementación de Sistemas Operativos de Tiempo Real

59 Trabajos a Futuro Deshabilitación de Interrupciones por Prioridades Implementación de Semáforos Gestión de Tiempo No Periódica Compatibilidad POSIX b Actualización a MINIX 3.0

60 GRACIAS!! Ing. Pablo A. Pessolani


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

Presentaciones similares


Anuncios Google