Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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
y Process Control Block (PCB) y Atributos que necesita el SO para controlar el proceso.Esto Incluye:
y y y
creado
Es su turno Listo Fin de turno o abandono voluntario Bloqueado Ejecucin Espera suceso Terminado
Ocurre suceso
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.
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.
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
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
un mismo proceso.
y Si dos threads comparten recursos durante su ejecucin,
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)
le da mejor rendimiento.
y Las Aplicaciones que utilizan buffers en comn obtienen
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
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
y Los
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