1. Gestión de procesos:
* Programación: El sistema operativo determina qué procesos se ejecutan en el procesador y durante cuánto tiempo. Utiliza varios algoritmos de programación (como el primer servicio, el robin redondo, basado en la prioridad) para asignar el tiempo de CPU.
* Cambio de contexto: Al cambiar entre procesos, el sistema operativo guarda el estado del proceso actual (registros, punteros de memoria, etc.) y carga el estado del nuevo proceso. Esto permite un cambio rápido entre tareas sin perder datos.
* Gestión de memoria: El sistema operativo asigna y administra el espacio de memoria para cada proceso, asegurando que no interfieran entre sí. Utiliza técnicas como la memoria virtual para que parezca que hay más memoria física disponible de lo que realmente existe.
* Sincronización del proceso: El sistema operativo proporciona mecanismos como semáforos, mutexes y monitores para prevenir las condiciones de la carrera y garantizar la integridad de los datos cuando múltiples procesos acceden a los recursos compartidos.
2. Gestión del procesador:
* Manejo de interrupciones: El sistema operativo maneja las interrupciones del procesador (causadas por eventos como solicitudes de E/S, expiraciones del temporizador o errores). Determina la respuesta apropiada a estas interrupciones, asegurando que el sistema continúe funcionando sin problemas.
* Gestión de energía del procesador: En los sistemas modernos, el sistema operativo puede controlar el estado eléctrico del procesador (como la frecuencia del reloj, el voltaje) para optimizar el rendimiento y el consumo de energía.
* Soporte de multiprocesamiento/Multicore: El sistema operativo puede administrar múltiples procesadores o núcleos dentro de un sistema, asegurando que las tareas se distribuyan de manera eficiente entre los recursos disponibles.
3. Asignación de recursos:
* Justicia: El sistema operativo tiene como objetivo asignar el tiempo de CPU de manera justa entre todos los procesos de ejecución. Su objetivo es evitar que un proceso acapare todos los recursos.
* Prioridad: El sistema operativo podría priorizar ciertos procesos sobre otros en función de su importancia o las necesidades del sistema.
* Límites de recursos: El sistema operativo puede imponer límites a los recursos que un proceso puede utilizar para evitar la inanición de recursos o los ataques de denegación de servicios.
Ejemplo:
Imagina que estás trabajando en un documento mientras escuchas música. El sistema operativo administra el procesador a:
* Programa: Cambie entre el procesador de palabras y el reproductor de música, asegurando que ambos funcionen sin problemas.
* Asignar memoria: Proporcione suficiente espacio de memoria para que ambos programas funcionen.
* El manejo interrumpe: Responda a las entradas de teclado para el documento y los datos de audio provenientes del reproductor de música.
En esencia, el sistema operativo actúa como un policía de tránsito para su computadora, asegurando que todos los diferentes programas y tareas puedan ejecutarse sin problemas y eficientemente, utilizando el procesador de manera efectiva.