El aislamiento de procesos en la programación de computadoras es la segregación de diferentes procesos de software para evitar que accedan al espacio de memoria que no les pertenece. El concepto de aislamiento de procesos ayuda a mejorar la seguridad del sistema operativo al proporcionar diferentes niveles de privilegios a ciertos programas y restringir la memoria que esos programas pueden usar. Aunque hay muchas implementaciones de aislamiento de procesos, se utiliza con frecuencia en los navegadores web para separar varias pestañas y proteger el navegador central en caso de que falle un proceso. Puede estar basado en hardware o software, pero ambos tienen el mismo propósito de limitar el acceso a los recursos del sistema y mantener los programas aislados en su propio espacio de direcciones virtuales.
El funcionamiento básico del aislamiento de procesos implica asignar a un proceso o programa un espacio de direcciones virtuales claramente definido. Este espacio contiene el programa y todos los datos relacionados. Si el proceso requiere más espacio, se solicita al sistema operativo y se asigna si está disponible. De esta manera, el sistema operativo puede evitar que dos procesos accedan accidental o intencionalmente a la memoria del otro.
Otro propósito del aislamiento de procesos es permitir que los programas se ejecuten mientras se asegura que no afecten a los sistemas vitales. Puede evitar que un programa intente acceder a áreas clave del sistema operativo y modificarlas o cambiarlas. Esto permite terminar un programa en caso de que surja un problema sin que el sistema operativo más grande también se apague.
Existen diferentes variaciones de aislamiento. Una es asignar privilegios a los procesos para que puedan acceder a recursos específicos en un sistema y al mismo tiempo proteger a otros. Esto se hace a menudo para permitir que un programa use una toma de Internet o una impresora sin dejar de tener acceso a una unidad de disco o sistema de archivos.
También hay situaciones en las que se pueden tomar ciertos pasos para permitir que diferentes procesos se comuniquen de manera segura entre sí, pero que continúen manteniéndolos independientes entre sí. A través de mecanismos como la comunicación entre procesos (IPC) y la memoria compartida, los procesos pueden intercambiar información pero aún estar restringidos a su propio espacio de memoria. Esta funcionalidad es importante cuando un proceso requiere información de diferentes procesos de gestión propiedad del sistema operativo.
El aislamiento de procesos es una característica importante de software y hardware que ayuda a hacer posibles varias tecnologías. Los servidores de máquinas virtuales operan con una forma avanzada de aislamiento de procesos basada en la administración de hardware y software. La seguridad de poder ejecutar applets u otros scripts desde sitios web depende de que un proceso esté aislado de los recursos importantes del sistema. Los dispositivos móviles y los sistemas integrados utilizan el aislamiento de procesos para permitir que el hardware central permanezca seguro a pesar de que se ejecute cualquier software malintencionado o defectuoso.