Grupo de procesos de Linux, grupo de subprocesos

Grupo de procesos de Linux, grupo de subprocesos

Un proceso hijo se crea a través de la asignación de memoria dinámica del proceso.Aunque esta forma de crear un proceso hijo puede obtener recursos, tiene muchas desventajas.

1. La creación dinámica de un proceso requiere mucho tiempo, lo que resultará en una respuesta más lenta del cliente. 
2. El proceso secundario creado dinámicamente (o subproceso secundario) generalmente solo se usa para atender a un cliente. Esto dará como resultado una gran cantidad de procesos (subprocesos) en el sistema, lo que consumirá una gran cantidad de recursos de la CPU al cambiar entre procesos (subprocesos). 
3. El proceso secundario creado dinámicamente (subproceso) es un mapeo completo del proceso principal (subproceso). El proceso actual (subproceso) debe administrar cuidadosamente los recursos del sistema, como los descriptores de archivos y la memoria en montón asignada por él, de modo que los recursos disponibles del sistema disminuyan drásticamente, lo que afectará el rendimiento del servidor. 
4. Debido a los recursos limitados del sistema, habrá una cantidad limitada de procesos creados dinámicamente (hilos), lo que aumentará la cantidad de respuestas a las solicitudes de los clientes.

Para resolver eficazmente las solicitudes de los clientes bajo un gran número de conexiones, es necesario adoptar un método para evitar las deficiencias provocadas por la creación dinámica. El grupo de procesos (subprocesos) se divide por adelantado en un área de recursos del sistema, que se ha creado e inicializado cuando se inicia el sistema. Los usuarios pueden obtener recursos directamente, evitando así la asignación dinámica de recursos.

El concepto de grupo de subprocesos del grupo de procesos

El grupo de procesos es muy similar al grupo de subprocesos, por lo que solo se introduce el grupo de procesos.

1. El grupo de procesos es un grupo de procesos creados previamente por el servidor. El número de estos subprocesos está entre 3 y 10. El proceso del demonio http utiliza un grupo de procesos que contiene 7 subprocesos para lograr la concurrencia. El número de subprocesos en el grupo de subprocesos es aproximadamente el mismo que el número de CPU. 
2. Todos los procesos secundarios del grupo de procesos ejecutan el mismo código y tienen los mismos atributos, como prioridad, PGID, etc. Debido a que el grupo de procesos se crea al comienzo del inicio del servidor, no es necesario abrir descriptores de archivos innecesarios (heredados del proceso principal), ni usar una gran cantidad de memoria por error (copiando el proceso principal) 
. Comparado con la creación dinámica de subprocesos, el costo de seleccionar un subproceso existente es obviamente mucho menor.

Algoritmo de selección de subprocesos

1. El proceso principal selecciona activamente el proceso secundario a través de un algoritmo determinado. El algoritmo más simple y más comúnmente utilizado es el algoritmo de turno rotativo. 
2. El proceso principal y todos los procesos secundarios están en la misma cola compartida, y todos están en estado de suspensión al principio. Cuando llega una nueva tarea, el proceso principal agregará la tarea a la cola de mensajes. Se utilizará un algoritmo para activar uno de los procesos secundarios, y este proceso secundario eliminará y ejecutará la tarea, mientras que los otros procesos aún están en estado de suspensión. 
3. Cuando se selecciona un subproceso, el proceso principal también necesita decirle al subproceso los datos necesarios para realizar la tarea, y pasar estos datos creará una tubería entre el subproceso y el proceso principal. Todos estos datos se pueden definir como variables globales, y estos datos serán compartidos por todos los subprocesos.

Supongo que te gusta

Origin blog.csdn.net/prokgtfy9n18/article/details/76801939
Recomendado
Clasificación