Unidad 1: Profundización

Ir a las Preguntas del Debate

¿Qué es un Sistema Operativo?

Un Sistema Operativo (SO) es el software más importante que se ejecuta en una computadora. Es el programa maestro que, al arrancar el equipo, toma el control de todo el hardware y crea una capa de abstracción sobre la cual pueden funcionar todos los demás programas, desde un navegador web hasta un videojuego.

Sin un SO, cada programador tendría que escribir código específico para manejar cada detalle del hardware: cómo leer un teclado, cómo dibujar un píxel en la pantalla o cómo guardar un byte en el disco duro. El SO nos libera de esa complejidad, ofreciendo servicios estandarizados.

Analogía: El Gerente de un Restaurante

Imagina una computadora como un restaurante de alta cocina.

  • El Hardware: Son los recursos físicos. La cocina, los chefs (CPU), las mesas (memoria RAM), la despensa (disco duro) y los camareros (periféricos).
  • Las Aplicaciones: Son los clientes. Cada cliente tiene un pedido (un proceso) y quiere ser atendido de forma rápida y eficiente.
  • El Sistema Operativo: Es el gerente del restaurante. No cocina ni come, pero se asegura de que todo funcione. Asigna chefs a los pedidos, decide qué clientes se sientan en qué mesas, gestiona el inventario de la despensa y coordina a los camareros. Si muchos clientes piden lo mismo, el gerente decide el orden para que la cocina no colapse.

El gerente (SO) es el intermediario indispensable que garantiza que los recursos (hardware) se usen de la mejor manera posible para satisfacer las demandas (software de aplicación).

Tipos de Sistemas y Casos Reales

Los SO se clasifican según cómo gestionan las tareas, los usuarios y los recursos. Esto no es solo teoría; define cómo usamos nuestros dispositivos todos los días.

  • Multitarea: Es la base de los sistemas modernos. Mientras lees esto en tu navegador, tu computadora probablemente está recibiendo notificaciones, actualizando el antivirus en segundo plano y reproduciendo música. Windows, macOS y Linux son ejemplos claros. El SO cambia entre tareas tan rápido (miles de veces por segundo) que crea la ilusión de simultaneidad.
  • Multiusuario: Piensa en los servidores de una empresa o una universidad. Un único y potente servidor con Linux puede estar atendiendo a cientos de usuarios a la vez, cada uno con su sesión, sus archivos y sus programas, de forma segura y aislada.
  • Sistemas de Tiempo Real (RTOS): Aquí, la predictibilidad es más importante que la velocidad. En el sistema de frenos ABS de un coche, el SO debe garantizar que el cálculo se realiza en un plazo estricto de milisegundos. Un retraso podría ser catastrófico. Otros ejemplos son los controladores de robots industriales o los marcapasos.

El Legado de los Sistemas Batch

Aunque parezcan primitivos, los sistemas por lotes (batch) introdujeron conceptos fundamentales. La idea de un "job" (trabajo) con una secuencia de comandos es el ancestro directo de los scripts (.bat en Windows, .sh en Linux) que automatizan tareas hoy en día. Permitieron que las computadoras trabajaran sin supervisión durante horas, maximizando su carísimo tiempo de uso y sentando las bases de la planificación de procesos.

Arquitecturas: El plano del SO

La forma en que se estructura internamente un SO define su rendimiento, estabilidad y seguridad.

Núcleo Monolítico

Idea: Todo en uno. La gran mayoría de los servicios del SO (gestión de memoria, procesos, archivos, drivers) se ejecutan en un único y gran programa en el modo privilegiado (kernel space).

Caso Real: El kernel de Linux es el ejemplo más famoso. Es increíblemente rápido porque la comunicación entre componentes es una simple llamada a una función dentro del mismo programa. Su desventaja: un error en un driver de video puede, teóricamente, colapsar todo el sistema.

Microkernel (Micronúcleo)

Idea: Menos es más. El núcleo se reduce a la mínima expresión: solo lo absolutamente esencial (comunicación entre procesos y poco más). El resto (drivers, sistema de archivos) se ejecuta como procesos de usuario normales.

Caso Real: QNX, un SO usado en sistemas críticos de coches y equipos médicos. Si el driver de la pantalla falla, el SO puede simplemente reiniciarlo sin afectar al resto del sistema. Es más lento que un monolítico (la comunicación entre procesos es más costosa), pero muchísimo más estable y seguro.

Práctica para el Aula (Windows 10/11)

Una de las mejores formas de "ver" el SO en acción es usar una herramienta que todos tienen: el Administrador de Tareas. Esta actividad busca desmitificar lo que ocurre "detrás de la pantalla".

Objetivo y Pasos:

  1. Abrir el Administrador de Tareas: Ctrl + Shift + Esc.
  2. Explorar "Procesos": Identificar "Aplicaciones" vs. "Procesos en segundo plano".
  3. Experimento de Recursos: Ir a "Rendimiento". Abrir un video de YouTube y observar el uso de CPU/Red. Luego abrir varios programas y observar cómo aumenta el uso de Memoria.

Preguntas para el Debate

  • ¿Por qué creen que hay tantos procesos en segundo plano si no abrieron nada?
  • Si un programa se "cuelga" (no responde), ¿qué acción podrían realizar desde el Administrador de Tareas? (Pista: Finalizar tarea).
  • ¿Qué creen que pasaría si la memoria RAM se llena por completo? ¿Cómo podría el SO manejar esa situación? (Introduce el concepto de memoria virtual).

Desafío: Desbloquea las Respuestas

¿Qué mecanismo "mágico" usa el SO para ampliar la RAM usando el disco duro cuando esta se agota?