Procesos Un proceso es un programa en ejecución. Modelo de procesos secuenciales. Abstracción del SO.

1 Procesos Un proceso es un programa en ejecución. Modelo...
Author: Elisa Calderón Cabrera
0 downloads 0 Views

1 Procesos Un proceso es un programa en ejecución. Modelo de procesos secuenciales. Abstracción del SO.

2 Estados de un Proceso A medida que un proceso se ejecuta

3 Bloque de Control de un Proceso (PCB)‏

4 Cambio de Contexto

5 Colas de Planificación Colas de tareas: conjunto de todos los procesos del sistema. Cola de procesos listos: conjunto de todos los procesos en memoria esperando ser ejecutados. Colas de dispositivos: conjunto de procesos esperando por un dispositivo de E/S. Migración de procesos.

6 Planificación de Procesos Planificador a largo plazo.  Selecciona que procesos ingresan a la cola de listos. (frecuente => muy rápido)‏ Planificador a corto plazo.  Selecciona de la cola de listos que proceso debe ser ejecutado a continuación y le asigna la CPU. (menos frecuente => menos rápido)‏ Planificador a mediano plazo.  Selecciona los procesos que dejarán y comenzarán a competir activamente por CPU. Proceso limitados por CPU o limitados por E/S.

7 Operaciones con Procesos Creación:  Formas de compartir recursos: Padre e hijo comparten todos los recursos. El hijo comparte un subconjunto de los recursos del padre. Padre e hijo comparten todos los recursos.  Espacio de memoria: El hijo duplica el del padre. Se carga un programa en el proceso hijo-  Ejecución Padre e hijo ejecutan en forma concurrente. El padre espera que el hijo termine.  Ejemplos Unix: fork/exec.

8 Operaciones con Procesos Terminación:  El proceso termina su ejecución y notifica al SO. Los recursos asignados al proceso son liberados por el SO  El padre puede terminar la ejecución de un hijo: El hijo se ha excedido en el uso de los recursos asignados. La tarea asignada al hijo no se necesita más. El proceso padre termina:  Terminación en cascada

9 Procesos Cooperativos Los procesos independientes no puede afectar ni ser afectados por otros procesos. Los procesos cooperativos pueden afectar y ser afectados por otros procesos. Ventajas de la cooperación:  Compartir información  Aceleración de cálculos  Modularidad y comodidad

10 Problemas - Productor/Consumidor Paradigma de procesos cooperativos, el proceso productor produce información que es consumida por un proceso consumidor.  Buffer ilimitado  Buffer limitado Solución con memoria compartida con Buffer limitado.

11 Comunicación entre Procesos (IPC)‏ Mecanismo que permite a los procesos comunicar y sincronizar. Sistema de mensajes. Comunicación sin necesidad de memoria compartida. Operaciones de IPC:  send(mensaje), receive(mensaje)‏ Si P y Q quieren comunicarse deben establecer un canal y enviar un mensaje. Implementación: memoria compartida, bus de hardware, red, etc.

12 Preguntas de Implementación Tipos de enlace  Comunicación directa (nombrado explícito del canal)‏  Comunicación Indirecta (por medio de buzones)‏ Sincronización  Bloqueante (sincrónica)‏  No Bloqueante (asincrónica)‏ Buffering  Tamaño 0 (Rendezvous)‏  Capacidad limitada  Capacidad ilimitada

13 Procesos Single-Thread y Multi- Thread

14 Ejemplo de Threads Beneficios: velocidad de respuesta, recursos comparidos, economía, utilización de arquitecturas MP

15 Threads Ususario/Kernel Nivel usuario: son manejados por librería a nivel usuario.  POSIX Pthreads, Mach C-Threads, Solaris Threads Nivel kernel: brindados por el kernel.  Windows, Solaris, Tru64, BeOS, Linux

16 Muchos a Uno Muchos threads del usuario mapeados a un sólo thread del SO. Sistemas que no brindan threads en el kernel.

17 Uno a Uno Cada thread a nivel usuario es mapeado a un thread en el kernel. (Windows/OS2/Linux)‏

18 Muchos a Muchos Permite mapear varios threads de usuario a varios del kernel. (Solaris 2)‏