Estou aprendendo a trabalhar com o kernel do Linux. Atualmente estou usando o 4.15.0-36-genérico.
Eu entendi que os agendadores após a versão 2.6 usam um agendador completamente justo. Eu também vim a saber que, a implementação usa tempo de execução virtual (v_runtime) para atualização de prioridade de um processo.
Teoricamente, após o processo ter um tempo de execução virtual de t, a atualização é feita como
v_runtime += t * (w).
Diz-se que este peso w é uma função do valor NICE do processo. É aqui que quero adicionar mais um parâmetro. Eu quero que este w seja uma função do valor NICE, e outro parâmetro para um dado processo. O restante do algoritmo de agendamento pode permanecer o mesmo para o momento.
Eu clonei o código Linux e verifiquei o código e a documentação do agendador. Eu não consegui localizar o ponto onde eu poderia fazer a mudança.
Eu tenho meu próprio modelo para fornecer esses parâmetros a um programa. Você pode pensar nisso como um valor baseado em reputação.
Tags linux linux-kernel scheduling