Está en la página 1de 22

Procesos e Hilos

Programacin Concurrente
y Programacin concurrente es el nombre que se da a la notacin y

tcnicas de programacin que permiten expresar el paralelismo potencial y los problemas de sincronizacin y comunicacin resultantes (permite abstraerse de los detalles de la implementacin) Ben Ari (1982)

Definicin de un Proceso
y Programa en ejecucin. y Clculo

computacional que puede hacerse concurrentemente con otros clculos. y Secuencia de acciones llevadas a cabo a travs de la ejecucin de una serie de instrucciones cuyo resultado final consiste en proveer alguna funcin del sistema. y Trabajo mnimo que es susceptible de ser planificado por un S.O.

Constitucin de un Proceso
Esta formado : y Cdigo del Programa de usuario y Contador de programa y sus variables globales. y Stack o pila y su puntero a pila.
y El SO necesita tener informacin del estado de los procesos para

poder realizar apropiadamente los cambios de contexto.

y Process Control Block (PCB) y Atributos que necesita el SO para controlar el proceso.Esto Incluye:
y y y

Informacin de Identificacin del proceso Estado del Procesador Informacin de Control

Ciclo de vida de un proceso Estados de un proceso

creado

Es su turno Listo Fin de turno o abandono voluntario Bloqueado Ejecucin Espera suceso Terminado

Ocurre suceso

y En un Sistema Operativo tradicional, la memoria suele

estar dividida en dos partes:


1.

2.

Un espacio de usuario, donde suele encontrarse la mayora de la informacin relativa a los procesos de usuario . Un espacio de ncleo, donde reside el cdigo y las estructuras de datos propios del SO.

Mapa de Memoria de un proceso en S.O multitarea

Proceso

Espacio de Usuario Bloque de Control del Proceso (PCB) Espacio del ncleo

Cambio de Contexto
y En el espacio del ncleo estar el planificador de

procesos que ser el encargado de decidir cundo hacer los cambios de contexto. y Cuando la OS intercambia procesos debe resguardar el estado del proceso actual y cargar el estado del nuevo proceso. y Cuando se hace el cambio de contexto hay que recuperar la estructura del proceso que se quiere poner en el estado Ejecucin y actualizar convenientemente los registros del procesador para que el nuevo proceso tome el control del mismo

Cambio de Contexto
y Salvar el contexto implica resguardar el PC y otros

Registros y Actualizar el PCB del proceso en ejecucin con su nuevo estado e informacin asociada y Colocar la entrada del PCB en la cola apropiada. LISTO, BLOQUEADO. y Seleccionar el prximo proceso a ejecutar y Actualizar el PCB del proceso seleccionado y Restaurar el contexto de CPU del proceso seleccionado.

Cundo hacer el Cambio?


y Un cambio de contexto se debe hacer cuando el

SO ha obtenido el control de la CPU


y System Call (Llamada al sistema) (Llamada sistema) y Explicitamente el proceso ha requerido un servicio del OS. Probablemente el proceso quede bloqueado y Trap/Fault y Se ha producido un error al ejecutar la ltima instruccin. y Interrupcin y Un evento externo ha causado una interrupcin. El control se ha trasferido a la ISR.

Espacio de Direcciones
y Asociado a cada proceso hay un Espacio de Direcciones y El espacio de direcciones contiene: y El programa ejecutable y Los Datos del Programa y El Stack y

La Tabla de Procesos es un Vector o una lista enlazada en Memoria

y Las funciones claves de la gestin de procesos son: y Creacin de Procesos y Terminacin de Procesos y Intercambio de Procesos

Hilos o Threads
y Un proceso puede haber varios hilos de ejecucin. Por tanto, un hilo

puede definirse como cada secuencia de control dentro de un proceso que ejecuta sus instrucciones de forma independiente.

Proceso hilos a b c

Caractersticas de Threads
y Los

threads se ejecutan independiente y simultneamente y Comparten las instrucciones del proceso y casi todos sus datos. y Si un thread realiza un cambio en un dato de los datos compartidos este ser percibido por los otros threads en el mismo proceso. y Debido a este comportamiento, su ejecucin puede afectar al proceso de forma sorprendente

y Varios threads pueden proporcionar concurrencia dentro de

un mismo proceso.
y Si dos threads comparten recursos durante su ejecucin,

deben tener cuidado de que no se interfieran uno con el otro.

Constitucin de un Hilo o Thread


y Un thread (o proceso ligero) es la entidad mnima

planificable.

y Consiste de: y Contador de Programa y Set de Registros y Su propio Stack y Un thread comparte con los threads del mismo

proceso:

y rea de Cdigo (Ej: subrutinas, procedimientos) y rea de Datos y Recursos del SO (Ej: archivos abiertos)

Constitucin de un Hilo o Thread

Ventajas de los THREADS


y Mientras un thread est Bloqueado esperando un evento,

otro thread del mismo proceso puede seguir ejecutando.


y La Cooperacin de mltiples threads en un mismo proceso

le da mejor rendimiento.
y Las Aplicaciones que utilizan buffers en comn obtienen

mayores beneficios en la utilizacin de threads.

y Los sistemas de tiempo real son concurrentes por naturaleza.

Las actividades del mundo exterior evolucionan simultneamente EL lenguaje y/o el S.O. deben proporcionar al programador primitivas para expresar el paralelismo potencial de la aplicacin. y Los detalles de implementacin son independientes de la programacin concurrente

y Un sistema concurrente se compone de un conjunto de

procesos secuenciales autnomos que se ejecutan (lgicamente) en paralelo. y Cada proceso tiene un flujo de control independiente a veces se habla de procesos con varios flujos de control (threads) y Las instrucciones de los procesos se ejecutan intercalndose unas con otras (paralelismo lgico).

Ejecucin concurrente
y La ejecucin de varios procesos concurrentes puede hacerse

de varias formas:
en un sistema monoprocesador (multiprogramacin) en un sistema multiprocesador (fuertemente acoplado) en un sistema distribuido (dbilmente acoplado)
y En todos los casos se debe multiplexar el recurso procesador

(o procesadores) entre los procesos.

Mecanismos para programacin concurrente


y creacin de procesos concurrentes y sincronizacin de procesos concurrentes y comunicacin de procesos concurrentes y Interaccin entre procesos
y independientes y cooperativos y competitivos

y Los

procesos que cooperan o compiten necesitan comunicarse y sincronizar sus actividades

Representacin de procesos
y Mecanismos bsicos de representacin de procesos:
1. 2. 3. 4. 5.

corrutinas bifurcacin y unin (fork/join) cobegin / coend declaracin explcita de procesos declaracin implcita de procesos

También podría gustarte