Devo definir um bom valor mais baixo para um processo do usuário para torná-lo mais rápido?

4

Eu aprendi recentemente sobre o bom valor de um processo. Se eu estiver executando um programa de usuário, devo definir o valor legal o mais baixo possível e isso tornaria o processo mais rápido?

    
por Nagri 11.02.2018 / 07:41

2 respostas

4

Resposta curta

Você não pode (como usuário normal), porque é uma má ideia.

Resposta longa

Na maioria das vezes, não fará diferença (se for o único processo em execução ou se o número total de encadeamentos em execução for menor que o número de núcleos de cpu).

Quando isso faz diferença, o processo não será bom. Ele vai roubar seu processador. O computador começará a ficar sem resposta.

Resposta mais longa:

A única ocasião em que faz sentido reduzir o nicenese é para processos em tempo real. Isso é para processos que precisam fazer as coisas dentro de um prazo. Esses processos precisam ser escritos para serem legais (não nice ). Isso é fazer o trabalho e depois desistir do processador. Você provavelmente não quer estar brincando com isso. Provavelmente não é necessário, pois processos que se comportam bem têm sua prioridade dinâmica aumentada, de qualquer forma. (note que também há prioridades em tempo real (ver planejador em tempo real), que são ainda mais extremas. Você provavelmente não quer tocá-las nunca. Especialmente em um sistema de produção. Isso é algo que está fazendo algo importante.) / p>     

por 11.02.2018 / 10:27
5

Os programas iniciados geralmente têm um valor legal de zero, ou seja, não são maiores ou menores do que os valores agradáveis da maioria dos outros processos em execução no sistema. O valor legal modifica a prioridade de agendamento de um processo.

Usuários desprivilegiados podem somente especificar valores agradáveis que diminuem a prioridade de agendamento de seus próprios processos (ou seja, torna-os "mais agradáveis").

Um processo com uma prioridade maior de agendamento não será necessariamente executado mais rápido do que com uma prioridade de agendamento mais baixa, mas à medida que a fila de execução do kernel se tornar mais longa (quando muitos processos simultâneos estiverem contestando o tempo de CPU) um sistema ocupado) e a carga (que é uma medida do comprimento da fila de execução ) aumenta, teria maior chance, em comparação com outros processos na fila, de obter agendada para execução. Teria a possibilidade de executar mais frequentemente .

Em um sistema ocioso , executar um processo com alto valor não seria diferente de executá-lo com um valor baixo. Ele obteria 100%, ou quase 100%, da CPU, independentemente disso. Não iria correr mais rápido ou mais devagar.

Para um usuário não privilegiado, os utilitários nice e renice são utilitários para reduzir a prioridade de agendamento de seus processos, para ser bom para os outros.

O usuário root pode aumentar a prioridade de agendamento para um processo em execução ou iniciar processos com um valor elevado.

No meu sistema (OpenBSD), o único processo que está sendo executado com uma prioridade de agendamento elevada é ntpd (o daemon de manutenção de tempo) e sndiod (o servidor de áudio / MIDI no OpenBSD), ou seja, processos que precisam ser capaz de rodar em "tempo real" ou próximo a ele, sem ter que esperar que outros processos façam seu trabalho.

    
por 11.02.2018 / 08:03