jueves, 23 de febrero de 2023

Concurrencia y secuenciabilidad

 La concurrencia abarca una variedad de problemas de diseño, incluida la comunicación entre procesos, el intercambio de recursos y la competencia, la sincronización de la ejecución de diferentes procesos y la asignación de tiempo de procesador a los procesos, y es esencial para que existan diseños como la multiprogramación.

 

Los procesos simultáneos pueden funcionar de forma totalmente independiente entre sí o pueden ser asincrónicos, lo que significa que a veces necesitan cierta sincronización o colaboración.

 

TIPOS DE PROCESOS SIMULTÁNEOS.

 

Los procesos que se ejecutan simultáneamente en un sistema se pueden clasificar de la siguiente manera:

 

Proceso Libre: Es el que se lleva a cabo sin solicitar el apoyo o colaboración de otros procesos. Un claro ejemplo de procesos independientes son los diferentes shells que se ejecutan simultáneamente en un sistema.

 

Los procesos son cooperativos: fueron creados para trabajar juntos en una actividad que requiere que puedan comunicarse e interactuar entre sí.

 

Los dos tipos de procesos (independientes y cooperativos) pueden tener una secuencia de relaciones entre ellos y pueden ser de 2 tipos:

 

Interrelaciones motivadas a medida que los procesos comparten o compiten por la entrada de recursos físicos o lógicos.

 

Relación motivada a medida que los procesos se comunican y sincronizan entre sí para lograr un objetivo común

 

 

La concurrencia puede presentarse en tres contextos diferentes:

 

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. Existen tres modelos de computadora en los que se pueden ejecutar procesos concurrentes:

 

Multiprogramación con un único procesador. El sistema operativo se encarga de ir repartiendo el tiempo del procesador entre los distintos procesos, intercalando la ejecución de los mismos para dar así una apariencia de ejecución simultánea.

 

Multiprocesador. Es una maquina formada por un conjunto de procesadores que comparten memoria principal. En este tipo de arquitecturas, los procesos concurrentes no sólo pueden intercalar su ejecución sino también superponerla.

 

Multicomputadora. Es una máquina de memoria distribuida, que está formada por una serie de computadoras. En este tipo de arquitecturas también es posible la ejecución simultánea de los procesos sobre los diferentes procesadores.



0 comentarios:

Publicar un comentario