← SEARCHABLE ARCHIVE
Operating System · 2026-07-13

¿Qué es un proceso?

¿Qué recursos tiene un programa en ejecución?

INTERACTIVE READING MODE →

Los artículos escritos en este blog fueron creados con el objetivo de enseñar. Además, la información del artículo puede ser incorrecta, así que tenga cuidado.

Un archivo ejecutable es código y datos almacenados en el disco. El estado en el que el sistema operativo carga este archivo ejecutable en la memoria y adjunta los recursos necesarios para la ejecución se denomina proceso.

En otras palabras, un programa es un archivo y un proceso es una instancia de un programa en ejecución.

Que proceso tiene

Un proceso contiene más que solo código.

  • Espacio de direcciones virtuales independiente
  • Código ejecutable y datos globales.
  • Montón asignado dinámicamente
  • Pila utilizada por hilo
  • Abrir información de archivos y sockets
  • Permisos de seguridad e identidad del proceso.
dirección alta
┌──────────────┐
│ Pila │ Llamadas a funciones de subprocesos y variables locales
├──────────────┤
│              │
│ Montón │ Asignación dinámica como nueva, malloc, etc.
├──────────────┤
│ Datos / BSS │ Variables globales, variables estáticas
├──────────────┤
│ Código │ Comando a ejecutar
└──────────────┘
dirección baja

La disposición real y las áreas detalladas pueden variar según el sistema operativo y el tipo de archivo ejecutable, pero el flujo de tener áreas de memoria para diferentes propósitos es el mismo.

Los procesos están aislados unos de otros.

Incluso si el proceso B toma el puntero utilizado por el proceso A, no puede acceder a los mismos datos. Esto se debe a que cada proceso tiene su propio espacio de direcciones virtuales y el kernel lo conecta a la memoria real a través de tablas de páginas.

Este aislamiento significa que si un navegador falla, no destruye inmediatamente la memoria de otros programas.

Los procesos necesitan una forma de comunicarse entre sí.

Dado que la memoria está separada, se debe utilizar IPC (comunicación entre procesos) para intercambiar datos entre procesos.

  • Pipe
  • Shared Memory
  • Socket
  • Message Queue

La memoria compartida es rápida, pero requiere sincronización cuando se accede a ella simultáneamente. Los métodos de socket y mensaje tienen límites claros, pero pueden generar costos de comunicación y copia de datos.

Un proceso no es simplemente una pieza de código en ejecución. El sistema operativo está más cerca de un contenedor de recursos que administra la memoria, los archivos, los permisos y uno o más subprocesos.