5 Prestaciones de los sistemas operativos
En sesiones pasadas, habíamos mencionado que el sistema operativo actúa como intermediario entre el hardware y el software. Tiene la tarea de coordinar y gestionar los recursos físicos y lógicos del sistema, permitiendo que las aplicaciones se ejecuten de manera eficiente y segura. En esta sección, nos centraremos en explorar las principales prestaciones de un sistema operativo, abarcando desde los servicios al usuario hasta las llamadas al sistema, la gestión de recursos y los mecanismos de seguridad, además de los estándares que aseguran una implementación segura en las diferentes plataformas.
5.1 Servicios al usuario
5.1.1 Interfaz de programación de aplicaciones (API)
Uno de los servicios esenciales que ofrece un sistema operativo es la API, que constituye un conjunto de funciones, procedimientos y herramientas que permiten a los desarrolladores interactuar con el sistema. Estas interfaces simplifican la programación, ya que abstraen la complejidad de las operaciones a nivel de hardware, brindando funciones estandarizadas para:
- Gestión de archivos
- Operaciones de lectura, escritura, eliminación y modificación de archivos.
- Gestión de procesos
- Creación, ejecución y finalización de procesos.
- Entrada/Salida (E/S)
- Manejo de dispositivos de entrada y salida, tales como teclados, ratones, impresoras y redes.
5.1.2 Bibliotecas de sistema
Además de las APIs, los sistemas operativos proporcionan bibliotecas precompiladas que facilitan el desarrollo de aplicaciones. Estas bibliotecas contienen rutinas reutilizables para tareas comunes, lo que mejora la eficiencia en el desarrollo y la consistencia en el comportamiento de las aplicaciones. Ejemplos:
- Biblioteca Matemática (libm)
- Incluye funciones para cálculos matemáticos avanzados, como seno, coseno, logaritmos, entre otros.
- kernel32.dll
- Gestiona funciones esenciales como el manejo de memoria, la creación de procesos y las llamadas al sistema.
5.2 Llamadas al sistema
Las llamadas al sistema son la interfaz mediante la cual las aplicaciones en modo usuario solicitan servicios al kernel, que opera en un nivel privilegiado. Este mecanismo permite que los programas puedan realizar operaciones que requieren acceso directo a los recursos del hardware (como leer o escribir en un disco, gestionar la memoria o comunicarse a través de la red) sin comprometer la seguridad del sistema.
5.2.1 Clasificación de Llamadas al Sistema
Las llamadas al sistema se categorizan según su ámbito de acción:
- Gestión de Procesos
-
fork(),exec(),wait()permiten crear nuevos procesos, reemplazar su imagen de memoria y sincronizar su ejecución. En sistemas UNIX,fork()genera un proceso hijo idéntico al padre, mientrasexec()carga un nuevo programa en su espacio de direcciones. - Operaciones de Archivo
-
open(),read(),write(),close()abstraen las diferencias entre dispositivos de almacenamiento, permitiendo a las aplicaciones manipular archivos sin conocer detalles del hardware subyacente. - Comunicación entre Procesos (IPC)
-
Llamadas como
pipe(),shmget()omsgsend()habilitan el intercambio de datos entre procesos, ya sea mediante memoria compartida, tuberías o mensajes.
Gestión de Dispositivos: ioctl() proporciona un interfaz genérico para configurar parámetros de hardware, como la velocidad de un puerto serial o el modo de operación de una tarjeta gráfica.
5.3 Gestión de recursos
Un sistema operativo debe gestionar eficazmente los recursos del sistema, asegurando que cada proceso y aplicación tenga acceso a lo necesario sin conflictos. Esto abarca:
- Gestión de la memoria
- La administración de memoria implica asignar, liberar y proteger los bloques de memoria, tanto física como virtual, evitando colisiones y garantizando la estabilidad del sistema.
- Gestión de los procesos
- Se trata de la planificación y ejecución de múltiples procesos de manera concurrente, utilizando algoritmos de planificación que optimizan el uso del CPU y mejoran la respuesta del sistema.
- Dispositivos y E/S
- El sistema operativo controla la comunicación con dispositivos de hardware a través de controladores específicos, garantizando una transferencia de datos eficiente y segura.
5.4 Mecanismos de seguridad y protección
La seguridad es una prioridad en cualquier sistema operativo. Para ello, se implementan varios mecanismos que incluyen:
- Control de Acceso
- Utilización de permisos y políticas que determinan quién puede acceder y modificar determinados recursos, como archivos y dispositivos.
- Aislamiento de Procesos
- La segregación de procesos impide que un programa interfiera o acceda a la información de otro, protegiendo la integridad y privacidad de los datos.
- Monitoreo y Auditoría
- Sistemas de registro que permiten rastrear actividades y detectar comportamientos anómalos, ayudando a prevenir y responder a posibles amenazas.