La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Procesos Concurrentes

Presentaciones similares


Presentación del tema: "Procesos Concurrentes"— Transcripción de la presentación:

1 Procesos Concurrentes
L.I. Gerardo Ortiz Rivera Departamento de Ciencias Exactas e Ingenieria

2 Contenido Concepto de procesos Planificación de procesos
Operaciones sobre Procesos Cooperación de Procesos Comunicación entre procesos

3 Programación Concurrente
Virtualmente todos los sistemas de tiempo-real son inherentemente concurrentes - los dispositivos operan en paralelo en el mundo real. Programación concurrente es el nombre dado a las técnicas y notación de programación para expresar "paralelismo" potencial y resolver la sincronización y los problemas de comunicación. En la programacion concurrente solo se cuenta con un procesador. El tiempo de CPU se reparte entre varios procesos. El paralelismo implica que existen varios procesadores en el sistema. La programacion paralela implica dividir la ejecucion de un programa en distintos modulos los cuales se ejecutaran en distintos procesadores.

4 Paralelismo entre CPU y Dispositivos de E/S
CPU Dispositivo de E/S Inicia operacion de E/S Peticion de proceso de E/S Finalizacion de Senal Interrupcion de fin de E/S E/S termina Continua con mas peticiones Paralelismo entre CPU y Dispositivos de E/S

5 Sistema de Reservacion de Linea Aerea
VDU VDU VDU VDU P P P P P Data Base

6 Terminología Un programa concurrente es convencionalmente visto como una colección de procesos secuenciales autónomos que se ejecutan (lógicamente) en paralelo. Los lenguajes de programación concurrente incorporan, explícita o implícitamente, la noción de proceso; cada proceso tiene un simple hilo de control. La implementación actual (i.e. ejecución) de una colección de procesos usualmente toma una de estas tres formas: Multiprogramación ejecución de múltiples procesos en un solo procesador. Multiprocesamiento ejecución de múltiples procesos en un sistema multiprocesador donde hay acceso a memoria compartida. Programación Distribuida ejecución de múltiples procesos en varios procesadores los cuales no comparten memoria.

7 Concepto de Proceso Un sistema operativo ejecuta una variedad de programas: Sistema Batch: jobs Sistemas de tiempo compartido: programas de usuario o tareas Proceso - un programa en ejecución; la ejecucución del proceso debe progresar de manera secuencial. Un proceso incluye: program counter stack data section

8 Estados de los procesos
Nuevo: El proceso es creado. Ejecución: Se ejecutan instrucciónes. Espera: El proceso esta en espera por la ocurrencia de algún evento. Listo: El proceso esta esperando a que le asignen el procesador. Terminado: El proceso finaliza su ejecución. Diagrama de estados de los procesos.

9 Process Control Block Información asociada con cada proceso: Estado del proceso Program counter Registros del CPU Información de planificación del CPU Memoria Información para administración Información de estatus de E/S

10 Colas de planificación de procesos
Cola de jobs- conjunto de todos los procesos en el sistema. Cola de listos- conjunto de procesos residentes en memoria, listos y en espera para ejecucución. Cola de dispositivos- conjunto de procesos esperando por algún dispositivo de E/S. Migración de los procesos entre varias colas.

11 Planificadores Planificador de largo plazo (job scheduler) - Selecciona que proceso traer a la cola de procesos listos. Planificador de corto plazo (CPU scheduler) - Selecciona que proceso debe ejecutarse enseguida y reserva el CPU.

12 Cambio de Contexto Cuando el CPU cambia a otro proceso, el sistema debe salvar el estado del proceso antiguo y cargar el estado del proceso nuevo. El cambio de contexto es overhead; el sistema no realiza cómputo útil durante el cambio. El tiempo de realización del cambio de contexto es dependiente del soporte de hardware.

13 Creacion del Proceso Al crearse un proceso se le asigna memoria (para cargado de código, datos y stack), recursos, información del PCB, y se carga en memoria. Además se inicializan registros para protección del espacio de memoria reserva a este proceso. El proceso padre puede crear procesos hijos, los cuales a su vez pueden crear otros procesos, formando así un arbol de procesos. Compartición de recursos. Los padres e hijos comparten todos los recursos. El hijo comparte un subconjunto de los recursos del padre. El hijo y el padre no comparten recursos. Ejecución El padre y el hijo se ejecutan concurrentemente. El padre espera hasta que el hijo termina. Ejemplo UNIX la llamada a fork crea un proceso nuevo.

14 Terminación de Procesos
El proceso ejecuta su última instrucción y pide al sistema que lo elimine (exit). Los datos de salida van de hijo a padre (por fork). Los recursos del proceso son desalojados por el sistema operativo. El padre puede terminar la ejecución de un hijo(abort). el proceso hijo se ha excedido en los recursos alojados. la tarea asignada al proceso hijo ya no es requerida. El proceso padre termina. El sistema operativo no permite que el hijo continue su ejecución si el proceso padre termina. terminación en cascada.

15 Procesos cooperativos
Los procesos Independientes no pueden afectar o ser afectados por la ejecución de otros procesos. Los procesos cooperativos pueden afectar o ser afectados por la ejecución de otros procesos. Ventajas: Compartición de información Mayor velocidad de cómputo Modularidad Conveniencia

16 Problema del productor-consumidor
Paradigma para procesos cooperativos; el proceso productor produce información que es consumida por el proceso consumidor. Solución mediante memoria compartida. Solución mediante buzones y envío de mensajes

17 Comunicación entre procesos
La comunicación entre procesos provee mecanismos para permitir que los procesos se comuniquen y se sincronizen. Sistema de mensajes - los procesos se comunican entre si sin tener que compartir variables. Operaciones: send (mensaje)- los mensaje pueden tener tamaño fijo o variable. receive (mensaje) Medio de comunicación implementación física (p.ej, memoria compartida, bus de hardware) implementación lógica.

18 Tipos de comunicación Mediante Buzones utilizados como medio común para comunicación entre procesos de forma: 1 proceso envia mensaje a 1 proceso 1 proceso envia mensaje a N procesos N procesos envían mensajes a 1 proceso N procesos envía mensajes a N procesos Mediante una linea de comunicación o bus de hardware.

19 Tipos de sincronización
Mediante el envío de mensajes entre procesos send (P, mensaje) - send a message to process P receive(Q, mensaje) - receive a message from process Q Mediante el envio de señales de tipo semaforo P (sem,contador). Envía una señal al semaforo sem. V (sem,contador) recive n señales del semáforo sem


Descargar ppt "Procesos Concurrentes"

Presentaciones similares


Anuncios Google