La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

EJECUCION PARALELA THREADS Y FIBERS

Presentaciones similares


Presentación del tema: "EJECUCION PARALELA THREADS Y FIBERS"— Transcripción de la presentación:

1 EJECUCION PARALELA THREADS Y FIBERS
INSTITUTO TECNOLÓGICO DE VERACRUZ EJECUCION PARALELA THREADS Y FIBERS Dr. José Antonio Garrido Natarén

2 EJECUCION PARELELA THREADS Y FIBERS
Qué es un Thread Un Thread es un mecanismo que permite a una aplicación realizar varias tareas a la vez de manera concurrente.

3 EJECUCION PARELELA THREADS Y FIBERS
Un Thread se asemeja al concepto de sistema operativo multitarea. Relativamente tiene la misma filosofía que utiliza un Sistema Operativo para ejecutar varios procesos a la vez, pero enfocada ejecutar sub procesos de un mismo proceso.

4 EJECUCION PARELELA THREADS Y FIBERS
Un Thread difiere del mecanismo de multitareas ya que por definición los procesos no comparten el espacio de memoria entre si, mientras que los Threads (hilos).

5 EJECUCION PARELELA THREADS Y FIBERS
Un Thread difiere del mecanismo de multitareas

6 EJECUCION PARELELA THREADS Y FIBERS
Los Threads son una ampliación del concepto de multitarea. El concepto multitarea se refiere a la capacidad de un sistema para ejecutar varios procesos a la vez (más de una aplicación se estuviera ejecutando de manera concurrente) Un threah permite a una aplicación hacer varias cosas a la vez.

7 EJECUCION PARELELA THREADS Y FIBERS
Los Threads son una ampliación del concepto de multitarea. En un sistema multitarea podemos tener los procesos A, B y C ejecutándose simultáneamente El proceso A debe mostrar una animación gráfica y estar escribiendo un archivo a la vez ¿ Como es posible ?

8 EJECUCION PARELELA THREADS Y FIBERS
Los Threads son una ampliación del concepto de multitarea. Un proceso puede tener una o mas tareas ejecutándose a la vez (al menos así lo percibe el usuario) Cada vez que a un proceso le corresponde un tiempo de ejecución este se alterna ejecutando cada uno de sus Threads del proceso.

9 EJECUCION PARELELA THREADS Y FIBERS
Los Threads son una ampliación del concepto de multitarea. Los Threads permiten reorganizar el concepto de proceso, ya que un proceso no es la unidad mínima de ejecución (ahora el proceso es un conjunto de tareas (threads). Un proceso que en apariencia no utiliza Threads realmente se esta ejecutando en un único Thread (aplicación flat).

10 EJECUCION PARELELA THREADS Y FIBERS
Consideraciones de los Procesos y los Thread La memoria de trabajo del proceso sigue siendo asignada por proceso Los thread dentro del proceso comparten todos la misma región de memoria, el mismo espacio de direcciones. El sistema operativo asigna Quantums de ejecución a cada thread creado y ya no calendariza procesos sino cada uno de los hilos en ejecución en el sistema.

11 EJECUCION PARELELA THREADS Y FIBERS
Consideraciones de los Procesos y los Thread Cada hilo tiene su propio contexto (estado de ejecución), así que cada vez que se suspende un hilo para permitir la ejecución de otro, su contexto es guardado y restablecido nuevamente solo cuando es su turno de ejecución. Al ser la unidad mínima de ejecución cada Thread tiene su propio stack (pila de ejecución)

12 EJECUCION PARELELA THREADS Y FIBERS
Consideraciones de los Procesos y los Thread El proceso ya no es la unidad de ejecución pero sigue siendo parte fundamental en el funcionamiento del sistema: Asignación de una prioridad de ejecución Asignación de la memoria Asignación de los recursos y privilegios. El hilo es solo quien se ejecuta

13 EJECUCION PARELELA THREADS Y FIBERS
El Kernel Todo sistema operativo tiene un Kernel. El Kernel en quien crea y administra los Threads. En Windows cada vez que se crea un Thread se crea un objeto del Kernel que tiene toda la información necesaria respecto a que proceso. Este objeto Thread existe en el espacio de direcciones asignadas al Kernel.

14 EJECUCION PARELELA THREADS Y FIBERS
El Kernel El Kernel se encarga de manera automática de calendarizar la ejecución de cada uno de los Thread en ejecución. Si un Thread de un proceso invoca a un dispositivo de I/O como por ejemplo la impresora, el Thread queda suspendido hasta que la impresora le conteste pero otros Thread del mismo proceso seguirán ejecutándose.

15 EJECUCION PARELELA THREADS Y FIBERS
Las Fibras (Fibers) Las Fibras son similares a los Thread del Kernel con la diferencia en que estos no son administrados por el Kernel del sistema operativo. El sistema operativo no sabe que existen. Las Fibras son administradas por los programas de usuario (User Threads).

16 EJECUCION PARELELA THREADS Y FIBERS
Las Fibras (Fibers) Cada programa se encarga de manera automática de calendarizar la ejecución de cada uno de las Fibras en ejecución. Si una Fibra de un proceso invoca a un dispositivo de I/O como por ejemplo la impresora, la Fibra queda suspendida hasta que la impresora le conteste y las otras Fibras del mismo Thread también se bloquearan y no seguirán ejecutándose.

17 EJECUCION PARELELA THREADS Y FIBERS
Fibras VS Threads Los Threads de usuario (Fibras) son mucho más eficientes que los Threads del Kernel. Los Threads de usuario no requieren ser conmutados en modo Kernel sino en modo usuario lo cual permite hacer la conmutación entre Threads de manera más rápida al no tener que alternar de contexto. Los Threads de usuario no son calendarizados de manera preferente, sino que de manera ‘manual’ deben ser suspendidos o reactivados


Descargar ppt "EJECUCION PARALELA THREADS Y FIBERS"

Presentaciones similares


Anuncios Google