Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porSilvestre Obregon Modificado hace 10 años
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
Presentaciones similares
© 2024 SlidePlayer.es Inc.
All rights reserved.