Pregunta

Tengo una pregunta con respecto a la implementación pthread en Linux.

Supongamos que un proceso tiene 5 hilos. Ahora, ¿cómo ve el programador de estos hilos (o duerma ver en absoluto). p.ej. Cuando se invoca programador, no sólo programar el proceso principal, y entonces su la responsabilidad del proceso principal para horario entre cada uno de su hilo.

O es a la inversa, que los horarios planificador cada hilo, como si se trata de un proceso separado.

¿Fue útil?

Solución

Para Linux moderna (NTPL aplicación pthread), los hilos programador programa, un hilo se considera un "proceso ligero". pthread_create se implementa en términos de la clone llamada al sistema.

Otros consejos

horarios Linux cada hilo como si es un proceso con alcance como PTHREAD_SCOPE_SYSTEM. La aplicación nptl puede utilizar varias CPU.

Como Logan dijo, cada hilo está programado de forma independiente.

Sin embargo, si lo desea, puede utilizar grupos de control de procesos de Linux a grupos de programaciones de hilos en su lugar.

grupos de control de procesos hacen que la programación de un poco más ineficaz, pero puede ser mucho más justo.

Uno de los usos que se ha vuelto muy popular es poner todos los procesos y subprocesos creados por cada uno TTY en un grupo de control por TTY. Este resultado en todas las aplicaciones gráficas de un usuario que se programan en el mismo nivel que el 24 hilo de compilación del núcleo que se puso en marcha en una ventana de terminal. Las aplicaciones gráficas tienen un 50% y la compilación se lleva el 50%. Si se abre otra ventana de terminal y comienza a compilar glibc con otras 24 hilos, que se desplaza a las aplicaciones de escritorio 33%, el 33% de compilación del kernel y el 33% de glibc de compilación.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top