Procesos, Hilos y Almacenamiento

Los pilares de la gestión de recursos del SO.

Procesos vs. Hilos

  • Proceso: Un programa en ejecución. Es la unidad de recursos. Tiene su propio espacio de memoria aislado y protegido.
  • Hilo (Thread): Una secuencia de ejecución dentro de un proceso. Es la unidad de planificación (a quien la CPU ejecuta).
  • Un proceso puede tener múltiples hilos que comparten la memoria del proceso padre, haciendo la comunicación entre ellos muy eficiente.

Planificación (Scheduling)

El planificador es el componente del SO que decide qué proceso o hilo listo para ejecutar obtiene la CPU.

  • Objetivos: Maximizar el uso de la CPU, minimizar el tiempo de respuesta, ser justo con todos los procesos.
  • Estrategias comunes: FIFO (el primero que llega, el primero en ser atendido), Round Robin (a cada uno un poquito de tiempo).

Interbloqueos (Deadlocks)

Un recordatorio del problema del "abrazo mortal": Dos o más procesos se bloquean indefinidamente, cada uno esperando un recurso que posee el otro.

El SO puede prevenir, evitar o detectar y recuperar estos bloqueos, aunque la estrategia más común en sistemas de propósito general es simplemente ignorarlos y dejar la responsabilidad al programador.

Gestión de Memoria

El SO debe gestionar el recurso más preciado después de la CPU: la memoria RAM.

  • Asignación: Dar a cada proceso el espacio de memoria que necesita.
  • Protección: Impedir que un proceso acceda a la memoria de otro, evitando corrupción y fallos de seguridad.
  • Compartición: Permitir que ciertos procesos compartan memoria de forma controlada.

El Truco: Memoria Virtual

Profundizamos...

Permite a los procesos usar más memoria de la que hay físicamente disponible. ¿Cómo? Usando el disco duro como una extensión de la RAM.

Mediante el intercambio (swapping) o la paginación, el SO mueve porciones de memoria no usadas recientemente al disco, liberando espacio en la RAM para lo que se necesita ahora mismo.