Conceptos de Sistemas Operativos
Un Sistema Operativo (SO) es el software encargado de administrar los recursos del hardware y proporcionar servicios a las aplicaciones, actuando como intermediario entre ambos.
Su finalidad es facilitar el uso del ordenador, optimizar el aprovechamiento de los recursos y garantizar un funcionamiento seguro y estable.
Objetivos de un Sistema Operativo
Los principales objetivos de un sistema operativo son:
- Comodidad: facilitar el uso del hardware a usuarios y desarrolladores.
- Eficiencia: administrar correctamente CPU, memoria y dispositivos.
- Evolución: permitir la incorporación de nuevas funciones y actualizaciones sin afectar al funcionamiento del sistema.
Funciones principales
Un sistema operativo realiza, entre otras, las siguientes funciones:
- Controlar la ejecución de procesos.
- Gestionar la memoria principal.
- Administrar los dispositivos de Entrada/Salida (E/S).
- Gestionar el sistema de archivos.
- Controlar usuarios y permisos.
- Coordinar el acceso a los recursos del sistema.
Evolución histórica
Sistemas por lotes (Batch)
- Década de 1950.
- Los trabajos se agrupaban en lotes.
- No existía interacción con el usuario.
- Gran tiempo de espera debido a operaciones de E/S.
Multiprogramación
Permite mantener varios procesos cargados simultáneamente en memoria.
Cuando un proceso espera una operación de E/S, otro utiliza la CPU.
Objetivo principal:
- Maximizar la utilización del procesador.
Tiempo compartido (Time Sharing)
Evolución de la multiprogramación.
Características:
- Varios usuarios utilizan el sistema simultáneamente.
- La CPU reparte pequeños intervalos de tiempo (quantum).
- Se obtiene una sensación de ejecución simultánea.
Sistemas distribuidos
Conjunto de equipos conectados mediante una red que funcionan como un único sistema.
Ventajas:
- Compartición de recursos.
- Balanceo de carga.
- Tolerancia a fallos.
Sistemas modernos
Actualmente predominan sistemas:
- Multiprocesador.
- Arquitecturas de 64 bits.
- Virtualización integrada.
- Compatibilidad con la nube.
- Adaptación a dispositivos móviles e IoT.
Características principales
| Característica | Descripción |
|---|---|
| Multiusuario | Permite varios usuarios simultáneamente. |
| Multitarea | Ejecuta múltiples procesos de forma concurrente. |
| Multiproceso | Utiliza varias CPU simultáneamente. |
| Multihilo | Permite varios hilos dentro del mismo proceso. |
| Tiempo real | Garantiza respuestas dentro de tiempos estrictos. |
Arquitectura del Sistema Operativo
Componentes principales
- Kernel (Núcleo): controla directamente el hardware.
- Shell: interfaz entre usuario y sistema.
- Espacio de usuario: ejecución de aplicaciones.
- Espacio de núcleo: ejecución del kernel y drivers.
- Llamadas al sistema (System Calls): mecanismo de comunicación entre aplicaciones y núcleo.
Gestión de procesos
Conceptos fundamentales
- Proceso: programa en ejecución.
- Hilo (Thread): unidad mínima de ejecución dentro de un proceso.
Estados de un proceso
- Nuevo.
- Listo.
- Ejecución.
- Bloqueado.
- Terminado.
Planificación (Scheduling)
El planificador decide qué proceso obtiene la CPU.
Puede ser:
- Apropiativa (Preemptive).
- No apropiativa (Cooperativa).
Cambio de contexto (Context Switch)
Consiste en guardar el estado del proceso actual y restaurar el del siguiente proceso.
Sincronización
Permite coordinar procesos concurrentes mediante:
- Semáforos.
- Mutex.
- Variables de condición.
También evita:
- Condiciones de carrera.
- Deadlocks (interbloqueos).
Gestión de memoria
Los principales conceptos son:
- RAM: memoria principal.
- Memoria virtual: amplía la memoria utilizando almacenamiento secundario.
- Paginación: divide memoria en páginas.
- Segmentación: divide la memoria según la estructura lógica del programa.
- Swap: espacio del disco utilizado cuando la RAM resulta insuficiente.
| Técnica | Característica |
|---|---|
| Paginación | Bloques de tamaño fijo. |
| Segmentación | Bloques de tamaño variable. |
| Swap | Extensión temporal de la RAM mediante disco. |
Sistemas de archivos
Un sistema de archivos organiza la información almacenada en discos.
Conceptos
- Directorios.
- Archivos.
- Inodos (Linux).
Sistemas de archivos más utilizados
| Sistema | Características |
|---|---|
| NTFS | Windows, permisos, journaling, cifrado. |
| FAT32 | Muy compatible, límite de 4 GB por archivo. |
| exFAT | Optimizado para memorias flash. |
| ext4 | Estándar en Linux. |
| XFS | Alto rendimiento y escalabilidad. |
Gestión de dispositivos
El sistema operativo administra los periféricos mediante:
- Drivers (Controladores).
- Entrada/Salida (E/S).
- Interrupciones.
- DMA (Acceso Directo a Memoria).
Funciones principales
- Detectar dispositivos.
- Controlar la comunicación.
- Optimizar las transferencias de datos.
Seguridad
La seguridad del sistema operativo se basa en:
- Usuarios.
- Permisos.
- ACL (Listas de Control de Acceso).
- Auditoría.
Permisos clásicos de Linux
- Lectura (r)
- Escritura (w)
- Ejecución (x)
Tendencias actuales
Las tecnologías más relevantes son:
- Virtualización.
- Contenedores.
- Computación en la nube.
- Automatización.
- Inteligencia Artificial aplicada al sistema operativo.
Tipos de hipervisores
| Tipo | Ejemplos |
|---|---|
| Tipo 1 | VMware ESXi, Hyper-V, Xen |
| Tipo 2 | VirtualBox, VMware Workstation |
Contenedores
Comparten el kernel del sistema anfitrión.
Ejemplos:
- Docker.
- Podman.
Ventajas de un Sistema Operativo moderno
- Mejor aprovechamiento del hardware.
- Seguridad.
- Estabilidad.
- Administración eficiente de recursos.
- Compatibilidad con múltiples aplicaciones.
- Soporte para virtualización y nube.
Errores habituales
- Confundir proceso con hilo.
- Pensar que multitarea implica multiprocesador.
- Confundir memoria virtual con memoria RAM.
- No distinguir kernel de shell.
- Pensar que los drivers forman parte del hardware.
Cómo evitarlos
- Diferenciar claramente procesos e hilos.
- Comprender la arquitectura del sistema.
- Estudiar la gestión de memoria.
- Practicar con sistemas Windows y Linux.
Relaciones con otros temas
Los sistemas operativos están estrechamente relacionados con:
- Arquitectura de computadores.
- Redes.
- Sistemas de almacenamiento.
- Virtualización.
- Seguridad informática.
- Administración de servidores.
- Computación en la nube.