Comprensión renice

Estoy tratando de dar a una aplicación vinculada a la CPU la prioridad de programación más baja conrenice 19 (Linux 3.11). Sin embargo, no parece funcionar como se esperaba o tengo un problema de comprensión.

Permítanme describir dos formas en que lo he intentado. Esperaba que de ambas maneras obtendría los mismos resultados, pero no lo hago. Considera la aplicaciónloop ser un circuito ocupado:int main() { for(;;) ; return 0; }.

Experimento 1abrió una terminalcorrió./loop & tantas veces como CPU (por ejemplo, tengo 4 CPU).corrió otra instancia deloop y lo reniced a 19

El resultado fue el esperado. Los no renicadosloop las instancias tienen casi el 100% de CPU cada una, y la instancia reniced tiene aproximadamente el 1%.

Experimento 2abrió dos terminalesTerminal 1: corrió./loop & tantas veces como las CPU.Terminal 2: ejecutó otra instancia deloop y renice a 19

El resultado no fue el esperado. losloop la instancia iniciada en la Terminal 2 tenía 100% (aunque con amabilidad 19), mientras que laloop Las instancias en la Terminal 1 compartieron el resto de los recursos.

Pregunta

¿Por qué el experimento 2 no se comporta como el experimento 1?

Respuestas a la pregunta(1)

Su respuesta a la pregunta