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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
16
Windows 2000Objeto Proceso
17
Windows 2000Objeto Thread
Windows 2000Estados de Threads
• Ready• Standby• Running• Waiting• Transition• Terminated
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
19
20
Ejecución de Threads en Solaris
• Sincronización• Suspensión• Atención• Ceder el control
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
22
Top Related