Diferencias entre Procesos Pesados y Livianos: Ventajas y Limitaciones

Clasificado en Informática

Escrito el en español con un tamaño de 2,37 KB

Diferencias entre Procesos Pesados y Livianos

1. Clasificación de los Procesos

  • Proceso pesado
  • Proceso liviano

2. ¿Qué es un Proceso Pesado?

Estos procesos no comparten ninguna porción de la memoria. Cada proceso se ejecuta en su propio procesador virtual con CPU y memoria. Todos los procesos comparten el mismo espacio de almacenamiento permanente (el disco).

Proceso Liviano (Threads o Lightweight Process)

Los threads comparten toda la memoria y el espacio de almacenamiento permanente del proceso que los crea. Por lo tanto, las estructuras de datos asociadas a este tipo de proceso están residentes en el área de datos del proceso que los crea.

3. Limitaciones del Modelo de Procesos Tradicional

El modelo de procesos tradicional tiene dos importantes limitaciones:

  • Primero: Muchas aplicaciones desean ejecutar varias tareas independientes que puedan correr concurrentemente. Además, necesitan compartir memoria y otros recursos.
  • Los procesos tradicionales no pueden aprovechar las ventajas de las arquitecturas paralelas o de multiprocesadores. Una aplicación debe crear un número de procesos separados y despacharlos en los procesadores disponibles. Estos procesos deben hallar las formas de compartir la memoria y los demás recursos, y además sincronizarse.

4. Ventajas de Múltiples Threads

Las ventajas de los sistemas multithreads son más aparentes cuando se combinan con arquitecturas de multiprocesador. Ejecutando cada thread en un procesador diferente, una aplicación puede llevar a cabo verdadero paralelismo. Si el número de threads es mayor que el número de procesadores, se debe multiplexar. Esta arquitectura reduce la carga sobre el subsistema de memoria:

  • Todos los procesos comparten el mismo espacio de direcciones.
  • Pueden hacer uso en forma eficiente de la comunicación inter-procesos livianos.

5. Preemption vs Non-Preemption

Procesos Preemptive (Apropiativos): Es el núcleo el que decide en qué instante se transfiere el procesador real de un proceso a otro. Un proceso puede perder el control del procesador en cualquier instante.

Procesos Non-Preemptive (No Apropiativos): Es el proceso quien decide en qué instante transfiere el procesador real a otro proceso.

Entradas relacionadas: