CONCURRENCIA
¿Qué es?
La concurrencia es la propiedad de los sistemas que permiten que múltiples procesos
sean ejecutados al mismo tiempo, y que potencialmente puedan interactuar entre sí.
Los procesos concurrentes pueden ser ejecutados realmente de forma simultánea,
sólo cuando cada uno es ejecutado en diferentes procesadores. En cambio, la
concurrencia es simulada si sólo existe un procesador encargado de ejecutar los
procesos concurrentes, simulando la concurrencia, ocupándose de forma alternada en
uno y otro proceso a pequeñísimos intervalos de tiempo. De esta manera simula que
se están ejecutando a la vez.
Los temas fundamentales del diseño de sistemas operativos están relacionados con la
gestión de procesos e hilos:
Multiprogramación: Es la gestión de varios procesos dentro de un sistema
monoprocesador.
Multiprocesamiento: Es la gestión de varios procesos, dentro de un sistema
multiprocesador.
Procesamiento distribuido: Es la gestión de varios procesos, ejecutándose en
sistemas de computadores múltiples y distribuidos.
La concurrencia es fundamental en todas estas áreas y para el diseño sistemas
operativos. La concurrencia comprende un gran número de cuestiones de diseño,
incluida la comunicación entre procesos, compartición y competencia por los
recursos, sincronización de la ejecución de varios procesos y asignación del tiempo
de procesador a los procesos.
Elementos de gestión y diseño que surgen por causa de la concurrencia:
1. El sistema operativo debe seguir a los distintos procesos activos
2. El sistema operativo debe asignar y retirar los distintos recursos a cada proceso
activo, entre estos se incluyen:
Tiempo de procesador
Memoria
Archivos
Dispositivos de E/S
3. El sistema operativo debe proteger los datos y los recursos físicos de cada
proceso contra injerencias no intencionadas de otros procesos.
Tiempo de procesador
Memoria
Archivos
Dispositivos de E/S
Principios de la concurrencia
Es un sistema multiprogramado con un único procesador intercala los procesos en el
tiempo aparentando una ejecución simultánea.
Aunque no se logra un procesamiento paralelo y produce una sobrecarga en los
intercambios de procesos, la ejecución intercalada produce beneficios en la eficiencia
del procesamiento y en la estructuración de los programas.
La intercalación y la superposición pueden contemplarse como ejemplos de
procesamiento concurrente en un sistema monoprocesador, los problemas son
consecuencia de la velocidad de ejecución de los procesos que no pueden predecirse y
depende de las actividades de otros procesos, de la forma en que el sistema operativo
trata las interrupciones surgen las siguientes dificultades.