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.

Slides:



Advertisements
Presentaciones similares
TEMA 1 Introducción a la Programación Concurrente
Advertisements

Sistema operativo Componentes de un sistema operativo
Supervisión del rendimiento de SQL Server
I.T.E.S.R.C. Romina Tamez Andrea Martínez Ma. De Lourdes Solís
Arquitectura de computadoras
Modelo de procesos de dos estados
Estructuras en Sistemas Operativos
UNIVERSIDAD LATINA (UNILA) IV. IMPLANTACION DE ALGORITMOS.
SISTEMAS OPERATIVOS UNIDAD 1..
SISTEMA OPERATIVO.
El patrón de diseño Proxy Raúl Heras Alberto Blasco José Manuel Arévalo.
PROCESAMIENTO PARALELO.  Organización lógica ◦ Visión que tiene el programados  Capacidad de expresar tareas paralelas (Estructura de control)  Método.
Introducción a los SSOO Sebastián Sánchez Prieto.
HILOS Y COMUNICACIÓN ENTRE PROCESOS
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.
Tema 10: Gestión de Memoria
Centralizados y Distribuidos
Programación en los procecesadores Intel® Multi Core.
Hilos - Lightweight process - Procesos ligeros
Procesamiento paralelo
OMAR SANCHEZ ROBLES HECTOR PEREZ GARCIA. “Sistemas de cómputo compuesto por un gran número de CPU´s conectados mediante una red de alta velocidad”, Tanenbaum.
Estructura del sistema operativo
Secciones y Segmentos STARTUP
Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),
M.C. Juan Carlos Olivares Rojas
Asignación de Espacio No Contiguo
Contenido Estructura del computador Ejecución de instrucciones
IDSP Jesús M. Álvarez Llorente Juan C. Díaz Martín José M. Rodríguez García Juan L. García Zapata Juan A. Rico Gallego Departamento de Informática Universidad.
Introducción a los Sistemas Operativos
Introducción al tiempo real en sistemas empotrados
SISTEMAS OPERATIVOS.
Departamento de Informática. Curso ENTRADA Y SALIDA LECCIÓN 12 ORGANIZACIÓN DE ENTRADA Y SALIDA.
Sistemas Concurrentes I.T. Informática de Sistemas Curso
Sincronización de Procesos
TEMA 10. SISTEMAS OPERATIVOS DISTRIBUIDOS
Estructuras en Sistemas Operativos DAISY KATERINE RODRÍGUEZ.
Conceptos básicos de procesamiento en procecesadores Intel® Multi Core.
Integrantes: Ma Carmen Zaragoza Santiago Leticia González Hernández Abraham Obispo Antonio Alexis González Ramírez Eduardo Hernández Tolentino.
Administrador de procesos
SISTEMAS OPERATIVOS 1.4 CLASIFICACIÓN DE LOS S.O
Seguridad DNS. Javier Rodríguez Granados.
S EGURIDAD DNS - V ULNERABILIDADES, AMENAZAS Y ATAQUES. - M ECANISMOS DE SEGURIDAD. Luis Villalta Márquez.
Introducción a los SOs.
Integrante: Yohandry Cueto Carnet: # Contenido Kernel Linux Limitaciones del Kernel Linux Kernel Mach Que es Hurd Arquitectura Ventajas Distribuciones.
Breve introducción a la arquitectura de 32 bits intel.
CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO
Breve introducción a la arquitectura de 32 bits intel.
Moodle es un entorno de aprendizaje que está basado en los principios pedagógicos constructivistas, con un diseño modular que hace fácil agregar contenidos.
Sistemas Operativos Avanzados
Sistema operativo Unix
Ing. Lionel Hendryk. Sistemas Embebidos Un sistema embebido es un sistema de computación diseñado para realizar una o algunas pocas funciones dedicadas.
Sistemas Operativos.
Por Luis Esteban Monsalve Martínez
Gabriel Montañés León.  El sistema de nombres de dominio (DNS, Domain Name System) se diseñó originalmente como un protocolo. Antes de considerar qué.
S.o de red. Introducción a los Sistemas Operativos de Red Al igual que un equipo no puede trabajar sin un sistema operativo, una red de equipos no puede.
ARQUICTECTURA DE SERVIDORES
INTEGRANTES: ONEIDA OSORIO VILLA, JUAN CAMILO SÁNCHEZ BAENA, JOANNA SÁNCHEZ, LUISA VILLA, JIMMY MORALES, BRIAM ZAMBRANO.
ARQUITECTURA ALTERNATIVA DE SERVIDORES SISTEMAS OPERTIVOS DE RED En un sistema operativo de red los usuarios saben que están conectados a la red y que.
Son los atributos de un sistema que son visibles para un programador, es decir aquellos atributos que impactan directamente en la ejecución lógica de un.
INTERRUPCIONES – ABRAZO MORTAL
Naime Cecilia del Toro Alvarez
Elementos y tipos de sistemas operativos
UNIDAD I INTRODUCCION A LOS S.O.
Estructuras en Sistemas Operativos DAISY KATERINE RODRÍGUEZ.
ELEMENTO DE COMPETENCIA 3
También es conocido como proceso ligero. Es una entidad básica de utilización de CPU y esta formado por un contador de programa, algunos registros y una.
PROCESADOR.- El procesador es el cerebro del sistema, encargado de procesar toda la información. Básicamente, es el "cerebro" de la computadora. Prácticamente,
VI. EVALUACIÓN DE LOS RECURSOS
Estructura del sistema operativo
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) IV. IMPLANTACION DE ALGORITMOS.
Transcripción de la presentación:

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

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

Extendiendo Minix a Arquitecturas SMP - XIII Jornadas de Paralelismo - Lleida, septiembre de 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 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

Extendiendo Minix a Arquitecturas SMP - XIII Jornadas de Paralelismo - Lleida, septiembre de 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 Arquitectura de Minix Microkernel, 3 niveles de procesos 3. Arquitectura de Minix 2.0.0

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

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

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

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

Extendiendo Minix a Arquitecturas SMP - XIII Jornadas de Paralelismo - Lleida, septiembre de 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 Principios de diseño Regiones críticas: el micronúcleo completo.

Extendiendo Minix a Arquitecturas SMP - XIII Jornadas de Paralelismo - Lleida, septiembre de 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 Principios de diseño Bloqueo del planificador desde las tareas E/S

Extendiendo Minix a Arquitecturas SMP - XIII Jornadas de Paralelismo - Lleida, septiembre de 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 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

Extendiendo Minix a Arquitecturas SMP - XIII Jornadas de Paralelismo - Lleida, septiembre de 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 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 Detalles de implementación

Extendiendo Minix a Arquitecturas SMP - XIII Jornadas de Paralelismo - Lleida, septiembre de 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

Extendiendo Minix a Arquitecturas SMP - XIII Jornadas de Paralelismo - Lleida, septiembre de 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

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