Threads, SMP y Microkernels. Proceso

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 •
Author:  Hugo Palma Castro

0 downloads 142 Views 846KB Size

Story Transcript

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

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.