Concepto y funciones del sistema operativo
La informática es el estudio del tratamiento automático de la información mediante dispositivos electrónicos. Dentro de un sistema informático (compuesto por hardware, software, datos y personas/usuarios), el sistema operativo (SO) es el software base que actúa de intermediario entre el hardware y las aplicaciones. La unidad de medida de la información (bit, byte) no es un componente del sistema informático, sino una magnitud.
El SO desempeña funciones esenciales:
-
Gestión de procesos: crea, planifica y finaliza procesos y reparte el tiempo del procesador.
-
Gestión de memoria: asigna y libera memoria principal, controla su uso.
-
Gestión de archivos y directorios: administra el sistema de archivos permitiendo crear, eliminar y manipular archivos y carpetas.
-
Gestión del almacenamiento: controla cómo se guarda la información de forma permanente en unidades de disco.
-
Seguridad y protección: crea mecanismos que evitan el acceso de intrusos a recursos o servicios no autorizados.
-
Comunicación entre procesos (IPC): el mecanismo por el que el kernel permite que procesos y servidores se comuniquen entre sí.
El núcleo (kernel)
El kernel o núcleo es la parte más básica e importante del sistema operativo: el software que gestiona los recursos del hardware (procesador, memoria, dispositivos) y regula la interacción entre el hardware y el software. Se ejecuta en modo privilegiado (modo kernel), en el que el código accede al hardware sin restricciones. Frente a él, el modo usuario está limitado: si un proceso falla en modo usuario, el daño es limitado y el kernel puede gestionar su impacto, sin comprometer todo el sistema.
A un sistema operativo se le denomina habitualmente por el nombre de su kernel (por ejemplo, se habla de sistemas «Linux» por su núcleo). Conceptualmente el kernel estructura sus responsabilidades en capas: la interfaz con el hardware, la gestión de la memoria, el gestor de procesos y el sistema de archivos.
Son funciones del kernel la gestión de procesos, del almacenamiento y de la memoria (supervisar el uso de la memoria). En cambio, la gestión de usuarios y contraseñas NO es una función propia del kernel (corresponde a servicios de nivel superior del SO).
Tipos de kernel según su arquitectura
Según consideraciones arquitectónicas, los núcleos se categorizan en:
| Tipo | Característica |
|---|---|
| Monolítico | Todos los servicios corren en espacio de núcleo; ofrece mayor rendimiento que un microkernel. |
| Microkernel (micronúcleo) | Solo lo esencial en el núcleo; el resto son servidores en modo usuario que dialogan por IPC. |
| Híbrido | Combina rasgos de ambos. |
Multitarea y planificación de procesos
Un SO multitarea es capaz de ejecutar varias tareas o programas al mismo tiempo. Como el procesador atiende un flujo cada vez, el SO reparte el tiempo del procesador entre las aplicaciones, alternándolas de forma muy rápida, dando sensación de simultaneidad.
Según cómo se ceda el procesador se distinguen dos tipos de algoritmos de planificación:
-
Apropiativos (preventivos/preemptive): el SO puede expulsar del procesador a un proceso en ejecución. En la multitarea preventiva (apropiativa) el sistema emplea interrupciones de hardware para forzar la cesión del procesador a otros procesos, aunque el proceso actual no esté listo para detenerse.
-
No apropiativos (cooperativos): el proceso conserva el procesador hasta que lo cede voluntariamente.
Algoritmos y planificadores (schedulers)
-
Round Robin (RR): asigna a cada proceso un «quantum» o «time-slice» (rodaja de tiempo); agotado el quantum, el proceso pasa al final de la cola.
-
Selfish Round Robin (SRR): variante de RR que emplea dos colas, una para los procesos nuevos y otra para los procesos antiguos (aceptados); los nuevos esperan y aumentan su prioridad hasta ser admitidos, favoreciendo a los antiguos.
Existen tres planificadores según su ámbito de decisión:
| Scheduler | Decisión |
|---|---|
| Long term (largo plazo) | Decide qué procesos se admiten en el sistema. |
| Short term (corto plazo) | Decide qué proceso entra en el procesador para ejecutarse. |
| Mid term (medio plazo) | Decide qué proceso activo se retira para liberar memoria cuando el sistema está sobrecargado (swapping). |
Gestión de memoria
Al usar paginación, cuando se asigna un marco de página a un proceso puede no aprovecharse todo el espacio reservado; ese desperdicio dentro de la unidad asignada se denomina fragmentación interna. Es, por tanto, un efecto que la paginación puede provocar.
Sistemas multiusuario
Un SO es multiusuario cuando permite tener configurados varios usuarios distintos y está capacitado para administrar los recursos de forma que múltiples usuarios utilicen el mismo hardware sin interferir entre sí.
Software propietario frente a software libre
-
Sistemas operativos propietarios (código cerrado/oculto): desarrollados por empresas para uso comercial, con el código fuente oculto; solo los creadores y la empresa titular tienen acceso al código fuente y su distribución requiere un pago previo (licencia). Ejemplo típico: Windows.
-
Sistemas operativos libres (código abierto): creados por una comunidad sin fines comerciales, con código abierto; su uso y distribución son libres y gratuitos, pudiéndose realizar y distribuir modificaciones sin pagar licencias. La diferencia clave de mantenimiento: los propietarios los desarrolla una empresa específica, los libres una comunidad abierta.
Conceptos relacionados
-
Lenguajes de programación: los de bajo nivel (por ejemplo, ensamblador) son los más cercanos al hardware; el ensamblador no es un lenguaje de alto nivel.
-
Complejidad algorítmica: medida del consumo de recursos de un algoritmo en función del tamaño de la entrada.
-
Arquitectura de Von Neumann: su característica clave es la memoria compartida (datos e instrucciones en la misma memoria); su limitación es el cuello de botella de Von Neumann (el bus único entre CPU y memoria limita el rendimiento).
-
Modelo CISC: la microprogramación es una característica esencial.
Extensiones de archivo frecuentes
| Tipo de contenido | Extensión |
|---|---|
| Hoja de cálculo | .ods |
| Presentación | .pptx |
| Imagen (web) | .png |
| Vídeo | .mp4 |
| Audio | .mp3 |
| Texto plano | .txt |
Fuentes
-
The Linux Kernel documentation — https://docs.kernel.org/
-
Microsoft Learn, Windows kernel-mode / user-mode — https://learn.microsoft.com/en-us/windows-hardware/drivers/gettingstarted/user-mode-and-kernel-mode
-
GeeksforGeeks, «Selfish Round Robin CPU Scheduling» — https://www.geeksforgeeks.org/operating-systems/selfish-round-robin-cpu-scheduling/
-
GeeksforGeeks, «Difference between Short-Term, Medium Term, and Long-Term Scheduler» — https://www.geeksforgeeks.org/operating-systems/difference-between-short-term-medium-term-and-long-term-scheduler/
-
OASIS OpenDocument Format (ODF) specification — https://docs.oasis-open.org/office/OpenDocument/
-
W3C, PNG (Portable Network Graphics) Specification — https://www.w3.org/TR/png/