Portada » Informática » Fundamentos de Comunicación y Planificación de Procesos en Sistemas Operativos
Con frecuencia, los procesos necesitan comunicarse entre sí. Por ejemplo, un programa en la shell puede utilizar la salida de otro como entrada. Esto se denomina IPC (Inter-Process Communication).
La comunicación entre procesos aborda tres aspectos fundamentales:
En algunos sistemas operativos, dos o más procesos que colaboran comparten un área de almacenamiento donde ambos pueden leer y escribir, como ocurre en el spooler de impresión.
Generalmente, las soluciones para este tipo de problemas son complejas, presentando comportamientos inusuales e inexplicables.
Es una forma de evitar que dos o más procesos escriban en una misma región de memoria compartida al mismo tiempo, eliminando las condiciones de competencia mediante la exclusión mutua. Este mecanismo asegura que una región de memoria utilizada por un proceso no pueda ser accedida por otro simultáneamente.
Para que este mecanismo funcione correctamente, deben cumplirse cuatro condiciones:
Es un tipo de dato abstracto que permite el uso de un recurso de manera exclusiva. Su estado interno cuenta cuántos procesos pueden utilizar el recurso, utilizando un número entero que nunca debe ser negativo.
Existen tres operaciones principales con un semáforo:
Definen la interfaz entre el sistema operativo y el usuario. Cuando un programa necesita un servicio, ejecuta la instrucción TRAP, que transfiere el control al sistema operativo. Tras ejecutarse, el control se devuelve al proceso de usuario.
Estas llamadas varían según el estándar (POSIX en UNIX frente a la API de Win32 en Microsoft), aunque el objetivo es equivalente.
El tiempo de respuesta es fundamental, ya que dependen de estímulos de dispositivos externos (ejemplo: frenos ABS). Se clasifican en:
El comportamiento se logra dividiendo el programa en procesos predecibles. Los algoritmos de planificación pueden ser estáticos (decisiones antes de la ejecución) o dinámicos (en tiempo de ejecución).
Sistemas interactivos donde se utilizan diversos algoritmos:
Se busca maximizar el rendimiento, reducir tiempos de retorno y optimizar la utilización de CPU.
