RedNotes
Toggle sidebar
Iniciar sesión
Sistemas Operativos/Procesos
Inicia sesión para editar

Un proceso es un programa en ejecución, incluyendo los valores actuales del contador de programa, los registros y las variables. Es la abstracción central del Sistemas Operativos: convierte una sola CPU en varias CPUs virtuales (pseudoparalelismo).

Modelo de procesos

Conceptualmente cada proceso tiene su propia CPU virtual; en realidad la CPU conmuta entre ellos (multiprogramación). La diferencia entre programa y proceso: el programa es la receta; el proceso es la actividad de cocinar.

Creación

Un proceso se crea por:

  1. Inicialización del sistema.
  2. Una llamada de creación desde otro proceso (fork en UNIX, CreateProcess en Windows).
  3. Petición del usuario.
  4. Inicio de un trabajo por lotes.

Ver Sistemas Operativos/Llamadas al sistema.

Terminación

  1. Salida normal (voluntaria).
  2. Salida por error (voluntaria).
  3. Error fatal (involuntaria).
  4. Eliminado por otro proceso (kill).

Estados de un proceso

         ┌────────────┐
         │ En ejecución│
         └────────────┘
      1 ↙     ↑3     ↘ 2
┌──────────┐  │   ┌──────────┐
│Bloqueado │  │   │  Listo   │
└──────────┘  │   └──────────┘
        4 ↘   └───────┘
          → Listo
  1. En ejecución → Bloqueado: el proceso espera una entrada.
  2. En ejecución → Listo: el planificador elige otro proceso.
  3. Listo → En ejecución: el planificador elige este proceso.
  4. Bloqueado → Listo: la entrada ya está disponible.

Las transiciones 2 y 3 las decide la Sistemas Operativos/Planificación.

Tabla de procesos (PCB)

El SO mantiene una entrada por proceso (Process Control Block) con:

  • Gestión de procesos: registros, contador de programa, puntero de pila, estado, prioridad, PID, proceso padre, tiempo de CPU usado.
  • Gestión de memoria: punteros a segmentos de texto, datos y pila / tabla de páginas.
  • Gestión de archivos: directorio raíz y de trabajo, descriptores de archivo, UID, GID.

Interrupciones y cambio de contexto

Cuando llega una interrupción, el hardware guarda el contador de programa, salta al vector de interrupciones, una rutina en ensamblador guarda los registros, se ejecuta el servicio en C y luego el planificador decide qué proceso reanudar. Guardar y restaurar este estado es el cambio de contexto.

Modelado de la multiprogramación

Si un proceso pasa una fracción p de su tiempo esperando E/S, con n procesos en memoria:

Uso de CPU = 1 − pⁿ

Con 80 % de espera de E/S, se necesitan ~10 procesos para desperdiciar menos del 10 % de CPU.

Relacionado

#sistemas-operativos #tanenbaum #procesos