1 / 23

Extendiendo Minix a Arquitecturas SMP

Extendiendo Minix a Arquitecturas SMP. Jesús M. Álvarez Llorente Juan Carlos Díaz Martín José Manuel Rodríguez García. Departamento de Informática Universidad de Extremadura. Minix SMP. 1. Motivación y objetivos 2. Arquitectura multiprocesador de Intel 3. Arquitectura de Minix 2.0.0

thad
Download Presentation

Extendiendo Minix a Arquitecturas SMP

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Extendiendo Minix a Arquitecturas SMP Jesús M. Álvarez Llorente Juan Carlos Díaz Martín José Manuel Rodríguez García Departamento de Informática Universidad de Extremadura

  2. Minix SMP 1. Motivación y objetivos 2. Arquitectura multiprocesador de Intel 3. Arquitectura de Minix 2.0.0 4. Principios de diseño 5. Detalles de implementación 6. Conclusiones. 7. Trabajo futuro. Extendiendo Minix a Arquitecturas SMP - XIII Jornadas de Paralelismo - Lleida, septiembre de 2002

  3. 1. Motivación y objetivos 1. Motivación y objetivos • Minix es la referencia por excelencia para la docencia de Sistemas Operativos. Microkernel, POSIX, Intel, manejable, gratuito, documentado, real... • Las arquitecturas multiprocesador se están popularizando. • Es difícil encontrar bibliografía sobre multiprocesadores (hardware y sistemas operativos). Extendiendo Minix a Arquitecturas SMP - XIII Jornadas de Paralelismo - Lleida, septiembre de 2002

  4. 1. Motivación y objetivos • Repetimos el planteamiento de Tanenbaum: fabricamos un S.O. Multiprocesador para aprender. • No partimos de cero: aprovechamos Minix. • Aprovechamos lo aprendido. • Aprendemos las diferencias. • Es una buena base, dará un buen resultado. Extendiendo Minix a Arquitecturas SMP - XIII Jornadas de Paralelismo - Lleida, septiembre de 2002

  5. 2. Arquitectura Intel MP 2. Arquitectura Intel MP • Especificación Intel MP 1.4 para Pentium*. • Memoria compartida. Coherencia de cache. • Instrucciones atómicas. • El BIOS configura para simular monoprocesador y proporciona información en una Tabla de Configuración MP. • El BSP arranca, los AP esperan. Extendiendo Minix a Arquitecturas SMP - XIII Jornadas de Paralelismo - Lleida, septiembre de 2002

  6. 2. Arquitectura Intel MP • Se perfecciona el hardware de interrupciones: APIC local, I/O APIC, IPI,... Extendiendo Minix a Arquitecturas SMP - XIII Jornadas de Paralelismo - Lleida, septiembre de 2002

  7. 3. Arquitectura de Minix 2.0.0 3. Arquitectura de Minix 2.0.0 • Microkernel, 3 niveles de procesos Extendiendo Minix a Arquitecturas SMP - XIII Jornadas de Paralelismo - Lleida, septiembre de 2002

  8. 3. Arquitectura de Minix 2.0.0 • Modo protegido: indispensable para MP. • Planificador: Extendiendo Minix a Arquitecturas SMP - XIII Jornadas de Paralelismo - Lleida, septiembre de 2002

  9. 3. Arquitectura de Minix 2.0.0 • Núcleo reentrante: interrupciones retenidas. Extendiendo Minix a Arquitecturas SMP - XIII Jornadas de Paralelismo - Lleida, septiembre de 2002

  10. 4. Principios de diseño 4. Principios de diseño • Objetivo principal: mantener la estructura original de Minix 2.0.0 lo más intacta posible. • Escalable y condicional. • Para un doble Pentium III (Intel MP 1.4). Extendiendo Minix a Arquitecturas SMP - XIII Jornadas de Paralelismo - Lleida, septiembre de 2002

  11. 4. Principios de diseño • Alcance de la extensión: Extendiendo Minix a Arquitecturas SMP - XIII Jornadas de Paralelismo - Lleida, septiembre de 2002

  12. 4. Principios de diseño • Nuevo código para el nuevo hardware: • Tabla de Configuración MP. • Acceso a APIC (local, I/O). • Arranque/Detención. • Primitivas de sincronización: spinlocks (primitivas LOCK, UNLOCK) • Código modificado: • Sincronización de regiones críticas. • Modificación del planificador. • Replicación de recursos. Extendiendo Minix a Arquitecturas SMP - XIII Jornadas de Paralelismo - Lleida, septiembre de 2002

  13. 4. Principios de diseño • Regiones críticas: el micronúcleo completo. Extendiendo Minix a Arquitecturas SMP - XIII Jornadas de Paralelismo - Lleida, septiembre de 2002

  14. 4. Principios de diseño • Planificador: • SMP: “Ninguno de los procesadores es distinto de los demás”. • Cada procesador toma trabajo sin conocer la existencia de los demás. • Un procesador sólo toma procesos listos que no pertenezcan a otro. • Sincronización del planificador: métodos son regiones críticas. Extendiendo Minix a Arquitecturas SMP - XIII Jornadas de Paralelismo - Lleida, septiembre de 2002

  15. 4. Principios de diseño • Bloqueo del planificador desde las tareas E/S Extendiendo Minix a Arquitecturas SMP - XIII Jornadas de Paralelismo - Lleida, septiembre de 2002

  16. 4. Principios de diseño • Algunos recursos se replican para cada procesador: • Variables pasan a ser vectores (array). • Cada procesador accede a su índice. • Identificación del procesador mediante su APIC local. Extendiendo Minix a Arquitecturas SMP - XIII Jornadas de Paralelismo - Lleida, septiembre de 2002

  17. 5. Detalles de implementación 5. Detalles de implementación • Implementación de cerrojos: LOCK, UNLOCK mediante instrucciones atómicas. #define MP_LOCK(semaphore_var) ;\ 0: clc ;\ lock bts (semaphore_var), 0 ;\ jnc 2f ;\ 1: cmp (semaphore_var), 0 ;\ jne 1b ;\ jmp 0b ;\ 2: #define MP_UNLOCK(semaphore_var) ;\ lock btr (semaphore_var), 0 Extendiendo Minix a Arquitecturas SMP - XIII Jornadas de Paralelismo - Lleida, septiembre de 2002

  18. 5. Detalles de implementación • Estructuras replicadas: • Puntero de proceso proc_ptr. • Puntero de tarificación bill_ptr. • Pila del núcleo. • Contador de reentradas k_reenter. • Estructura TSS (Task State Segment). • Tarea IDLE. Extendiendo Minix a Arquitecturas SMP - XIII Jornadas de Paralelismo - Lleida, septiembre de 2002

  19. 5. Detalles de implementación • Procedimiento de arranque: • El BIOS arranca el BSP como si estuviera solo y dispone una Tabla de Configuración MP en memoria. • El BSP prepara el código inicial del AP en una dirección determinada (pista de aterrizaje, trampoline). • El BSP envía interrupciones IPI a los AP indicando la dirección. • Cada AP comienza a ejecutar desde esa dirección: • Paso a modo protegido • Clonación de estructuras de memoria. • Habilitación de interrupciones. • Salto al dispatcher Extendiendo Minix a Arquitecturas SMP - XIII Jornadas de Paralelismo - Lleida, septiembre de 2002

  20. 5. Detalles de implementación Extendiendo Minix a Arquitecturas SMP - XIII Jornadas de Paralelismo - Lleida, septiembre de 2002

  21. 6. Conclusiones 6. Conclusiones • La extensión de Minix a SMP resulta sencilla de comprender. • Se parece mucho a la extensión de Linux. • Lo más complejo es entender el hardware. • Esto reafirma nuestro interés en este trabajo, que nos aporta: • Un sistema SMP para uso docente. • Una valiosa experiencia y documentación. Extendiendo Minix a Arquitecturas SMP - XIII Jornadas de Paralelismo - Lleida, septiembre de 2002

  22. 7. Trabajo futuro 7. Trabajo futuro • Publicación del código (¡inminente!). • Perfeccionamiento del código: • Utilización del I/O APIC. • Optimización y mejora del código. • Ampliación de arquitecturas. • Integración con Pthreads (proyecto PONNHI). Extendiendo Minix a Arquitecturas SMP - XIII Jornadas de Paralelismo - Lleida, septiembre de 2002

  23. Agradecimientos Agradecimientos Financiado por el proyecto CICYT nº TIC99-0960, “Diseño e Implementación de Algoritmos de Procesado de Señal de Altas Prestaciones para Reconocimiento de Voz en Condiciones Adversas” Ruegos y preguntas Extendiendo Minix a Arquitecturas SMP - XIII Jornadas de Paralelismo - Lleida, septiembre de 2002

More Related