Procesos Concurrentes - PowerPoint PPT Presentation

About This Presentation
Title:

Procesos Concurrentes

Description:

Procesos Concurrentes Dr. Pedro Mej a lvarez CINVESTAV-IPN, Seccion de Computacion Instituto Polit cnico Nacional Contenido Concepto de procesos Planificaci n de ... – PowerPoint PPT presentation

Number of Views:40
Avg rating:3.0/5.0
Slides: 20
Provided by: PedroMeji2
Category:

less

Transcript and Presenter's Notes

Title: Procesos Concurrentes


1
Procesos Concurrentes
  • Dr. Pedro Mejía Álvarez
  • CINVESTAV-IPN, Seccion de Computacion
  • Instituto Politécnico Nacional

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
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
Write a Comment
User Comments (0)
About PowerShow.com