La concurrencia es un concepto clave en los sistemas operativos que permite la comunicación y compartición de recursos entre procesos concurrentes. Existen tres contextos de concurrencia: multiprogramación, aplicaciones estructuradas, y la estructura del sistema operativo. La exclusión mutua y sincronización son importantes para prevenir conflictos cuando múltiples procesos acceden y modifican recursos compartidos al mismo tiempo.
2. Concurrencia: exclusión mutua y sincronización
• La concurrencia es el punto clave para el diseño de los Sistemas Operativos
donde vemos:
Comunicación entre procesos
Compartición
Competencia por los recursos
Sincronización de la ejecución
Asignación del tiempo de procesador a los procesos
3. Concurrencia: exclusión mutua y sincronización
• Se pueden presentar tres contextos diferentes en la concurrencia
Varias aplicaciones
La multiprogramación se creó para permitir que el tiempo de procesador de la máquina fuese
compartido dinámicamente entre varios trabajos o aplicaciones activas.
Aplicaciones estructuradas
Como ampliación de los principios del diseño modular y la programación estructurada,
algunas aplicaciones pueden implementarse eficazmente como un conjunto de procesos
concurrentes.
Estructura del sistema operativo
Las mismas ventajas de estructuración son aplicables a los programadores de sistemas y se
ha comprobado que algunos sistemas operativos están implementados como un conjunto de
procesos.
4. Concurrencia: exclusión mutua y sincronización
•
Se deben tener algunos conceptos básicos para poder entender y saber en que se
basan los sistemas:
Multiprogramación
Es la gestión de varios procesos dentro de un sistema monoprocesador; la mayoría de los
computadores personales, estaciones de trabajo y sistemas operativos actuales de estas máquinas
dan soporte a la multiprogramación.
Multiproceso
Es la gestión de varios procesos dentro de un sistema multiprocesador. Hasta no hace mucho, los
sistemas multiprocesador se utilizaban únicamente en grandes sistemas, computadores centrales
y minicomputadores.
Procesos distribuido
Es la gestión de varios procesos que ejecutan en sistemas de computadores múltiples y remotas.
5. Concurrencia: exclusión mutua y sincronización
• Hay varios elementos de gestión y diseño que surgen por causa de la
concurrencia:
El sistema operativo debe ser capaz de seguir la pista de los distintos procesos activos.
Esto lo hace por medio de bloques de control de procesos.
El sistema operativo debe asignar y quitar los distintos recursos a cada proceso activo.
Entre estos recursos se encuentra el tiempo de procesador, la memoria, los archivos y
los dispositivos de E/S.
El sistema operativo debe proteger los datos y los recursos físicos de cada proceso
contra injerencias no intencionadas de otros procesos.
Los resultados de un proceso deben ser independientes de la velocidad relativa a la que
se realiza la ejecución con respecto a otros procesos concurrentes.
6. Concurrencia: exclusión mutua y sincronización
• Pueden implementarse soluciones de software para los procesos
concurrentes que se ejecuten en máquinas de monoprocesador y
multiprocesador con una memoria principal compartida, donde
normalmente, estas soluciones suponen que existe una exclusión mutua
en el acceso a memoria. Es decir, los accesos simultáneos a la misma
posición de memoria se hacen en serie.
7. Concurrencia: exclusión mutua y sincronización
• El uso de instrucciones especiales de la maquina para hacer cumplir la
exclusión mutua tiene varias ventajas entre ellas:
a.
Es aplicable a cualquier número de procesos en sistemas con memoria compartida,
tanto de monoprocesador como de multiprocesador.
b.
c.
d.
Es simple y fácil de verificar.
e.
f.
Puede producirse inanición.
Puede usarse para disponer de varias secciones criticas.
Se emplea espera activa, mientras un proceso esta esperando para entrar a la
sección critica continua consumiendo tiempo de procesador.
Puede producirse interbloqueo.
8. Concurrencia: exclusión mutua y sincronización
• Para poder concluir los temas centrales de los sistemas operativos son la
multiprogramación, multiproceso y el proceso distribuido. Un punto
fundamental para la tecnología en el diseño de sistemas operativos es la
concurrencia, cuando se ejecutan varios procesos concurrentemente, en el
caso real de un sistema multiprocesador o en el caso virtual de un sistema
monoprocesador multiprogramado, aparecen resolución de conflictos y de
cooperación.
9. Concurrencia: exclusión mutua y sincronización
• Los procesos concurrentes pueden interactuar de varias formas, pero los
procesos que no tiene conocimiento de ellas uno de los otros pueden
competir por recursos tales como el tiempo del procesador o los dispositivos
de E/S.
• La exclusión mutua es una condición en la cual hay un conjunto de procesos
concurrentes y sólo uno puede acceder a un recurso dado o realizar una
función dada en cada instante de tiempo.