← Volver al temario

馃毝 Cap铆tulo 3: Procesos

馃 El Concepto de Proceso

  • Proceso: Un programa en ejecuci贸n. Es la abstracci贸n fundamental para la gesti贸n de la CPU. Es una entidad din谩mica porque su estado y su contenido en memoria evolucionan a lo largo del tiempo de ejecuci贸n.
  • Imagen de un Proceso en Memoria: La representaci贸n del proceso en la memoria principal se divide en cuatro regiones l贸gicas:
    • Texto: Las instrucciones inmutables del programa, a menudo compartidas por m煤ltiples procesos que ejecutan el mismo programa.
    • Datos: Contiene las variables globales y est谩ticas del programa, inicializadas y con valores fijos durante la ejecuci贸n.
    • Mont铆culo (Heap): Zona de memoria para las variables din谩micas, asignadas y liberadas por el programa en tiempo de ejecuci贸n (ej. con malloc o new). Crece de forma flexible.
    • Pila (Stack): Se utiliza para almacenar variables locales, par谩metros de funciones, y la direcci贸n de retorno para las llamadas a funciones. Crece y decrece autom谩ticamente con las llamadas y retornos.

馃摑 Bloque de Control de Proceso (PCB / BCP)

  • Definici贸n: Es la estructura de datos m谩s cr铆tica del SO. Act煤a como la "ficha de identidad" o el *contexto* de cada proceso, conteniendo toda la informaci贸n necesaria para que el SO lo gestione y lo reanude tras una interrupci贸n.
  • Contenido Clave:
    • Identificador del Proceso (PID): N煤mero 煤nico que identifica al proceso.
    • Estado del Proceso: Indicaci贸n de su situaci贸n actual (Nuevo, Listo, Ejecuci贸n, Bloqueado, Terminado).
    • Contador de Programa (PC): Direcci贸n de la pr贸xima instrucci贸n a ejecutar; esencial para reanudar el proceso.
    • Valores de Registros de CPU: Contiene una instant谩nea de todos los registros de prop贸sito general y de estado del procesador al momento de la interrupci贸n (*context switch*).
    • Informaci贸n de Gesti贸n de Memoria: Tablas de p谩ginas o segmentos.
    • Informaci贸n de Contabilidad: Tiempo de uso de CPU, identificador del usuario (UID) y l铆mites de recursos.

馃攧 Estados de un Proceso

Un proceso pasa por varios estados a lo largo de su vida, gestionados por el planificador del SO:

  • Nuevo: El programa est谩 siendo cargado en memoria, pero el proceso a煤n no ha sido admitido por el SO.
  • Listo: El proceso ha sido cargado y est谩 esperando ser seleccionado por el planificador para su ejecuci贸n. Forma parte de la cola de procesos listos.
  • Ejecuci贸n: Las instrucciones del proceso se est谩n ejecutando actualmente en uno de los n煤cleos de la CPU. En un sistema monoprocesador, solo un proceso puede estar en este estado a la vez.
  • Bloqueado/Espera: El proceso est谩 esperando a que ocurra un evento externo que no es el tiempo de CPU (ej. la finalizaci贸n de una operaci贸n de E/S, la recepci贸n de datos por red, o una se帽al).
  • Terminado: El proceso ha completado su ejecuci贸n y est谩 a la espera de que el SO libere sus recursos y elimine su PCB.