Contenido
Concepto de procesos
Planificación de procesos
Operaciones sobre Procesos
Cooperación de Procesos
Comunicación entre procesos
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.
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
Sistema de Reservacion de Linea Aerea
P
P
P
P
P
Data Base
VDU
VDU
VDU
VDU
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.
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
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.
Estados de los procesos
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
Process Control Block
Página siguiente |