Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porTherasia Valenzuela Modificado hace 9 años
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
Extendiendo Minix a Arquitecturas SMP - XIII Jornadas de Paralelismo - Lleida, septiembre de 2002 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.
3
Extendiendo Minix a Arquitecturas SMP - XIII Jornadas de Paralelismo - Lleida, septiembre de 2002 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). 1. Motivación y objetivos
4
Extendiendo Minix a Arquitecturas SMP - XIII Jornadas de Paralelismo - Lleida, septiembre de 2002 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.
5
Extendiendo Minix a Arquitecturas SMP - XIII Jornadas de Paralelismo - Lleida, septiembre de 2002 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. 2. Arquitectura Intel MP
6
Extendiendo Minix a Arquitecturas SMP - XIII Jornadas de Paralelismo - Lleida, septiembre de 2002 2. Arquitectura Intel MP Se perfecciona el hardware de interrupciones: APIC local, I/O APIC, IPI,...
7
Extendiendo Minix a Arquitecturas SMP - XIII Jornadas de Paralelismo - Lleida, septiembre de 2002 3. Arquitectura de Minix 2.0.0 Microkernel, 3 niveles de procesos 3. Arquitectura de Minix 2.0.0
8
Extendiendo Minix a Arquitecturas SMP - XIII Jornadas de Paralelismo - Lleida, septiembre de 2002 3. Arquitectura de Minix 2.0.0 Modo protegido: indispensable para MP. Planificador:
9
Extendiendo Minix a Arquitecturas SMP - XIII Jornadas de Paralelismo - Lleida, septiembre de 2002 3. Arquitectura de Minix 2.0.0 Núcleo reentrante: interrupciones retenidas.
10
Extendiendo Minix a Arquitecturas SMP - XIII Jornadas de Paralelismo - Lleida, septiembre de 2002 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). 4. Principios de diseño
11
Extendiendo Minix a Arquitecturas SMP - XIII Jornadas de Paralelismo - Lleida, septiembre de 2002 4. Principios de diseño Alcance de la extensión:
12
Extendiendo Minix a Arquitecturas SMP - XIII Jornadas de Paralelismo - Lleida, septiembre de 2002 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.
13
Extendiendo Minix a Arquitecturas SMP - XIII Jornadas de Paralelismo - Lleida, septiembre de 2002 4. Principios de diseño Regiones críticas: el micronúcleo completo.
14
Extendiendo Minix a Arquitecturas SMP - XIII Jornadas de Paralelismo - Lleida, septiembre de 2002 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.
15
Extendiendo Minix a Arquitecturas SMP - XIII Jornadas de Paralelismo - Lleida, septiembre de 2002 4. Principios de diseño Bloqueo del planificador desde las tareas E/S
16
Extendiendo Minix a Arquitecturas SMP - XIII Jornadas de Paralelismo - Lleida, septiembre de 2002 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.
17
Extendiendo Minix a Arquitecturas SMP - XIII Jornadas de Paralelismo - Lleida, septiembre de 2002 5. Detalles de implementación Implementación de cerrojos: LOCK, UNLOCK mediante instrucciones atómicas. #define MP_LOCK(semaphore_var);\ 0:clc;\ lockbts(semaphore_var),0;\ jnc2f;\ 1:cmp(semaphore_var),0;\ jne1b;\ jmp0b;\ 2: #define MP_UNLOCK(semaphore_var);\ lockbtr(semaphore_var),0 #define MP_LOCK(semaphore_var);\ 0:clc;\ lockbts(semaphore_var),0;\ jnc2f;\ 1:cmp(semaphore_var),0;\ jne1b;\ jmp0b;\ 2: #define MP_UNLOCK(semaphore_var);\ lockbtr(semaphore_var),0 5. Detalles de implementación
18
Extendiendo Minix a Arquitecturas SMP - XIII Jornadas de Paralelismo - Lleida, septiembre de 2002 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.
19
Extendiendo Minix a Arquitecturas SMP - XIII Jornadas de Paralelismo - Lleida, septiembre de 2002 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
20
Extendiendo Minix a Arquitecturas SMP - XIII Jornadas de Paralelismo - Lleida, septiembre de 2002 5. Detalles de implementación
21
Extendiendo Minix a Arquitecturas SMP - XIII Jornadas de Paralelismo - Lleida, septiembre de 2002 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. 6. Conclusiones
22
Extendiendo Minix a Arquitecturas SMP - XIII Jornadas de Paralelismo - Lleida, septiembre de 2002 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). 7. Trabajo futuro
23
Extendiendo Minix a Arquitecturas SMP - XIII Jornadas de Paralelismo - Lleida, septiembre de 2002 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” Agradecimientos
Presentaciones similares
© 2024 SlidePlayer.es Inc.
All rights reserved.