minix4rt: a real-time operating system based on minix ing. pablo a. pessolani abril 2006 abril 2006...
TRANSCRIPT
![Page 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](https://reader033.vdocumento.com/reader033/viewer/2022061305/54a5e0fc49795925738b4e09/html5/thumbnails/1.jpg)
MINIX4RT: MINIX4RT: A Real-Time Operating System A Real-Time Operating System
Based on MINIXBased on MINIX
Ing. Pablo A. PessolaniIng. Pablo A. Pessolani
Abril 2006Abril 2006
Universidad Nacional de La PlataUniversidad Nacional de La PlataFacultad de InformáticaFacultad de Informática
![Page 2: 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](https://reader033.vdocumento.com/reader033/viewer/2022061305/54a5e0fc49795925738b4e09/html5/thumbnails/2.jpg)
INTRODUCCIONINTRODUCCION
![Page 3: 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](https://reader033.vdocumento.com/reader033/viewer/2022061305/54a5e0fc49795925738b4e09/html5/thumbnails/3.jpg)
ObjetivoObjetivo
Desarrollar una herramienta Desarrollar una herramienta educativa para cursos de Diseño e educativa para cursos de Diseño e
Implementación de Sistemas Implementación de Sistemas Operativos en Tiempo Real (TR)Operativos en Tiempo Real (TR)
![Page 4: 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](https://reader033.vdocumento.com/reader033/viewer/2022061305/54a5e0fc49795925738b4e09/html5/thumbnails/4.jpg)
Porqué basado en MINIX?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.
![Page 5: 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](https://reader033.vdocumento.com/reader033/viewer/2022061305/54a5e0fc49795925738b4e09/html5/thumbnails/5.jpg)
Información Previa sobreInformación Previa sobreMINIX y RT-MINIXMINIX y RT-MINIX
![Page 6: 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](https://reader033.vdocumento.com/reader033/viewer/2022061305/54a5e0fc49795925738b4e09/html5/thumbnails/6.jpg)
Características de MINIXCaracterísticas de MINIX
Basado en Microkernel.
Multicapa de Procesos
Modelo Cliente/Servidor
Basado en Transferencia de Mensajes
Ocultamiento de Interrupciones
![Page 7: 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](https://reader033.vdocumento.com/reader033/viewer/2022061305/54a5e0fc49795925738b4e09/html5/thumbnails/7.jpg)
Características de RT-MINIXCaracterí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?Entonces, por qué MINIX4RT?
![Page 8: 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](https://reader033.vdocumento.com/reader033/viewer/2022061305/54a5e0fc49795925738b4e09/html5/thumbnails/8.jpg)
Problemas de RT-MINIXProblemas 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.
![Page 9: 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](https://reader033.vdocumento.com/reader033/viewer/2022061305/54a5e0fc49795925738b4e09/html5/thumbnails/9.jpg)
Características de MINIX4RTCaracterí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.
![Page 10: 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](https://reader033.vdocumento.com/reader033/viewer/2022061305/54a5e0fc49795925738b4e09/html5/thumbnails/10.jpg)
Características de MINIX4RTCaracterí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.
![Page 11: 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](https://reader033.vdocumento.com/reader033/viewer/2022061305/54a5e0fc49795925738b4e09/html5/thumbnails/11.jpg)
Características de MINIX4RTCaracterí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.
![Page 12: 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](https://reader033.vdocumento.com/reader033/viewer/2022061305/54a5e0fc49795925738b4e09/html5/thumbnails/12.jpg)
Características de MINIX4RTCaracterí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.
![Page 13: 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](https://reader033.vdocumento.com/reader033/viewer/2022061305/54a5e0fc49795925738b4e09/html5/thumbnails/13.jpg)
ARQUITECTURA ARQUITECTURA
![Page 14: 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](https://reader033.vdocumento.com/reader033/viewer/2022061305/54a5e0fc49795925738b4e09/html5/thumbnails/14.jpg)
Arquitectura de MINIX Arquitectura de MINIX
USER
FS MM
TASK
MINIX Kernel
TASK TASK
USER USER
![Page 15: 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](https://reader033.vdocumento.com/reader033/viewer/2022061305/54a5e0fc49795925738b4e09/html5/thumbnails/15.jpg)
Método usado por RTLinuxMé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
![Page 16: 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](https://reader033.vdocumento.com/reader033/viewer/2022061305/54a5e0fc49795925738b4e09/html5/thumbnails/16.jpg)
Arquitectura de MINIX4RTArquitectura de MINIX4RT
USER
FSSERVER
MMSERVER
TASK
TimerDriven
RT-TASK
MINIX4RT Kernel
TASK TASK
USER RTUSER
Event Driven
RT-TASK
MINIXHandlers
RT TimerDriven Handler
SOFTIRQs
MRTTASK
RT EventDriven Handler
MINIXKernel
RTUSER
![Page 17: 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](https://reader033.vdocumento.com/reader033/viewer/2022061305/54a5e0fc49795925738b4e09/html5/thumbnails/17.jpg)
De MINIX a MINIX4RTDe MINIX a MINIX4RT
Tres entidades Ejecutables:
Procesos.
Rutinas de Servicio de Interrupción (ISR).
Acciones de Temporizadores.
Nuevo Planificador de TR.
![Page 18: 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](https://reader033.vdocumento.com/reader033/viewer/2022061305/54a5e0fc49795925738b4e09/html5/thumbnails/18.jpg)
De MINIX a MINIX4RTDe 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.
![Page 19: 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](https://reader033.vdocumento.com/reader033/viewer/2022061305/54a5e0fc49795925738b4e09/html5/thumbnails/19.jpg)
De MINIX a MINIX4RTDe 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.
![Page 20: 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](https://reader033.vdocumento.com/reader033/viewer/2022061305/54a5e0fc49795925738b4e09/html5/thumbnails/20.jpg)
GESTION DE GESTION DE INTERRUPCIONESINTERRUPCIONES
![Page 21: 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](https://reader033.vdocumento.com/reader033/viewer/2022061305/54a5e0fc49795925738b4e09/html5/thumbnails/21.jpg)
Tipo de Manejadores de Tipo de Manejadores de InterrupcionesInterrupciones
Manejadores MINIX
Manejadores de TR disparados por Eventos.
Manejadores de TR disparados por Tiempo.
![Page 22: 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](https://reader033.vdocumento.com/reader033/viewer/2022061305/54a5e0fc49795925738b4e09/html5/thumbnails/22.jpg)
Prioridad de Manejadores de Prioridad de Manejadores de InterrupciónInterrupció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.
![Page 23: 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](https://reader033.vdocumento.com/reader033/viewer/2022061305/54a5e0fc49795925738b4e09/html5/thumbnails/23.jpg)
Interrupt Queues Interrupt DescriptorsMRT_si.iQ.bitmap
MRT_si.iQ.irqQ[8]
first=NULLlast=NULL
1
1
0
1
00
1514131211109876543210
Priority
La cola está vacía
MRT_si.iQ.irqQ[12]
first=7last=9
next=9
prev=NULL
MRT_si.irqtab[7]
SERVICEDnext=NULL
prev=7
MRT_si.irqtab[9]
TRIGGERED
MRT_si.iQ.irqQ[3]
first=3last=3
next=NULL
prev=NULL
MRT_si.irqtab[3]
TRIGGERED
Al menos hay un Manejador Pendiente
de Interrupción
Descriptor demás alta prioridad
![Page 24: 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](https://reader033.vdocumento.com/reader033/viewer/2022061305/54a5e0fc49795925738b4e09/html5/thumbnails/24.jpg)
Software IRQsSoftware 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
![Page 25: 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](https://reader033.vdocumento.com/reader033/viewer/2022061305/54a5e0fc49795925738b4e09/html5/thumbnails/25.jpg)
GESTION DE PROCESOSGESTION DE PROCESOS
![Page 26: 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](https://reader033.vdocumento.com/reader033/viewer/2022061305/54a5e0fc49795925738b4e09/html5/thumbnails/26.jpg)
MINIX4RT: Modos de EjecuciónMINIX4RT: 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.
![Page 27: 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](https://reader033.vdocumento.com/reader033/viewer/2022061305/54a5e0fc49795925738b4e09/html5/thumbnails/27.jpg)
MINIX4RT: Procesos TR 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.
![Page 28: 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](https://reader033.vdocumento.com/reader033/viewer/2022061305/54a5e0fc49795925738b4e09/html5/thumbnails/28.jpg)
Estados y Transiciones de Procesos Estados y Transiciones de Procesos en MINIXen MINIX
RUNNING
BLOCKED
BLOCKEDREALTIME
READY
![Page 29: 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](https://reader033.vdocumento.com/reader033/viewer/2022061305/54a5e0fc49795925738b4e09/html5/thumbnails/29.jpg)
RT-RUNNING
RT-BLOCKED
NRT-BLOCKED
RT-READY
Estados y Transiciones de Procesos Estados y Transiciones de Procesos en MINIX4RTen MINIX4RT
![Page 30: 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](https://reader033.vdocumento.com/reader033/viewer/2022061305/54a5e0fc49795925738b4e09/html5/thumbnails/30.jpg)
Estados y Transiciones de Estados y Transiciones de Procesos de TR y StandardProcesos de TR y Standard
RUNNING
BLOCKED READY
RT-RUNNING
RT-BLOCKED RT-READY
ESTADOS DE PROCESOS MINIX4RTESTADOS DE PROCESOS MINIX
![Page 31: 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](https://reader033.vdocumento.com/reader033/viewer/2022061305/54a5e0fc49795925738b4e09/html5/thumbnails/31.jpg)
Planificación de Procesos Planificación de Procesos en MINIXen MINIX
![Page 32: 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](https://reader033.vdocumento.com/reader033/viewer/2022061305/54a5e0fc49795925738b4e09/html5/thumbnails/32.jpg)
Planificación de Procesos de TRPlanificación de Procesos de TR
La política planificación de Tiempo Real es simple:
””Un Planificador de Tiempo Real por Un Planificador de Tiempo Real por prioridades debe asegurar que se activará el prioridades debe asegurar que se activará el proceso ejecutable de mas alta prioridad en proceso ejecutable de mas alta prioridad en
un tiempo limitado y ese tiempo debe ser un tiempo limitado y ese tiempo debe ser pequeño.pequeño.""
Victor Yodaiken
![Page 33: 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](https://reader033.vdocumento.com/reader033/viewer/2022061305/54a5e0fc49795925738b4e09/html5/thumbnails/33.jpg)
Process Descriptors
next=NULLprev=NULL
proc[3]
next=5prev=NULL
proc[7]
next=NULLprev=7
proc[5]
MRT_procL[8];
MRT_procL[3];
first=NULLlast=NULL
first=3last=3
MRT_procL[12];
first=7last=5
0
1
0
1000
1514131211109876543210
Priority
MRT_sp.rdyQ.bitmap
Al menos un proceso de TR en la cola
La cola está vacía
Proceso de TR ACTIVOReady Queues
![Page 34: 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](https://reader033.vdocumento.com/reader033/viewer/2022061305/54a5e0fc49795925738b4e09/html5/thumbnails/34.jpg)
GESTION DEL TIEMPOGESTION DEL TIEMPO
![Page 35: 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](https://reader033.vdocumento.com/reader033/viewer/2022061305/54a5e0fc49795925738b4e09/html5/thumbnails/35.jpg)
Virtualización del Timer de Virtualización del Timer de MINIXMINIX
1/MRT_sv.tickrate
1/HZ
Time
MINIX4RT
RT-ticks
MINIX
ticks
MRT_sv.harmonic = 2
![Page 36: 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](https://reader033.vdocumento.com/reader033/viewer/2022061305/54a5e0fc49795925738b4e09/html5/thumbnails/36.jpg)
Virtual Timers: AccionesVirtual 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.
![Page 37: 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](https://reader033.vdocumento.com/reader033/viewer/2022061305/54a5e0fc49795925738b4e09/html5/thumbnails/37.jpg)
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: AccionesVirtual Timers: Acciones
![Page 38: 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](https://reader033.vdocumento.com/reader033/viewer/2022061305/54a5e0fc49795925738b4e09/html5/thumbnails/38.jpg)
first=3last=7
MRT_st.timerQ
inQ = 2firstexp=10
next=7prev=NULL
MRT_st.vtimer[3]
nextexp=4nextexp=4
next=NULLprev=3
MRT_st.vtimer[7]
nextexp=0
10 Ticks
14 Ticks
Virtual Timers: Cola VT ActivosVirtual Timers: Cola VT Activos
![Page 39: 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](https://reader033.vdocumento.com/reader033/viewer/2022061305/54a5e0fc49795925738b4e09/html5/thumbnails/39.jpg)
Ejecución de Acciones de VTsEjecución de Acciones de VTs
Time
Timer Interrupt Timer Interrupt
Timer ISR
Period
VTActions
MRT_vtimer_flush
Higher
Priority
Process
Latency
![Page 40: 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](https://reader033.vdocumento.com/reader033/viewer/2022061305/54a5e0fc49795925738b4e09/html5/thumbnails/40.jpg)
Ejecución de Acciones de VTsEjecución de Acciones de VTs
Time
Timer Interrupt Timer Interrupt
Timer ISR
Period
HigherPriority
VTActions
MRT_vtimer_flush
Latency
Higher
Priority
Process
LowerPriority
VTActions
Lower
Priority
Process
MRT_vtimer_flush
![Page 41: 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](https://reader033.vdocumento.com/reader033/viewer/2022061305/54a5e0fc49795925738b4e09/html5/thumbnails/41.jpg)
Expired Timers Queues Expired Virtual Timers
0
1
0
1000
1514131211109876543210
Priority
MRT_st.exp.bitmap
Al menos un VT vencido en cola
MRT_st.expiredQ[8]
MRT_st.expiredQ[3]
first=NULLlast=NULL
first=9last=9
next=NULLprev=NULL
MRT_st.vtimer[9]
MRT_st.expiredQ[12]
first=7last=5 next=5
prev=NULL
MRT_st.vtimer[7]
next=NULLprev=7
MRT_st.vtimer[5]
La cola está vacía
VT vencido de máxima Prioridad
![Page 42: 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](https://reader033.vdocumento.com/reader033/viewer/2022061305/54a5e0fc49795925738b4e09/html5/thumbnails/42.jpg)
COMUNICACIÓN ENTRE COMUNICACIÓN ENTRE PROCESOS (IPC)PROCESOS (IPC)
![Page 43: 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](https://reader033.vdocumento.com/reader033/viewer/2022061305/54a5e0fc49795925738b4e09/html5/thumbnails/43.jpg)
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 IPCPrimitivas de IPC
![Page 44: 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](https://reader033.vdocumento.com/reader033/viewer/2022061305/54a5e0fc49795925738b4e09/html5/thumbnails/44.jpg)
TH TM TL S
OperationServer Priority
Request BASE
LOWTL
RequestRequest
TLRequest
MEDIUM
RequestHIGH
TLRequestReply
THRequestReply
MEDIUM
TMRequestReply
BASE
TIME
BASE
LOW
MEDIUM
HIGH
BPIPBPIP
![Page 45: 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](https://reader033.vdocumento.com/reader033/viewer/2022061305/54a5e0fc49795925738b4e09/html5/thumbnails/45.jpg)
Message QueueDescriptor Message Queue Entry Descriptors
first=3last=7
next=7prev=NULL
MRT_st.vtimer[3]
priority=12
next=NULLprev=3
MRT_st.vtimer[7]
priority=12
first=5last=5
next=0prev=NULL
MRT_st.vtimer[5]
priority=3
0
1
0
1000
1514131211109876543210
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
![Page 46: 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](https://reader033.vdocumento.com/reader033/viewer/2022061305/54a5e0fc49795925738b4e09/html5/thumbnails/46.jpg)
LLAMADAS AL SISTEMA LLAMADAS AL SISTEMA Y Y
LLAMADAS AL KERNELLLAMADAS AL KERNEL
![Page 47: 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](https://reader033.vdocumento.com/reader033/viewer/2022061305/54a5e0fc49795925738b4e09/html5/thumbnails/47.jpg)
User Level Process
libc (System Calls)
File System Server
libc (Task Calls)
SYSTASK
KERNEL
Llamadas al Llamadas al Sistema de Sistema de
MINIXMINIX
![Page 48: 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](https://reader033.vdocumento.com/reader033/viewer/2022061305/54a5e0fc49795925738b4e09/html5/thumbnails/48.jpg)
Llamadas al Llamadas al Sistema de Sistema de MINIX4RTMINIX4RT
User Level Process
libc (System Calls)
Memory Manager
libc (Task Calls)
MRTTASK
RT-KERNEL
![Page 49: 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](https://reader033.vdocumento.com/reader033/viewer/2022061305/54a5e0fc49795925738b4e09/html5/thumbnails/49.jpg)
Llamadas al Llamadas al Kernel de Kernel de
MINIX4RTMINIX4RTUser Level RT-Process
libc (RT-Kernel Calls)
RT-KERNEL
![Page 50: 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](https://reader033.vdocumento.com/reader033/viewer/2022061305/54a5e0fc49795925738b4e09/html5/thumbnails/50.jpg)
TESTS DE TESTS DE PERFORMANCEPERFORMANCE
![Page 51: 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](https://reader033.vdocumento.com/reader033/viewer/2022061305/54a5e0fc49795925738b4e09/html5/thumbnails/51.jpg)
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 CargaTipos de Carga
![Page 52: 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](https://reader033.vdocumento.com/reader033/viewer/2022061305/54a5e0fc49795925738b4e09/html5/thumbnails/52.jpg)
Tests de PerformanceTests de Performance
Parallel Port Cable
Parallel Port Loop
RTLinuxMINIX4RT
Intel Pentium III 800MHz, 256 MB
RTLinux
Intel 80486-DX4 75MHz 8 MB
![Page 53: 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](https://reader033.vdocumento.com/reader033/viewer/2022061305/54a5e0fc49795925738b4e09/html5/thumbnails/53.jpg)
Tests de Latencia de Tests de Latencia de InterrupcionesInterrupciones
20
30
40
50
60
70
80
90
10
0
110
12
0
13
0
0,00
10,00
20,00
30,00
40,00
50,00
60,00
%
Interrupt Service Time [microsec]
ED-Interrupts [10000 Hz]
DKT Load
HD Load
CPU Load
No Load
![Page 54: 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](https://reader033.vdocumento.com/reader033/viewer/2022061305/54a5e0fc49795925738b4e09/html5/thumbnails/54.jpg)
Test de PuntualidadTest de Puntualidad
0,00
5,00
10,00
15,00
20,00
25,00
30,00
35,00
40,00
45,00
%
PERIOD [microsec]
TIMELINESS [10000 Hz]
DKT Load
HD Load
CPU Load
No Load
![Page 55: 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](https://reader033.vdocumento.com/reader033/viewer/2022061305/54a5e0fc49795925738b4e09/html5/thumbnails/55.jpg)
Test de Transferencia de MensajesTest de Transferencia de Mensajes
MESSAGE TIME
0
20
40
60
80
100
120
TEST 1
TEST2
TEST3
TEST4
TEST5
TEST6
TEST7
TEST8
Me
ss
ag
e T
ime
[m
icro
se
cs
]
![Page 56: 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](https://reader033.vdocumento.com/reader033/viewer/2022061305/54a5e0fc49795925738b4e09/html5/thumbnails/56.jpg)
Flujo Máximo de MensajesFlujo Máximo de Mensajes
THROUGHPUT
0
2000
4000
6000
8000
10000
12000
14000
TEST 1
TEST2
TEST3
TEST4
TEST5
TEST6
TEST7
TEST8
Th
rou
gh
pu
t [m
es
sa
ge
s/s
ec
]
![Page 57: 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](https://reader033.vdocumento.com/reader033/viewer/2022061305/54a5e0fc49795925738b4e09/html5/thumbnails/57.jpg)
ContribucionesContribuciones
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.
![Page 58: 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](https://reader033.vdocumento.com/reader033/viewer/2022061305/54a5e0fc49795925738b4e09/html5/thumbnails/58.jpg)
ConclusionesConclusiones
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
![Page 59: 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](https://reader033.vdocumento.com/reader033/viewer/2022061305/54a5e0fc49795925738b4e09/html5/thumbnails/59.jpg)
Trabajos a FuturoTrabajos a Futuro
Deshabilitación de Interrupciones por Prioridades
Implementación de Semáforos
Gestión de Tiempo No Periódica
Compatibilidad POSIX 1003.1b
Actualización a MINIX 3.0
![Page 60: 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](https://reader033.vdocumento.com/reader033/viewer/2022061305/54a5e0fc49795925738b4e09/html5/thumbnails/60.jpg)
GRACIAS!!GRACIAS!!
Ing. Pablo A. PessolaniIng. Pablo A. [email protected]@hotmail.com
http://www.geocities.com/minix4rt/minix4rt_main.htmlhttp://www.geocities.com/minix4rt/minix4rt_main.html