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

Presentaciones similares


Presentación del tema: "MINIX4RT: A Real-Time Operating System Based on MINIX"— Transcripción de la presentación:

1 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 1

2 INTRODUCCION 3

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

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

5 Información Previa sobre MINIX y RT-MINIX
3

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

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? 5

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

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

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

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

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

13 ARQUITECTURA 10

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

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 12

16 Arquitectura de MINIX4RT
USER USER RT USER RT 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 13

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

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

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

20 GESTION DE INTERRUPCIONES
10

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

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

23 Interrupt Descriptors
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 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 MRT_si.iQ.bitmap 18

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 19

25 GESTION DE PROCESOS 10

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

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

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

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

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 12

31 Planificación de Procesos en MINIX
12

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 12

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

34 GESTION DEL TIEMPO 10

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

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

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

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 19

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

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 19

41 Expired Virtual Timers
Priority Al menos un VT vencido en cola 15 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 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 last=9 1 MRT_st.exp.bitmap 19

42 COMUNICACIÓN ENTRE PROCESOS (IPC)
10

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

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

45 Message Queue Entry Descriptors
Priority 15 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 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 1 MRT_sm.msqQ[i].mQ.bitmap 19

46 LLAMADAS AL SISTEMA Y LLAMADAS AL KERNEL
10

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

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

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

50 TESTS DE PERFORMANCE 10

51 Tipos de Carga 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 19

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

53 Tests de Latencia de Interrupciones
19

54 Test de Puntualidad 19

55 Test de Transferencia de Mensajes
19

56 Flujo Máximo de Mensajes
19

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

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 19

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 19

60 GRACIAS!! Ing. Pablo A. Pessolani ppessolani@hotmail.com
3


Descargar ppt "MINIX4RT: A Real-Time Operating System Based on MINIX"

Presentaciones similares


Anuncios Google