* Espacio de memoria: No hay dos procesos comparten las mismas direcciones de memoria. Si un proceso se bloquea, no afecta directamente a los demás porque están aislados.
* Registros: Cada proceso tiene su propio conjunto de registros de CPU.
* maneja el archivo: Cada proceso administra sus propios archivos y no interfiere directamente con el acceso a los archivos de otros procesos.
El planificador del sistema operativo cambia rápidamente entre estos procesos, dando a cada uno una porción de tiempo de CPU (cita de tiempo). Esto crea la ilusión de múltiples programas que se ejecutan simultáneamente, incluso en un procesador de un solo núcleo. Si bien parece paralelo, en realidad es una ejecución secuencial rápida.
Ventajas de la multitarea basada en procesos:
* robustez: El aislamiento de los procesos mejora la estabilidad del sistema. Un bloqueo en un proceso generalmente no afectará a otros.
* Seguridad: El aislamiento del proceso ayuda a evitar que los programas maliciosos accedan o corromieran la memoria de otros procesos.
* Gestión de recursos: El sistema operativo puede asignar y administrar fácilmente recursos para cada proceso.
Desventajas de la multitarea basada en procesos:
* Overhead: La creación y gestión de procesos requiere recursos significativos del sistema (memoria y tiempo de CPU). La conmutación de contexto (conmutación entre procesos) también introduce la sobrecarga.
* La comunicación entre procesos (IPC) puede ser compleja: Si los procesos necesitan compartir datos, requieren mecanismos como tuberías, enchufes o memoria compartida, que agregan complejidad.
* menos eficiente para algunas tareas: Para las tareas que requieren una estricta coordinación y un intercambio de datos frecuente, la multitarea basada en procesos podría ser menos eficiente que la multitarea basada en hilos.
A diferencia de la multitarea basada en procesos, multitarea basada en hilos Utiliza múltiples hilos dentro de un solo proceso. Los hilos comparten el mismo espacio de memoria, lo que hace que la comunicación sea más fácil pero potencialmente menos robusta. Los sistemas operativos modernos a menudo emplean una combinación de procesos y multitarea basada en hilos para lograr un equilibrio entre robustez y eficiencia.