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:
- Pausa: La CPU detiene la tarea actual.
- Guarda contexto: Se almacena el estado actual para no perder el progreso.
- Ejecuta handler: Se corre el manejador de la interrupción.
- 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
| Programa | Proceso |
|---|---|
| Vive en el disco duro | Vive en la memoria RAM |
| Es un ente pasivo | Es un ente activo |
| No posee un PID | Posee 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.
mallocen 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.