Fundamentos de Sistemas Operativos y Arquitectura de Linux

Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 8,97 KB

1. ¿Qué es un Sistema Operativo?

El Sistema Operativo (SO) es el software fundamental que se encarga de:

  • Controlar el hardware del equipo.
  • Administrar los recursos del sistema de manera eficiente.
  • Ofrecer servicios esenciales a los programas de aplicación.

📌 Actúa como un intermediario en la siguiente cadena: Usuario → Aplicaciones → SO → Hardware.

Recursos que gestiona

  • CPU (Unidad Central de Procesamiento).
  • Memoria (RAM y almacenamiento).
  • Procesos (ejecución de programas).
  • Dispositivos de Entrada/Salida (E/S).

🏗️ 2. Estructura básica del Sistema Operativo

Los componentes principales de un SO se dividen en:

Kernel (Núcleo)

Es la parte central que posee el control total del sistema, encargándose de:

  • Gestión de la memoria.
  • Asignación de la CPU.
  • Administración de drivers (controladores).
  • Control de procesos.

User Space (Espacio de Usuario)

Es el área donde se ejecutan las aplicaciones normales (sin privilegios directos sobre el hardware). Para interactuar con el núcleo, se utilizan las SYSTEM CALLS (Llamadas al Sistema), que funcionan como un puente seguro entre el User Space y el Kernel.

3. Conceptos básicos de Linux

Linux ≠ Ubuntu

  • Linux: Es estrictamente el kernel (núcleo).
  • Ubuntu: Es una distribución (el kernel Linux sumado a herramientas, entornos gráficos y aplicaciones).

P01.1.- Intro Linux


GNU/Linux

Se refiere a la combinación del núcleo Linux con las herramientas del proyecto GNU (como bash, coreutils, entre otros).

P01.1.- Intro Linux


Capas del sistema Linux

La jerarquía de funcionamiento es: Hardware → Kernel → Shell (CLI) → GUI.

P01.1.- Intro Linux


CLI vs. GUI

  • GUI (Interfaz Gráfica de Usuario): Es visual, intuitiva y fácil de usar para el usuario común.
  • CLI (Interfaz de Línea de Comandos): Es poderosa, altamente automatizable y la opción preferida en entornos de servidores.

P01.1.- Intro Linux


⚙️ 4. Componentes del sistema de cómputo

Basado en el Modelo de Von Neumann, los componentes principales son:

  • CPU.
  • Memoria (RAM).
  • Dispositivos de E/S.
  • Bus del sistema (vías de comunicación).

CPU (Unidad Central de Procesamiento)

Es la encargada de ejecutar las instrucciones mediante:

  • Unidad de Control.
  • ALU (Unidad Aritmético-Lógica).
  • Registros.

RAM (Memoria de Acceso Aleatorio)

Se caracteriza por ser:

  • Volátil (pierde datos sin energía).
  • Rápida.
  • Limitada en capacidad.
  • Administrada directamente por el SO.

Drivers (Controladores)

Son los intermediarios de software que permiten la comunicación entre un dispositivo físico y el kernel.


⚡ 5. Interrupciones (IRQ)

Una interrupción es una señal enviada a la CPU que le indica: "Detente, ha ocurrido un evento importante que requiere atención inmediata".

Pasos del proceso:

  1. Pausa: La CPU detiene la tarea actual.
  2. Guarda contexto: Se almacena el estado actual para no perder el progreso.
  3. Ejecuta handler: Se corre el manejador de la interrupción.
  4. Regresa: La CPU retoma la tarea anterior.

7. User Mode vs. Kernel Mode

  • User Mode (Modo Usuario): Modo restringido donde corren las aplicaciones normales.
  • Kernel Mode (Modo Privilegiado): Modo con acceso total al hardware donde reside el código del núcleo.

Componentes principales del kernel:

  • Scheduler (Planificador).
  • Memoria virtual.
  • VFS (Sistema de Archivos Virtual).
  • Drivers.
  • IPC (Comunicación entre procesos).

🧩 8. Tipos de Kernel

Monolítico

Todos los servicios residen dentro del kernel. Es muy rápido pero conlleva más riesgos de estabilidad. Ejemplo: Linux clásico.


Modular

Es un diseño monolítico que permite cargar y descargar módulos dinámicos (como drivers) sin reiniciar. Ejemplo: Linux moderno.

Microkernel

El kernel se reduce al mínimo y los servicios corren en el User Space. Es más seguro y estable, pero generalmente menos rápido.

P03.- Estructura SO


Híbrido

Es una combinación de arquitecturas. Ejemplos: Windows NT y macOS.

9. Procesos

Definición

Un proceso es un programa en ejecución que incluye su memoria asignada, estado actual y recursos del sistema.

P04 – Procesos y estado, IPC_ p…

📌 Nota: El Sistema Operativo planifica la ejecución de procesos, no de programas estáticos.

P04 – Procesos y estado, IPC_ p…


Programa vs. Proceso

ProgramaProceso
Vive en el disco duroVive en la memoria RAM
Es un ente pasivoEs un ente activo
No posee un PIDPosee un PID (Process ID)

10. Memoria de un proceso

Un proceso organiza su memoria en las siguientes regiones:

  • Text: Contiene el código ejecutable.
  • Data: Almacena variables globales inicializadas.
  • BSS: Almacena variables globales no inicializadas (se inician en 0).
  • Heap: Memoria dinámica (ej. malloc en C).
  • Stack: Almacena variables locales y direcciones de retorno de funciones.

11. Estados de un proceso

En el modelo clásico, un proceso puede estar en:

  • New: Recién creado.
  • Ready: Listo para ejecutar, esperando CPU.
  • Running: En ejecución actual.
  • Waiting / Blocked: Esperando un evento o recurso.
  • Terminated: Finalizado.

📌 Dato: La mayor parte del tiempo, los procesos se encuentran en estado Ready o Waiting.

12. Scheduler (Planificador)

El Scheduler es el componente que decide:

  • ¿Quién se ejecuta?
  • ¿Cuándo se ejecuta?
  • ¿Durante cuánto tiempo? (denominado Quantum).

El estado Ready significa que el proceso está listo, pero no tiene asignada una CPU en ese instante.


🧾 13. Estados reales en Linux (ps STAT)

Para visualizar los estados en Linux se utiliza el comando: ps -o pid,stat,comm

Significado de los estados:

  • R (Running/Runnable): Ejecutándose o listo para ejecutar.
  • S (Sleeping): Esperando un evento (interrumpible).
  • D (Uninterruptible Sleep): Espera de E/S no interrumpible.
  • T (Stopped): Detenido.
  • Z (Zombie): El proceso terminó, pero su padre aún no ha ejecutado la llamada wait().

14. Context Switch (Cambio de Contexto)

El Context Switch ocurre cuando la CPU cambia la ejecución del Proceso A al Proceso B.

Información que se guarda:

  • Valores de los registros.
  • PC (Program Counter).
  • SP (Stack Pointer).
  • PCB (Process Control Block).

Costo asociado:

  • Genera overhead (sobrecarga del sistema).
  • Las cachés y la TLB se "enfrían" (pierden datos relevantes).
  • Puede provocar una baja temporal en el rendimiento.

Entradas relacionadas: