Red de conocimiento informático - Material del sitio web - Modelo multiproceso

Modelo multiproceso

Hay dos tipos de soporte de subprocesos, uno es el subproceso del usuario y el otro es el subproceso del kernel

Existe una cierta relación entre el subproceso del usuario y el subproceso del kernel. -Un modelo y un modelo uno a uno, muchos a muchos.

Modelo de muchos a uno:

El modelo de muchos a uno consiste en múltiples subprocesos a nivel de usuario en un subproceso del kernel.

Ventajas: la gestión de subprocesos la realiza la biblioteca de subprocesos del espacio de usuario, por lo que es más eficiente.

Desventajas:

Si un proceso ejecuta una llamada al sistema de bloqueo, todo el proceso será bloqueado

Solo un hilo puede acceder al kernel en cualquier momento, por lo que Varios subprocesos no se pueden ejecutar en paralelo en sistemas centrales de procesamiento múltiple.

Modelo uno a uno:

Asigna cada hilo de usuario a un hilo del kernel. Ventajas de este modelo:

Cuando un subproceso ejecuta una llamada al sistema de bloqueo, puede permitir que otro subproceso continúe ejecutándose, por lo que proporciona mejores capacidades de concurrencia que el modelo de muchos a uno.

Permite la ejecución de múltiples subprocesos en paralelo en sistemas multiprocesador.

Desventajas:

La sobrecarga de crear subprocesos del kernel afecta el rendimiento de la aplicación, por lo que la mayoría de las implementaciones de este modelo limitan la cantidad de subprocesos admitidos por el sistema.

Las familias de sistemas operativos Linux y Windows han implementado el modelo uno a uno.

Modelo de muchos a muchos:

El modelo de muchos a muchos multiplexa varios subprocesos a nivel de usuario en el mismo número o menos de subprocesos del núcleo.

Ventajas:

Los desarrolladores pueden crear tantos subprocesos de usuario como quieran, y los subprocesos del kernel correspondientes se pueden ejecutar simultáneamente en sistemas multiprocesador.

Cuando un subproceso ejecuta una llamada al sistema de bloqueo, el subproceso se puede programar para su ejecución en otro subproceso