Estou aprendendo sobre o CFS no Linux. Então eu decidi ver como o bom valor pode dar uma prioridade menor para processos em segundo plano (ou seja, bons).
Eu executei dois processos da CPU: taskset 01 python3 loop.py
em dois terminais. Então eu renice -n 19 -p 12954
para um dos processos.
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
12963 garyF 20 0 29620 9248 5256 R 49.8 0.1 2:05.64 python3
12954 garyF 39 19 29620 9420 5428 R 50.2 0.1 2:12.68 python3
Mas, mesmo que os valores bons sejam diferentes, o top diz que os processos estão tendo participação igual (50%) da CPU. Mesmo executando esses processos por cerca de cinco minutos, a coluna TIME + mostra um tempo de CPU similar para cada um. Eu esperaria que a fatia de tempo do processo legal fosse muito menor do que o processo normal e, assim, obter um compartilhamento de CPU mais baixo. Estou faltando alguma coisa?
Este é o meu loop.py
:
#!/bin/python3
from datetime import datetime;
from datetime import timedelta;
import signal;
import sys;
def sigint_handler(signal, frame):
dt = datetime.now() - start_time;
ms = (dt.days * 24 * 60 * 60 + dt.seconds) * 1000 + dt.microseconds/1000.0;
print('You pressed Ctrl+C!');
print('Time elapsed is ', end='')
print(ms, end='');
print('ms.');
sys.exit(0);
pass;
signal.signal(signal.SIGINT, sigint_handler);
start_time = datetime.now();
val = 3;
while True:
val %= 2;
val += 2;
pass;