Threads, SMP y Microkernels Proceso

Anuncio
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
1
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
2
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
3
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
4
Uso de los Threads en un sistema
monousuario 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
5
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 Procedimiento
Remoto utilizando Threads
6
Llamada a Procedimiento
Remoto 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
7
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
8
Relación entre Threads y
Procesos
Threads:Proceso Descripción
1:1
Cada thread de ejecución es un
Proceso único con su propio
espacio de memoria y recursos
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.
Ejemplos de S.O.
UNIX tradicional
Windows NT, Solaris, OS/2,
OS/390, MACH
9
Relación entre Threads y
Procesos
Threads:Proceso Descripción
1:M
M:M
Ejemplos de S.O.
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
Combina atributos de los casos M:1
y 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
10
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
11
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
12
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
13
Ventajas de la organizacion
Microkernel
• 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 organizacion
Microkernel
• 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
14
Ventajas de la organizacion
Microkernel
• 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
15
Windows 2000
Objeto Proceso
16
Windows 2000
Objeto Thread
Windows 2000
Estados de Threads
•
•
•
•
•
•
Ready
Standby
Running
Waiting
Transition
Terminated
17
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
18
19
Ejecución de Threads en Solaris
•
•
•
•
Sincronización
Suspensión
Atención
Ceder el control
20
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
21
22
Descargar