Paralelismo y competencia entre procesos

El paralelismo implica que existen varios procesadores en un sistema que se da entre la unidad central de proceso (CPU) y los dispositivos de entrada/salida.

Un programa concurrente es visto como una colección de procesos secuenciales autónomos que se ejecutan (lógicamente) en paralelo. La ejecución de procesos toma una de las siguientes formas:

Multiprogramación: ejecución de múltiples procesos en un solo procesador.

Multiprocesamiento: ejecución de múltiples procesos en un sistema multiprocesador donde hay acceso a memoria compartida.

– Programación distribuida: ejecución de múltiples procesos en varios procesadores los cuales no comparten memoria.

La competencia entre procesos se puede dar en alguna de las siguientes formas:

Compatibles: pueden ser utilizados por varios procesos de forma concurrente.
No compatibles: su uso se restringe a un solo proceso solamente

La naturaleza física del recurso hace que sea imposible compartirlo, por ejemplo si una impresora fuera utilizada por varios procesos simultáneamente, sus salidas se mezclarían en el papel.

Si el recurso es usado en forma concurrente, la acción de uno de ellos, puede interferir con la de otro, por ejemplo un archivo que contiene datos accesibles desde más de un proceso y modificables por uno de ellos.

Dentro de la categoría de los recursos no compatibles se encuentran la mayoría de los periféricos, los archivos de escritura y las zonas de memoria que se pueden modificar. En los recursos compatibles se encuentra la unidad central de proceso (CPU), archivos de lectura zonas de memoria que no esté sujeta a modificación.

Fuente: Apuntes de la materia Sistemas Operativos Multiusuario de la FCA – UNAM