Saltar al contenido principal
Processes, IPC (including semaphores), scheduling, memory, I/O, file systems, virtualization, concurrency models, performance profiling, and the hardware-software interface.

Operating Systems

Processes, IPC (including semaphores), scheduling, memory, I/O, file systems, virtualization, concurrency models, performance profiling, and the hardware-software interface.

CPU Scheduling Visualizer

First-Come, First-Served

Paso 0 / 0
Speed 100ms
Step Progress 0 / 0
CPU Time 0
Completed 0
Status Ready
Running
Waiting
Completed
Ready Queue
Process Table
PID Arrival Burst Priority
Metrics
PID Turn Wait Resp
Step Explanation

Select a scheduling algorithm and press Play to watch the CPU dispatch processes.

—
Pseudocode
 
Gantt Chart

Process Management

Elementary (2/5) ~1 hora Process: program in execution Process states: new, ready, running, waiting, terminated PCB (Process Control Block) Process vs Thread Prereqs: Computer Hardware
Quick Reference

fcfs

No registry entry found for algorithm id "fcfs". If this is a curriculum-only studio, the complexity and quick-reference panel is intentionally omitted.

Process Management es el corazón de los sistemas operativos: crear, planificar, sincronizar y eliminar procesos. Un proceso es un programa en ejecución con su propio espacio de direcciones, registros, y estado.

Proceso vs Programa

ConceptoDefinición
ProgramaCódigo estático en disco
ProcesoPrograma en ejecución en memoria
ThreadUnidad de ejecución dentro de un proceso

PCB (Process Control Block)

El PCB es la estructura de datos que el OS mantiene para cada proceso. Contiene:

  • PID: identificador único.
  • Estado: new, ready, running, waiting, terminated.
  • Registros: PC, SP, registros de propósito general.
  • Información de memoria: base/limit registers, page table.
  • Información de scheduling: prioridad, quantum.
  • Contadores: CPU usage, tiempos de inicio/fin.

Estados de un Proceso

new → ready → running → terminated
              ↓      ↓
           waiting ←──┘
  • New: proceso creado pero no admitido en memoria.
  • Ready: en cola de listos, esperando CPU.
  • Running: ejecutándose en CPU.
  • Waiting: bloqueado por I/O o evento.
  • Terminated: finalizado, esperando limpieza.

Context Switch

Cambiar de un proceso a otro:

  1. Guardar estado del proceso saliente (registros, PC, SP) en su PCB.
  2. Seleccionar nuevo proceso del scheduler.
  3. Cargar estado del nuevo proceso desde su PCB.

Overhead: el context switch no hace trabajo útil. Tipicamente 1-100 microsegundos.

Procesos vs Threads

AspectoProcesoThread
Espacio de direccionesPrivadoCompartido (dentro del proceso)
CreaciónLenta (fork)Rápida
ComunicaciónIPC (lenta)Memoria compartida (rápida)
BloqueoBloquea el proceso enteroSolo bloquea el thread
OverheadAltoBajo

System Calls

LlamadaDescripción
fork()Crea proceso hijo (copia del padre)
exec()Reemplaza imagen del proceso
wait()Espera a que termine un hijo
exit()Termina el proceso

Aplicaciones

  • Multitasking — ejecutar múltiples programas simultáneamente
  • Servidores — un proceso por conexión
  • Contenedores — procesos aislados con namespaces
  • Enseñanza — base para scheduling y concurrency

Trayectoria de Práctica

  1. Investiga el ciclo de vida de un proceso: new → terminated.
  2. Implementa un scheduler simple round-robin.
  3. Mide overhead de context switch en tu sistema.
  4. Investiga fork() y exec(): ¿por qué fork+exec es el patrón estándar?
  5. Investiga threads POSIX vs procesos: ¿cuándo usar cada uno?