A prioridade do processo tem classes definidas ..?

2

Estou procurando um documento ou relacionado aos níveis de prioridade de processos.

No Linux, a documentação relacionada não fala sobre níveis de prioridade ou classes de prioridade. Ele fornece apenas o intervalo de valores nice .

O usuário pode definir qualquer valor dentro desse intervalo. O kernel fornece limites mínimo e máximo para prioridade.

Atualmente, o "Monitor do Sistema GNOME" mostra nomes de prioridade de processo, como "Muito alto, Alto, Normal, Baixo, Muito baixo", e cada um possui um intervalo de valores muito bom.

Não encontrei nenhuma documentação relacionada a esses nomes como tal.

Em 2004, um bug foi criado no “GNOME.org” contra o “GNOME System Monitor” Bug 131802.

O bug descreve que o "GNOME System Monitor" não deve fazer referências a "nice". nice tem uma semântica confusa, principalmente devido aos valores mais baixos serem mais prioritários.

Em 2011, A O patch adiciona uma coluna de prioridade na tabela de processos para mostrar o valor interessante de uma maneira compreensível para o ser humano e mostrá-lo por padrão.

Eu indiquei o link

E referd função "get_nice_level ()" no código-fonte para "gnome-system-monitor".

Abaixo está o modelo de função do mesmo arquivo.

static gchar *
get_nice_level (gint nice)
{
        if (nice < -7)
                return _("(Very High Priority)");
        else if (nice < -2)
                return _("(High Priority)");
        else if (nice < 3)
                return _("(Normal Priority)");
        else if (nice < 7)
                return _("(Low Priority)");
        else
                return _("(Very Low Priority)");
}

Estas são as minhas perguntas:

  1. Os valores definidos por / para o GNOME System Monitor são específicos dessa ferramenta?

  2. O Gnome System Monitor está realmente colocando um processo nessa prioridade? O Kernel também trata esse processo nessa prioridade que é alterada no Gnome System Monitor?

  3. Existe algum lugar onde eu possa achar que essas são as classes de prioridade recém-definidas para diferentes níveis de prioridade? Essas classes são usadas em todas as Distribuições?

Obrigado. Shri Hari.

    
por user165239 07.06.2013 / 14:12

1 resposta

2

Cada processo influencia o agendamento do kernel por seu bom valor. Esses valores são de um intervalo de prioridade -20 (alta prioridade) a +19 (baixa), com 0 sendo (padrão), portanto, em relação ao modelo da função e sua primeira pergunta, a resposta é não, eles não são específicos da ferramenta.

O Linux usa as mesmas prioridades para cada processo. No entanto, se você chamar getpriority() system call, obterá valores diferentes (de 1 a 40), isso é feito de propósito para evitar o retorno de valores negativos.

Existe um livro muito bom a que você pode se referir: "The Linux Programming Interface" de Michael Kerrisk, publicado em 2010.

Referências: Design agradável do agendador do Kernel

    
por Stef K 07.06.2013 / 14:52