MINIX4RT: A Real-Time Operating System Based on MINIX

Slides:



Advertisements
Presentaciones similares
Capitulo 7: Procesamiento batch y el Job Entry Subsystem (JES)
Advertisements

Tabla de Contenido Concurrencia.
information technology service
Sistemas Operativos Administración del procesador.
Planificación de Monoprocesadores
El servicio de gestión de reuniones virtuales y sesiones de formación Vídeo – Reunión es la solución de que permite gestionar videoconferencias y eventos.
Arquitectura Avanzada
Sistema operativo Componentes de un sistema operativo
Planificador de Procesos
I.T.E.S.R.C. Romina Tamez Andrea Martínez Ma. De Lourdes Solís
Common Object Request Broker Architecture
Virtual PC.
Tema 1 SRI Vicente Sánchez Patón I.E.S Gregorio Prieto
TEMA 2: «CONFIGURACIÓN DE MÁQUINAS VIRTUALES»
Sistemas en estratos. Descripción: se organiza en una jerarquía de estratos, estando construido cada uno de ellos sobre el otro que tiene menor jerarquía.
CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament dArquitectura de Computadors (Seminaris de CASO) Autors QNX (Un ejemplo de SOTR) Javier Sebastián.
POLITICAS DE PLANIFICACION
TUTOR: ING. RAYNER DURANGO
Compartir Informacion Compartir Hardware y Software
Estructuras en Sistemas Operativos
Base de la biblioteca de threads a nivel usuario del proyecto SODIUM.
Tareas en Linux · TASK_RUNNING (0): Indica que el proceso en cuestión se está ejecutando o listo para ejecutarse. En este segundo caso, el proceso dispone.
Base de Datos Distribuidas
Es un Sistema operativo de red. Es una de las plataformas de servicio más fiable para ofrecer acceso seguro y continuado a la red y los recursos de.
IMPLEMENTACIÓN DEL ALGORITMO DE PRIORIDADES DUALES EN RT-LINUX
Janny David Vilac Salazar David Alejandro Gallo Moya
UPV - EHU MOISE Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 1 Introducción al tiempo real.
CONCURRENCIA. PLANIFICACIÓN DE PROCESOS EN SISTEMAS EN TIEMPO REAL Juan Antonio Fernández Madrigal, 2004 Departamento de Ingeniería de Sistemas y Automática.
1 Consigna 2006 UPV/EHU Consigna David Fernández Acin CIDIR Bizkaia Euskal Herriko Unibertsitatea / Universidad del País Vasco XXII.
ESCUELA SUPERIOR POLITECNICA DEL LITORAL FACULTAD DE INGENIERIA EN ELECTRICIDAD Y COMPUTACION.
PONNHI PONNHI Una Nueva Arquitectura Microkernel Pthreads en Espacio de Usuario José Manuel Rodríguez García Juan A. Rico Gallego Jesús M. Álvarez Llorente.
Introducción a Sistemas de Tiempo Real Rodrigo Camacho I Gabriel Sepúlveda V Programación de Sistemas Segundo Semestre 2005.
Universidad de Cantabria
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS (LA DECANA DE AMERICA)
Introducción a la Programación. Lenguaje de Máquina.
Software Sistemas Operativos
M.C. Juan Carlos Olivares Rojas
 Tiempo real  Arquitectura Microkernel  Partición adaptativa.
Manuela Chavarriaga Betancur Telecomunicaciones 11º3 Resumen Capitulo 2.
INFORMATICA III ESCUELA DE INGENIERIA ELECTRONICA DEPARTAMENTO DE SISTEMAS E INFORMATICA.
Hebras, SMP, y Microkernels
Planificación de Procesos
Teoría de Sistemas Operativos Departamento de Electrónica 2º Semestre, 2002 Gabriel Astudillo Muñoz
Introducción a los Sistemas Operativos
Introducción al tiempo real en sistemas empotrados
Gestión de procesos Sistemas Operativos Edwin Morales
TEMA 10. SISTEMAS OPERATIVOS DISTRIBUIDOS
Estructuras en Sistemas Operativos DAISY KATERINE RODRÍGUEZ.
1 Descripción y control de procesos Capítulo 3. 2 Requerimientos de un SO relacionados con procesos Ejecutar concurrentemente múltiples procesos para.
Breve introducción a la arquitectura de 32 bits intel.
Breve introducción a la arquitectura de 32 bits intel.
Por: Ana Karina Andonegui Peña. Un sistema operativo de red (Network Operating System) es un componente software de una computadora que tiene como objetivo.
“condición que necesita el usuario para resolver un problema o conseguir un objetivo determinado”. Los requisitos de un sistema son los aspectos que el.
 Qué opinan de un Sistema Operativo (S.O.)?  Qué esperan de un S.O.?  Cuál es el S.O. de su preferencia?  Qué los decepciona de su S.O?  Cómo y por.
INTRODUCCION A SISTEMAS OPERATIVOS
Sistemas Operativos.
MARIANA PRECIADO VILLA TELECOMUNICACIONES 11º3
UTFSM - Sistemas Operativos
Kernel Para PDA Con Soporte a Procesos De Tiempo Real Francisco Javier Zuluaga Ramírez Asesor: Dr. Pedro Mejía Álvarez.
APACHE WEB SERVER El proyecto Apache Web Server es un desarrollo de software en colaboración, enfocado en crear una implementación de un servidor HTTP.
Sistemas Operativos I Introducción
Elementos y tipos de sistemas operativos
SEGURIDAD EN SERVIDORES WEB (APACHE).
Estructuras en Sistemas Operativos DAISY KATERINE RODRÍGUEZ.
Tema 1 – Introducción a las Redes informáticas
TECNICO EN SISTEMAS NUMERO DE FICHA:
Planificación de uso del procesador Rina Arauz. Planificación de CPU 2 UNAN-Leon La ejecución de un trabajo se compone de secuencias de procesador y de.
INVESTIGACION DE TEMARIO JOSE LUIS VEGA MERINO.  1.2. Requerimientos de instalación.  Microsoft Windows 7 Professional y Microsoft Windows 7 Ultimate.
SOFTWARE DE COMPUTADORAS
1.El softwareEl software 2.Licencias de softwareLicencias de software 3.Sistemas operativos actualesSistemas operativos actuales 4.VirtualizaciónVirtualización.
Transcripción de la presentación:

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

INTRODUCCION 3

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

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

Información Previa sobre MINIX y RT-MINIX 3

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

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

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

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

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

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

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

ARQUITECTURA 10

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

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

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

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

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

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

GESTION DE INTERRUPCIONES 10

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

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

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

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

GESTION DE PROCESOS 10

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

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

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

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

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

Planificación de Procesos en MINIX 12

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

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

GESTION DEL TIEMPO 10

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

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

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

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

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

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

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

COMUNICACIÓN ENTRE PROCESOS (IPC) 10

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

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

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

LLAMADAS AL SISTEMA Y LLAMADAS AL KERNEL 10

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

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

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

TESTS DE PERFORMANCE 10

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

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

Tests de Latencia de Interrupciones 19

Test de Puntualidad 19

Test de Transferencia de Mensajes 19

Flujo Máximo de Mensajes 19

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

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

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

GRACIAS!! Ing. Pablo A. Pessolani ppessolani@hotmail.com http://www.geocities.com/minix4rt/minix4rt_main.html 3