Comunicación entre procesos: IPC, gestión y planificación
Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 4,26 KB
Comunicación entre Procesos
¿Por qué cooperan los procesos?
- Compartir información
- Acelerar la computación
- Modularidad
Para cooperar, los procesos necesitan comunicarse: Interprocess Communication (IPC) o Comunicación entre procesos.
Modelos de comunicación
- Memoria compartida (Shared memory): los procesos utilizan variables que pueden leer/escribir.
- Paso de mensajes (Message passing): utilizan funciones para enviar y recibir datos.
Gestión entre Procesos
- Signals: eventos enviados por otros procesos (del mismo usuario) o por el kernel para indicar determinadas condiciones.
- Pipes: dispositivo que permite comunicar dos procesos que se ejecutan en la misma máquina. Los primeros datos que se envían son los primeros que se reciben. Principalmente usado por shells.
- FIFOs (Pipes con nombre): funcionan con pipes que tienen un nombre en el sistema de ficheros.
- Sockets: dispositivo que permite comunicar dos procesos a través de la red.
- Message queues: sistema de comunicación indirecta.
- Semaphores: contadores que permiten controlar el acceso a recursos compartidos.
- Shared memory: memoria accesible por más de un proceso a la vez.
Gestión de Procesos
Para gestionar procesos se requiere:
- Estructura de datos para representar las propiedades de los procesos (PCB, Process Control Block).
- Estructura de gestión para organizar los PCB en función de las necesidades del sistema (listas, colas, árboles, tablas hash, etc.). Se debe considerar la eficiencia (inserciones, eliminaciones, búsquedas) y la escalabilidad (número de procesos activos, memoria necesaria).
- Algoritmos de planificación que guían la utilización de las estructuras.
- Mecanismos que apliquen las decisiones tomadas por el planificador.
PCB (Process Control Block)
Información asociada con cada proceso. Normalmente incluye:
- Identificador del proceso (PID)
- Credenciales: usuario, grupo
- Estado: RUN, READY, etc.
- Espacio para salvar los registros de la CPU
- Datos para gestionar signals
- Información sobre la planificación
- Información de gestión de la memoria
- Información sobre la gestión de E/S
- Información sobre los recursos consumidos (Accounting)
Estructuras de Gestión
El SO organiza los PCBs en estructuras de gestión: vectores, listas, colas, tablas de hash, árboles, etc.
Planificación
La política de planificación (o scheduler) decide cuándo un proceso debe dejar la CPU, quién entra y durante cuánto tiempo. Se ejecuta muchas veces (cada 10ms, por ejemplo) y debe ser muy rápida.
Tipos de Planificación
- No apropiativa: la política no le quita la CPU al proceso; éste la libera.
- Apropiativa: la política le quita la CPU al proceso.
Caracterización de Procesos
Los procesos suelen presentar ráfagas de computación y ráfagas de acceso a dispositivos (E/S) que pueden bloquear al proceso.
- Procesos de cálculo: consumen más tiempo haciendo cálculo que E/S.
- Procesos de E/S: consumen más tiempo haciendo entrada/salida de datos que cálculo.
Mecanismos del Planificador
Cuando un proceso deja la CPU y se pone otro, se ejecuta un cambio de contexto (de un contexto a otro).
El sistema salva el estado del proceso que deja la CPU y restaura el estado del proceso que pasa a ejecutarse. El cambio de contexto no es tiempo útil de la aplicación, así que ha de ser rápido. A veces el hardware ofrece soporte para hacerlo más rápido.