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.

Entradas relacionadas: