Programación:
- Programación de procesos/hilos: El sistema operativo mantiene una lista de procesos y subprocesos que deben ejecutarse. Utiliza algoritmos de programación para determinar el orden en el que se deben ejecutar estas tareas, priorizando las tareas importantes o urgentes. Los algoritmos de programación comunes incluyen primero en entrar, primero en salir (FIFO), Round Robin, el trabajo más corto primero (SJF) y programación prioritaria.
- Manejo de interrupciones: Cuando se produce una interrupción (por ejemplo, un evento de hardware o una entrada del usuario), el sistema operativo suspende temporalmente la tarea que se está ejecutando actualmente y maneja la interrupción. Una vez que se procesa la interrupción, el sistema operativo reanuda la tarea original o programa la ejecución de otra tarea.
Asignación de recursos:
- Gestión de la memoria: El sistema operativo administra los recursos de memoria del sistema asignando y desasignando memoria a procesos y subprocesos en ejecución. Utiliza técnicas como memoria virtual, paginación e intercambio para optimizar el uso de la memoria.
- Asignación de CPU: El sistema operativo asigna tiempo de CPU a diferentes tareas según sus prioridades y requisitos de recursos. Garantiza que cada tarea obtenga una parte justa del tiempo de CPU y evita que una tarea monopolice el procesador.
- Gestión de E/S: El sistema operativo controla los dispositivos de entrada/salida (por ejemplo, unidades de disco, interfaces de red) gestionando el acceso a estos dispositivos y programando solicitudes de E/S de diferentes tareas.
- Gestión de archivos: El sistema operativo proporciona una interfaz de sistema de archivos unificada para administrar archivos, directorios y espacio de almacenamiento en dispositivos de almacenamiento secundarios. Regula el acceso a archivos, los permisos y la integridad de los datos.
Comunicación y sincronización entre procesos:
- Comunicación entre procesos (IPC): El sistema operativo proporciona mecanismos para que los procesos se comuniquen e intercambien información entre sí. Las técnicas comunes de IPC incluyen canalizaciones, colas de mensajes, memoria compartida y sockets.
- Sincronización: El sistema operativo garantiza que múltiples procesos puedan acceder a recursos compartidos simultáneamente sin conflictos. Utiliza mecanismos de sincronización como semáforos, mutex y monitores para coordinar el acceso a secciones críticas y prevenir condiciones de carrera.
- Prevención y manejo de puntos muertos: Los puntos muertos ocurren cuando varias tareas esperan entre sí para liberar los recursos que poseen. El sistema operativo implementa algoritmos de prevención y detección de interbloqueos para evitarlos o resolverlos de manera efectiva.
Al gestionar la programación, la asignación de recursos y la comunicación, el sistema operativo coordina las tareas de manera eficiente, garantiza un intercambio justo de recursos y mantiene la estabilidad y el rendimiento general del sistema.