por que o usuário pode aumentar o processo, mas a redução requer raiz?

3

Eu puxei para cima e um programa estava usando ~ 80-90% da CPU. Eu aumentei a gentileza, para ver se conseguia reduzir a carga. Então tentei reduzir o nível do mesmo processo de volta ao nível inicial e recebi a informação de que eu não tinha privilégios adequados. Existe uma boa razão para a disparidade de privilégios exigida aqui?

    
por blanket_cat 13.08.2014 / 12:20

1 resposta

3

Sim. Quando todos os usuários do sistema têm a possibilidade de diminuir a gentileza de seu processo, cada usuário pode fazer com que outros processos morram de fome.

As prioridades de processo no kernel do Linux significam algo. Se você der a um processo o bom valor de -20 , ele obterá grandes quantidades de tempo de CPU. É por isso que apenas root pode diminuir esses valores.

Adição sugerida por Eliah Kagan :

  

Por que os usuários não podem ter seus próprios processos de volta ao nível de amabilidade   eles mesmos começaram com eles?

O ponto é, o sistema não nota quem fez o aumento da gentileza. Portanto, não há mecanismo para descobrir se você ou root fizeram o incidente.

Outra abordagem é dizer: um usuário normal não deve ser capaz de sobrescrever as ações de um usuário privilegiado. Se root estiver logado e ele quiser alterar a gentileza de seus processos para 20 : ele pode, e você deve ser proibido para desfazer essas alterações. Até que o kernel não se lembre de quem fez as mudanças de gentileza, você será proibido.

Talvez algum dia os desenvolvedores do kernel linux incluam essa funcionalidade no código do kernel. Você pode fazer uma solicitação de recurso. Mas, lembre-se, os desenvolvedores do kernel não gostam de coisas novas só porque é legal .

    
por chaos 13.08.2014 / 12:45