Threads, SMP y Microkernels - Facultad de Ciencias...

22
1 Threads, SMP y Microkernels Proceso Propiedad de los recursos – a un proceso se le asigna un espacio de dirección virtual para guardar su imagen Calendarización/ejecución – sigue una ruta de ejecución la cual puede estar intercalada con la de otros procesos Estas dos características son tratadas de forma independiente por el sistema operativo

Transcript of Threads, SMP y Microkernels - Facultad de Ciencias...

Page 1: Threads, SMP y Microkernels - Facultad de Ciencias ...fcqi.tij.uabc.mx/usuarios/lpalafox/cursos/sistops/Threads.pdf · • Los sistemas operativos soportan múltiples threads de ejecución

1

Threads, SMP y Microkernels

Proceso

• Propiedad de los recursos – a un proceso se le asigna un espacio de dirección virtual para guardar su imagen

• Calendarización/ejecución – sigue una ruta de ejecución la cual puede estar intercalada con la de otros procesos

• Estas dos características son tratadas de forma independiente por el sistema operativo

Page 2: Threads, SMP y Microkernels - Facultad de Ciencias ...fcqi.tij.uabc.mx/usuarios/lpalafox/cursos/sistops/Threads.pdf · • Los sistemas operativos soportan múltiples threads de ejecución

2

Multithreading

• Los sistemas operativos soportan múltiples threads de ejecución dentro de un mismo proceso

• MS-DOS soporta un solo thread• UNIX soporta múltiples procesos de

usuario pero solo un thread por proceso• Windows XP/Vista, Solaris, Linux,

Mach, y OS/2 soportan múltiples threads

Page 3: Threads, SMP y Microkernels - Facultad de Ciencias ...fcqi.tij.uabc.mx/usuarios/lpalafox/cursos/sistops/Threads.pdf · • Los sistemas operativos soportan múltiples threads de ejecución

3

Proceso

• Tienen un espacio de dirección virtual el cual guarda la imagen del proceso

• Acceso protegido a procesadores, otros procesos, archivos y recursos de E/S

Thread• Un estado de ejecución (corriendo, listo, etc.)• Se guarda el contexto del thread cuando no se

está en ejecucion• Cuenta con una pila de ejecucion• Cuenta con algo de almacenamiento estatico

para variables locales• Acceso a la memoria y recursos de sus

procesos– todos los threads comparten esto

Page 4: Threads, SMP y Microkernels - Facultad de Ciencias ...fcqi.tij.uabc.mx/usuarios/lpalafox/cursos/sistops/Threads.pdf · • Los sistemas operativos soportan múltiples threads de ejecución

4

Ventajas de los threads• Toma menos tiempo el crear un nuevo thread

que un proceso• Menos tiempo en terminar un thread que un

proceso• Menos tiempo en conmutar entre dos threads

de un mismo proceso• Como los threads de un mismo proceso

comparten memoria y archivos, estos se pueden comunicar entre sí sin invocar el kernel

Page 5: Threads, SMP y Microkernels - Facultad de Ciencias ...fcqi.tij.uabc.mx/usuarios/lpalafox/cursos/sistops/Threads.pdf · • Los sistemas operativos soportan múltiples threads de ejecución

5

Uso de los Threads en un sistemamonousuario de multiprocesamiento

• Trabajo en el transfondo (background)• Procesamiento asíncrono• Ejecución veloz• Programación modular estructurada

Threads

• El suspender un proceso involucra suspender todos los threads del proceso ya que comparten el mismo espacio en memoria

• La terminación de un proceso, termina todos los threads que contiene

Page 6: Threads, SMP y Microkernels - Facultad de Ciencias ...fcqi.tij.uabc.mx/usuarios/lpalafox/cursos/sistops/Threads.pdf · • Los sistemas operativos soportan múltiples threads de ejecución

6

Estado de Threads

• Estados asociados con un cambio en el estado del thread– Generador (spawn)

• Genera otro theread

– Bloqueado– Desbloqueado– Concluido

• Libera el contexto de los registros y de las pilas

Llamada a ProcedimientoRemoto utilizando Threads

Page 7: Threads, SMP y Microkernels - Facultad de Ciencias ...fcqi.tij.uabc.mx/usuarios/lpalafox/cursos/sistops/Threads.pdf · • Los sistemas operativos soportan múltiples threads de ejecución

7

Llamada a ProcedimientoRemoto utilizando Threads

Threads a nivel de usuario

• Toda la administración de threads es llevada a cabo por la aplicación

• El kernel no está enterado de la existencia de threads

Page 8: Threads, SMP y Microkernels - Facultad de Ciencias ...fcqi.tij.uabc.mx/usuarios/lpalafox/cursos/sistops/Threads.pdf · • Los sistemas operativos soportan múltiples threads de ejecución

8

Threads a nivel del kernel

• W2K, Linux, y OS/2 son ejemplos de este enfoque

• El kernel mantiene información del contexto para el proceso y los threads

• La calendarización es llevada a cabo en base a los threads

Enfoques combinados

• Solaris es un ejemplo• La creación de threads es llevada a cabo

en espacio de usuario• La mayor parte de la calendarización y

sincronización de los threads es llevada a cabo en espacio de usuario

Page 9: Threads, SMP y Microkernels - Facultad de Ciencias ...fcqi.tij.uabc.mx/usuarios/lpalafox/cursos/sistops/Threads.pdf · • Los sistemas operativos soportan múltiples threads de ejecución

9

Relación entre Threads y Procesos

Threads:Proceso Descripción Ejemplos de S.O.

1:1 Cada thread de ejecución es unProceso único con su propio espacio de memoria y recursos

UNIX tradicional

M:1 Un proceso define un espacio de memoria y propiedad dinámica de recursos. Se pueden crear threads múltiples y ejecutados dentro del proceso.

Windows NT, Solaris, OS/2,OS/390, MACH

Page 10: Threads, SMP y Microkernels - Facultad de Ciencias ...fcqi.tij.uabc.mx/usuarios/lpalafox/cursos/sistops/Threads.pdf · • Los sistemas operativos soportan múltiples threads de ejecución

10

Relación entre Threads y Procesos

Threads:Proceso Descripción Ejemplos de S.O.

1:M Un thread puede migrar de un proceso a otro. Esto permite a un thread el desplazarse a través de varios sistemas.

Ra (Clouds), Emerald

M:M Combina atributos de los casos M:1y 1:M

TRIX

Categorías de Sistemas de Cómputo

• Instrucción Única, Datos Únicos (SISD)– un solo procesador ejecuta un solo flujo de

instrucciones que opera sobre datos almacenados en una sola memoria

• Instrucción Única, Datos Múltiples (SIMD)– cada instrucción es ejecutada en un

conjunto de datos distinto en diferentes procesadores

Page 11: Threads, SMP y Microkernels - Facultad de Ciencias ...fcqi.tij.uabc.mx/usuarios/lpalafox/cursos/sistops/Threads.pdf · • Los sistemas operativos soportan múltiples threads de ejecución

11

Categorías de Sistemas de Cómputo

• Instrucciones Múltiples, Datos Únicos (MISD)– una secuencia de datos es transmitida hacia un

conjunto de procesadores, donde una secuencia de datos es transmitida hacia un conjunto de procesadores, y cada uno de ellos ejecuta una secuencia de instrucciones diferente. Nunca se ha implementado

• Instrucciones Múltiples, Datos Múltiples (MIMD)– un conjunto de procesadores ejecutan secuencias de

instrucciones diferentes sobre conjuntos de datos diferentes

Page 12: Threads, SMP y Microkernels - Facultad de Ciencias ...fcqi.tij.uabc.mx/usuarios/lpalafox/cursos/sistops/Threads.pdf · • Los sistemas operativos soportan múltiples threads de ejecución

12

Multiprocesamiento Simétrico

• El kernel se puede ejecutar en cualquier procesador

• Típicamente cada procesador lleva a cabo su calendarización en base a los threads y/o procesos disponibles

Page 13: Threads, SMP y Microkernels - Facultad de Ciencias ...fcqi.tij.uabc.mx/usuarios/lpalafox/cursos/sistops/Threads.pdf · • Los sistemas operativos soportan múltiples threads de ejecución

13

Consideraciones de Diseño de Sistemas Operativos para

Multiprocesamiento• Procesos o threads simultáneamente

concurrentes• Calendarización• Sincronización• Administración de memoria• Confiabilidad y Tolerancia a Fallas

Microkernels• Pequeño núcleo del sistema operativo• Contiene solo las funciones esenciales del

sistema operativo• Muchos servicios incluidos tradicionalmente

en el S.O. ahora son subsistemas externos– controladores de dispositivos (drivers)– sistema de archivos– administrador de memoria virtual– sistema de ventanas– servicios de seguridad

Page 14: Threads, SMP y Microkernels - Facultad de Ciencias ...fcqi.tij.uabc.mx/usuarios/lpalafox/cursos/sistops/Threads.pdf · • Los sistemas operativos soportan múltiples threads de ejecución

14

Ventajas de la organizacionMicrokernel

• Interfaz uniforme a las peticiones hechas por los procesos– Todos los servicios son provistos por medio del

intercambio de mensajes

• Extensibilidad– Permite la adición de nuevos servicios

• Flexibilidad– Se pueden agregar nuevas funcionalidades– Funcionalidades existentes pueden ser removidas

Ventajas de la organizacionMicrokernel

• Portabilidad– Los cambios necesitados para portar el

sistema a un nuevo procesador son hechos en el microkernel y NO en otros servicios

• Confiabilidad– Diseño Modular– El pequeño microkernel puede ser probado

rigurosamente

Page 15: Threads, SMP y Microkernels - Facultad de Ciencias ...fcqi.tij.uabc.mx/usuarios/lpalafox/cursos/sistops/Threads.pdf · • Los sistemas operativos soportan múltiples threads de ejecución

15

Ventajas de la organizacionMicrokernel

• Soporte a sistemas distribuidos– Los mensajes son enviados sin saber a cuál

es la computadora destino• Sistema operativo orientado a objetos

– Los componentes son objetos con interfaces definidas claramente que pueden ser interconectadas para formar software

Diseño microkernel

• Administración de memoria de bajo nivel– Mapear cada página virtual a una página

física• Comunicación inter-procesos• Administración de E/S e interrupciones

Page 16: Threads, SMP y Microkernels - Facultad de Ciencias ...fcqi.tij.uabc.mx/usuarios/lpalafox/cursos/sistops/Threads.pdf · • Los sistemas operativos soportan múltiples threads de ejecución

16

Windows 2000Objeto Proceso

Page 17: Threads, SMP y Microkernels - Facultad de Ciencias ...fcqi.tij.uabc.mx/usuarios/lpalafox/cursos/sistops/Threads.pdf · • Los sistemas operativos soportan múltiples threads de ejecución

17

Windows 2000Objeto Thread

Windows 2000Estados de Threads

• Ready• Standby• Running• Waiting• Transition• Terminated

Page 18: Threads, SMP y Microkernels - Facultad de Ciencias ...fcqi.tij.uabc.mx/usuarios/lpalafox/cursos/sistops/Threads.pdf · • Los sistemas operativos soportan múltiples threads de ejecución

18

Solaris

• El proceso incluye el espacio de memoria de usuario, la pila y el bloque de control del proceso

• Threads a nivel de usuario• Procesos ligeros• Threads de kernel

Page 19: Threads, SMP y Microkernels - Facultad de Ciencias ...fcqi.tij.uabc.mx/usuarios/lpalafox/cursos/sistops/Threads.pdf · • Los sistemas operativos soportan múltiples threads de ejecución

19

Page 20: Threads, SMP y Microkernels - Facultad de Ciencias ...fcqi.tij.uabc.mx/usuarios/lpalafox/cursos/sistops/Threads.pdf · • Los sistemas operativos soportan múltiples threads de ejecución

20

Ejecución de Threads en Solaris

• Sincronización• Suspensión• Atención• Ceder el control

Page 21: Threads, SMP y Microkernels - Facultad de Ciencias ...fcqi.tij.uabc.mx/usuarios/lpalafox/cursos/sistops/Threads.pdf · • Los sistemas operativos soportan múltiples threads de ejecución

21

Procesos en Linux• Estado• Información de calendarización• Identificadores• Comunicación interprocesos• Ligas• Tiempos y temporizadores• Sistemas de archivos• Memoria virtual• Contexto especifico del proceso

Estados de un proceso en Linux

• Running• Interruptable• Uninterruptable• Stopped• Zombie

Page 22: Threads, SMP y Microkernels - Facultad de Ciencias ...fcqi.tij.uabc.mx/usuarios/lpalafox/cursos/sistops/Threads.pdf · • Los sistemas operativos soportan múltiples threads de ejecución

22