Threads, SMP, and Microkernels Proceso Proceso Multithreading

Anuncio
Proceso
Threads, SMP, and Microkernels
Capítulo 4
Proceso
• En relación con el despacho (dispatching)
nos referimos a threads
• En relación con recursos de propiedad nos
referimos a procesos o tareas
• Propiedad de Recurso – el proceso se
ubica en un espacio de direccionamiento
virtual que tiene la imagen del proceso
• Planificación/ejecución – sigue un
camino de ejecución que puede
entrelazarse con otros procesos
• El sistema operativo trata estas dos
características de forma independiente
Multithreading
• El sistema operativo permite múltiples
threads de ejecución por cada proceso
• MS-DOS sólo tiene un thread
• UNIX permite múltiples procesos de
usuario, pero sólo un thread por proceso
• Windows 2000, Solaris, Linux, Mach,
and OS/2 soportan múltiples threads
Proceso
• Tiene un espacio de direccionamiento
virtual que mantiene la imagen del proceso
• Aceso protegido a los procesadores, otros
procesos, ficheros y recursos de E/S
Thread
• Un estado de ejecución (running, ready, etc.)
• Contexto del thread guardado cuando no se
está ejecutando
• Tiene una pila de ejecución
• Almacenamiento estático per-thread para
variables locales
• Acceso a la memoria y recursos de su proceso
– todos los threads de un proceso comparten esto
Ventajas de los Threads
• Se tarda menos tiempo en crear un thread nuevo
que un proceso
• Menos tiempo en terminar un thread que un
proceso
• Menos tiempo en commutar dos threads del
mismo proceso
• Como los threads del mismo proceso comparten
memoria y ficheros, se pueden comunicar sin
necesidad de usar el kernel
Threads
• Suspender un proceso lleva consigo
suspender todos sus threads ya que todos
ellos comparten el mismo espacio de
direccionamiento
• La finalización de un proceso, finaliza
todos los threads de ese proceso
El uso de Threads en un Sistema
Multiprocesamiento Mono-usuario
• El trabajo se pasa al segundo plano
– Del Foreground al background
• Procesamiento asíncrono
• Velocidad de ejecución
• Estructura del programa modular
Estados de los Thread
• Estados asociados con el cambio de estado
de los threads
– Spawn
(generado)
• Generar otro thread
– Block
– Unblock
– Finish
(bloqueado)
(desbloqueado)
(finalizado)
• Liberar contexto y pilas
Llamada a Procedimiento Remoto
(RPC) usando Threads
Threads de nivel de Usuario
• Toda la gestión de los threads se realiza
desde la aplicación
• El kernel no se preocupa de la existencia
de los threads
Llamada a Procedimiento Remoto
(RPC) usando Threads
Threads de nivel de Kernel
• W2K, Linux, y OS/2 son ejemplos de este tipo
de gestión de thread
• El Kernel mantiene información de contexto de
los procesos y threads
• La planificación se realiza en base a los threads
Enfoques combinados
• Solaris es un ejemplo
• La creación de threads se hace en el
espacio del usuario
• La mayor parte de la planificación y
sincronización de threads se hace en el
espacio del usuario
Relación entre número de
threads y de procesos
Threads:Proceso Descripción
1:1
Cada thread de ejecución es un
único proceso con su propio
espacio y recursos.
M:1
Un proceso define un espacio
de direccionamiento y una
propiedad de recursos dinámica.
Se pueden crear y ejecutar
múltiples threads de este proceso.
Sistemas Ejemplo
Implementaciones tradicionales
de UNIX
Relación entre número de
threads y de procesos
Threads:Proceso Descripción
1:M
Un thread puede migrar del
Entorno de un proceso a otro.
Esto le permite al thread
moverse facilmente entre
distintos sistemas.
M:M
Combina propiedades de
los casos M:1 y 1:M
Windows NT, Solaris, OS/2,
OS/390, MACH
Sistemas Ejemplo
Ra (Clouds), Emerald
TRIX
Categoría de los sistemas computadores
Taxonomía de Flynn
• Single Instruction Single Data (SISD)
– un único procesador ejecuta una única
secuencia de instrucciones operando sobre
datos almacenados en una única memoria
• Single Instruction Multiple Data (SIMD)
– Cada instrucción es ejecutada sobre un
conjunto de datos por distintos procesadores
Categoría de los sistemas computadores
Taxonomía de Flynn
• Multiple Instruction Single Data (MISD)
– una secuencia de datos se transmite a un
conjunto de procesadores, cada uno
ejecutando una secuencia de instrucciones
distinta. Sistemas sistólicos.
• Multiple Instruction Multiple Data
(MIMD)
– un conjunto de procesadores simultáneamente
ejecuta diferentes secuencias de instrucciones
sobre conjuntos de datos disjuntos
Multiprocesamiento Simétrico
• El Kernel se puede ejecutar sobre
cualquier procesador
• Normalmente cada procesador realiza su
propia planificación a pertir de los
procesos o threads disponibles
Consideraciones de Diseño de
Sistemas Operativos Multiprocesador
•
•
•
•
•
Microkernels
• Núcleo del sistema operativo pequeño
• Contiene sólo las funciones esenciales del sistema
operativo
• Muchos servicios, tradicionalmente incluidos en el
sistema operativo, son ahora subsistemas externos
–
–
–
–
–
controladores de dispositivos
sistema de ficheros
gestor de la memoria virtual
sistema de ventanas
servicios de seguridad
Concurrencia simultánea de procesos o threads
Planificación
Sincronización
Gestión de Memoria
Fiabilidad y Tolerancia a Fallos
Ventajas del Microkernel
• Interfaz uniforme de peticiones realizadas
por un proceso
– Todos los servicios se realizan a través de paso
de mensajes
• Extensibilidad
– Se pueden añadir nuevos servicios
• Flexibilidad
– Añadir nuevas características
– Carácterísticas existentes puede ser eliminadas
Ventajas del Microkernel
• Portabilidad
– Los cambios necesarios para portar el sistema a
un nuevo procesador se realizan en el
microkernel – no en otros servicios
• Fiabilidad
– Diseño modular
– Un microkernel pequeño puede ser
rigurosamente verificado
Diseño de Microkernel
• Gestión de memoria a bajo nivel
– situar cada página virtual en un marco de
página física (mapping)
• Comunicación entre procesos
• Gestión de E/S e Interrupciones
Ventajas del Microkernel
• Soporte para sistemas distribuidos
– Los mensajes se envian sin saber quién es la
máquina destino
• Sistema operativo orientado a objetos
– Los componentes son objetos con interfaces
definidos claramente que pueden ser
interconectados por software
El objeto proceso de Windows 2000
Los estados de los threads de
Windows 2000
•
•
•
•
•
•
Ready
Standby
Running
Waiting
Transition
Terminated
El objeto thread de
Windows 2000
Solaris
• Los procesos se componen del espacio
de direccionamiento del usuario, la pila
y el PCB.
• Threads de nivel de usuario
• Procesos ligeros
• Threads de Kernel
Ejecución de threads de Solaris
•
•
•
•
Synchronization
Suspension
Preemption
Yielding
(sincronización)
(suspensión)
(apropiación)
(entrega)
Procesos de Linux
•
•
•
•
•
•
•
•
•
Estados de un proceso de Linux
•
•
•
•
•
Running
Interruptable
Uninterruptable
Stopped
Zombie
Estado
Información de Planificación
Identificadores
Comunicación entre procesos
Enlaces (Links)
Tiempo y temporizadores
Sistema de ficheros
Memoria virtual
Contexto específico del procesador
Descargar