La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

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.

Presentaciones similares


Presentación del tema: "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."— Transcripción de la presentación:

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


Descargar ppt "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."

Presentaciones similares


Anuncios Google