sistemas operativos 05 2010

16
Elkin Alfredo Albarracin Navas, Esp. Universidad Pontificia Bolivariana Seccional Bucaramanga II Semestre Académico 2010 CURSO DE SISTEMAS OPERACIONALES HILOS, SMP y MICRONUCLEOS

Upload: elkin-navas

Post on 22-Jul-2015

235 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sistemas operativos 05   2010

Elkin Alfredo Albarracin Navas, Esp.

Universidad Pontificia Bolivariana – Seccional BucaramangaII Semestre Académico 2010

CURSO DE SISTEMAS OPERACIONALES

HILOS, SMP y MICRONUCLEOS

Page 2: Sistemas operativos 05   2010

Elkin Alfredo Albarracin Navas, Esp.

Universidad Pontificia Bolivariana – Seccional BucaramangaII Semestre Académico 2010

CONCEPTOS

Un proceso posee dos características :

[1] Propiedad de Recursos : un proceso incluye espacio de direcciones virtuales para

el manejo de la imagen del mismo. La imagen es la unión del programa, datos, pila y

los atributos del bloque de control.

[2] Planificación/Ejecución : la ejecución de un proceso sigue una ruta de ejecución a

través de uno o mas programas. Esta ejecución puede ser intercalada con otros

procesos, de esta manera un proceso tiene un estado de ejecución y una prioridad de

activación.

En la actualidad para distinguir estas dos propiedades , la unidad que se activa [2] se

suele llamar hilo o proceso ligero, mientras que la recurso [1] se suele llamar proceso o

tarea.

Page 3: Sistemas operativos 05   2010

Elkin Alfredo Albarracin Navas, Esp.

Universidad Pontificia Bolivariana – Seccional BucaramangaII Semestre Académico 2010

CONCEPTOS

Multihilo : Capacidad del sistema operativo de dar soporte a multiples hilos en la

ejecución de un solo proceso. Se habla de estrategias monohilo (DOS , algunos SO

UNIX) y multihilo (Windos, Solaris, OS/2, LINUX y JAVA).

Un proceso , un Hilo

Múltiples procesos, un Hilo por proceso

Un proceso , múltiples Hilos

Múltiples procesos, múltiples hilos por proceso

Page 4: Sistemas operativos 05   2010

Elkin Alfredo Albarracin Navas, Esp.

Universidad Pontificia Bolivariana – Seccional BucaramangaII Semestre Académico 2010

CONCEPTOS

En un entorno multihilo , un proceso se define como la unidad de asignación de

recursos y la unidad de protección. A los procesos se asocia lo siguiente:

• Un espacio de direcciones virtuales que soporta la imagen del proceso

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

Dentro de un procesos puede haber uno o mas hilos, cada uno tiene :

• Un estado de ejecución por hilo.

• Un contexto del hilo que se almacena cuando no esta en ejecucion.

• Una pila de ejecución.

• Por cada hilo, espacio de almacenamiento para variables locales.

• Acceso a la memoria y recuros del un proceso (compartido con todos los hilos de

sus mismo proceso)

Page 5: Sistemas operativos 05   2010

Elkin Alfredo Albarracin Navas, Esp.

Universidad Pontificia Bolivariana – Seccional BucaramangaII Semestre Académico 2010

CONCEPTOS

DIFERENCIA ENTRE HILOS Y PROCESOS DESDE EL PUNTO DE VISTA DE

GESTION DE PROCESOS

Bloque de

control del proceso

Espacio de

direcciones de usuario

Modelo de proceso

con un único hilo

Pila de

usuario

Pila de

nucleo

Bloque de

control del proceso

Espacio de

direcciones de usuario

Modelo de proceso multihilo

Pila de

usuario

Pila de

nucleo

Pila de

usuario

Pila de

nucleo

Pila de

usuario

Pila de

nucleo

Bloque de

control del hilo

Bloque de

control del hilo

Bloque de

control del hilo

Page 6: Sistemas operativos 05   2010

Elkin Alfredo Albarracin Navas, Esp.

Universidad Pontificia Bolivariana – Seccional BucaramangaII Semestre Académico 2010

CONCEPTOS

Beneficios de la Utilización de hilos:

• Lleva mucho menos tiempo crear un nuevo hilo en un proceso existente que crear

un proceso totalmente nuevo. En UNIX, la creación de un hilo es 10 veces mas

rápida que la creación de un nuevo proceso.

• Lleva menos tiempo finalizar un hilo que un proceso.

• Lleva mucho menos tiempo cambiar entre dos hilos que entre dos procesos.

• Los hilos mejoran la eficiencia de comunicación entre los diferentes programas

que se estén ejecutando. [En la mayor parte de los SO la comunicación entre procesos

requiere la intervención del núcleo]

Page 7: Sistemas operativos 05   2010

Elkin Alfredo Albarracin Navas, Esp.

Universidad Pontificia Bolivariana – Seccional BucaramangaII Semestre Académico 2010

CONCEPTOS

UTILIZACION:

1. Sistemas Multiprocesamiento (Servidores de Archivos con

multiprocesadores)

2. Sistemas de un solo procesador :• Trabajo en primer plano y segundo plano : En un programa un hilo

puede encargarse de los menús y otro ejecutar los comandos del

usuario.

• Procesamiento Asíncrono : procesos que escriban información del

buffer a disco cada cierto tiempo.

• Velocidad de Ejecución : Hacer operaciones con varios datos

mientras lee otros tantos de un dispositivo.

• Estructura modular de programas: Implementar fácilmente

utilizando hilos.

Page 8: Sistemas operativos 05   2010

Elkin Alfredo Albarracin Navas, Esp.

Universidad Pontificia Bolivariana – Seccional BucaramangaII Semestre Académico 2010

FUNCIONALIDADES DE LOS HILOS

Al igual que los procesos, los hilos tienen estados de ejecución y se pueden sincronizar

entre ellos.

Estado de los hilos : Los principales estados de los hilos son : Ejecutando, listo y

Bloqueado. Existen cuatro (4) operaciones básicas asociadas a los cambios de estados

de un hilo:

• Creación : Cuando se crea un proceso, se crea un hilo para dicho proceso, un hilo puede crear

un nuevo hilo dentro del proceso proporcionado la información necesaria para el nuevo hilo al

proceso.

• Bloqueo : Cuando un hilo necesita esperar por un evento, se bloquea almacenando los registros

de usuario, contador de programa y punteros de pila.

• Desbloqueo : Cuando sucede el evento que el hilo estaba esperando. El hilo para a la cola de

listos.

• Finalizacion : Cuando se completa un hilo.

Page 9: Sistemas operativos 05   2010

Elkin Alfredo Albarracin Navas, Esp.

Universidad Pontificia Bolivariana – Seccional BucaramangaII Semestre Académico 2010

FUNCIONALIDADES DE LOS HILOS

Proceso 1

Tiempo

SERVIDOR SERVIDOR

PETICIÓN RPC PETICIÓN RPC

SERVIDOR

SERVIDOR

PETICIÓN RPC

PETICIÓN RPC

Hilo A Proceso 1

Hilo B Proceso 1

Bloqueado

Bloqueado, esperando el procesador

que esta en uso por el hilo B

Ejecutando

Page 10: Sistemas operativos 05   2010

Elkin Alfredo Albarracin Navas, Esp.

Universidad Pontificia Bolivariana – Seccional BucaramangaII Semestre Académico 2010

SINCRONIZACION DE HILOS

Todos los hilos de un proceso comparten el mismo estado de direcciones y otros recursos,

cualquier alteración de un recurso por un hilo, altera a los demás, debido a esto es necesario

sincronizar los hilos para que no interfieran entre ellos y corrompan los datos de cada uno de

ellos. Para esto utilizan las mismas técnicas de sincronización de los procesos .

Page 11: Sistemas operativos 05   2010

Elkin Alfredo Albarracin Navas, Esp.

Universidad Pontificia Bolivariana – Seccional BucaramangaII Semestre Académico 2010

TIPO DE HILOS

Existen dos grandes categorías de hilo ,los ULT (user-level-threads) y los KLT

(Kernel-level-threads), los KLT también son conocidos como procesos

soportados por núcleo o procesos ligeros.

Page 12: Sistemas operativos 05   2010

Elkin Alfredo Albarracin Navas, Esp.

Universidad Pontificia Bolivariana – Seccional BucaramangaII Semestre Académico 2010

TIPO DE HILOS

ULT : en un entorno ULT puro, la aplicación gestiona todo el trabajo de los hilos y el núcleo no

conoce la existencia de los mismos. Cualquier aplicación puede programarse para ser multihilo a

través del uso de bibliotecas de hilos.

KLT : en un entorno KLT puro, el núcleo gestiona todo el trabajo de gestión de los hilos. No

existe código en la aplicación para el manejo de los hilos, solamente un API (Ejemplo Windows).

Entorno Combinado: Algunos SO operativos proporciona ULT y KLT combinados (Solaris). En

estos sistemas la creacion de hilos se realiza pro completo en el espacio del usuario. Los hilos

ULT se asocian a los hilos KLT.

Page 13: Sistemas operativos 05   2010

Elkin Alfredo Albarracin Navas, Esp.

Universidad Pontificia Bolivariana – Seccional BucaramangaII Semestre Académico 2010

TIPO DE HILOS

P

Biblioteca de Hilos

P P P

Biblioteca de Hilos

ESPACIO DE USUARIO ESPACIO DE NUCLEO

Page 14: Sistemas operativos 05   2010

Elkin Alfredo Albarracin Navas, Esp.

Universidad Pontificia Bolivariana – Seccional BucaramangaII Semestre Académico 2010

TIPO DE HILOS

OPERACIÓN ULT KLT PROCESOS

Crear un proceso Nulo 34 948 11300

Señalizar- Esperar 37 441 1840

Latencia de la operaciones en hilos y procesos

[1] Tiempo para crear, planificar, ejecutar y complementar un proceso/hilo que llama a un

procedimiento nulo(Crear un proceso hilo/proceso).

[2] Tiempo que lleva a un proceso/hilo que esta esperando y a continuación esperar una

condición (Sincronización)

Page 15: Sistemas operativos 05   2010

Elkin Alfredo Albarracin Navas, Esp.

Universidad Pontificia Bolivariana – Seccional BucaramangaII Semestre Académico 2010

RELACION ENTRE HILOS Y PROCESOS

Hilos : Procesos Descripción SO

1 : 1 Cada hilo de ejecución es un único proceso

con su propio espacio de direcciones y

recursos

Implementaciones tradicionales

de UNIX

M : 1 Un proceso define un espacio de direcciones y

pertenencia dinámica de recursos. Se pueden

crear y ejecutar múltiples hilos de este proceso

Windows NT, Solaris, Linux,

OS/2.

1 : M Un hilo puede migar de un proceso a otro, esto

permite a los hilos moverse fácilmente entre

distintos sistemas

Clouds

M : N Combina los atributos de M:1 y 1 : M TRIX

Page 16: Sistemas operativos 05   2010

Elkin Alfredo Albarracin Navas, Esp.

Universidad Pontificia Bolivariana – Seccional BucaramangaII Semestre Académico 2010

INVESTIGAR ARQUITECTURA SMP

(Symmetric Multiprocessor)

[ próximo Jueves]