Introdução

Introdução

A capacidade do usuário de atribuir um valor prioritário ao seu próprio processo após a execução determina se você está sendo gentil com seus colegas usuários no mesmo sistema. Você está sendo legal ou simplesmente abusa de recursos do sistema sem motivo aparente? Neste artigo, você aprenderá como gerenciar seus processos em termos de quanto poder de processamento eles consomem e como alterar um valor prioritário de seus processos usando legal & Renice Comando Linux. Começaremos com alguma teoria básica sobre o que é processo, agendamento de processos, como forçar o novo processo e depois passarmos para legal comandando e explique como alterar o valor de prioridade do processo.

O que é processo

Em palavras simples, um processo é uma convenção de nomenclatura usada pelo Linux para assumir o papel de um programa de corrida. Um processo é uma coleção de regras pelas quais qualquer programa em particular utiliza o tempo de processador atribuído, a memória e os recursos de E/S. Cada processo em execução em um sistema Linux tem seu próprio ID de processo (PID) pelo qual pode ser monitorado e administrado.

O Linux Kernel foi projetado para coletar várias informações sobre cada processo. Isso inclui, mas não limitado a:

  • Status do processo (Runnable, Sleeping, Zombie ou parado)
  • Prioridade de execução do processo (gentileza)
  • informações sobre recursos usados
  • proprietário do processo
  • Quais portas e arquivos de rede tiveram cada processo em particular aberto
  • e mais…

Agora que temos uma ideia sobre qual é o processo, podemos seguir em frente e criar algum processo. Para fazer isso, simplesmente abra seu terminal e execute o comando sim em segundo plano e redirecionando sua saída para /dev /null:

$ sim> /dev /null & [1] 5997 

Depois disso, use o comando ps -l, não podemos extrair as informações sobre o nosso processo sim:

$ ps -l f 0 00:00:09 Sim 0 R 1000 5998 5830 0 80 0 - 2399 - PTS/0 00:00:00 PS 

Do exposto, podemos ler para as seguintes informações:

  • F - Bandeira: o processo não começou com privilégios de superusuário. Caso contrário, veríamos o número 4 ou a soma de 1 e 4. Verificar Homem ps para mais informações.
  • S - Estado: o processo está em execução atualmente
  • Uid - ID do usuário do usuário que iniciou o processo. Uid é um alias real para euid (ID de usuário eficaz)
  • PID - ID do processo do nosso sim O comando é 5997
  • PPID - ID do processo pai. Este é um ID do processo do qual nosso comando sim foi bifurcado. Nesse caso, é festa com PID 5830.
  • C - Valor inteiro da utilização do processador em % .
  • PRI - Prioridade do processo. O valor mais alto da prioridade mais baixa.
  • Ni - Bom valor com intervalo de -20 a 19. Quanto maior o valor, mais bom você será para outros usuários, em outras palavras, o valor mais alto da prioridade mais baixa.

Programação de processos

Esta seção pode ser ignorada se você não quiser entrar em mais detalhes sobre a prioridade do processo e o agendamento. Aqui tentaremos descrever o processo Linux com um resumo rudimentar fácil de entender, pois esse tópico pode abranger várias páginas e essa seria a única introdução.

Do nosso ponto de vista, precisamos entender que o Linux (versão do kernel Linux> = 2.6) O agendador é preventivo. Essa é uma habilidade que permite que o kernel opte preventivamente para executar uma tarefa de prioridade mais alta sobre aqueles com uma prioridade mais baixa. Além disso, o kernel separa listas de prioridades para tarefas em tempo real e tarefas de usuário que se contribuem de 1 - 100 e 101 - 140, respectivamente.

Além disso, o kernel do Linux atribui a tarefas de prioridade mais alta, tempo quântico e tarefas de prioridade mais baixa, mais curto tempo quântico, isso é de aproximadamente 200 ms e 10 ms, respectivamente. Em outras palavras, todas as tarefas poderão executar apenas se tiver algum tempo restante. Portanto, mais curto tempo fatia para executar faz com que o processo permaneça mais curto em runqueue ativo e, portanto, consome menos recursos. Uma vez que a fatia do tempo do processo está vazia, o processo é movido para Runqueue expirado onde sua prioridade é recalculada e depois movida novamente para runqueue ativo. Este relacionamento é ilustrado no diagrama à sua direita. É importante mencionar que, tanto onde os runquees ativos e expirados contêm listas de tarefas classificadas por sua prioridade.

Ciclo de vida do processo

O princípio básico do gerenciamento de processos Linux contém duas operações distintas ao criar um novo processo. A operação é onde o processo se copia garfo() Ligue e, portanto, cria um novo processo com PID exclusivo. A operação do garfo é mais comumente seguida por exec () Operação que executa um novo programa. O primeiro processo criado durante o tempo de inicialização é iniciar que é sempre atribuído PID 1. Todos os outros processos são considerados processos infantis do processo init. Sob circunstâncias normais antes que o processo das crianças permita morrer, esse evento precisa ser reconhecido por um processo pai, enviando valor de saída. Terminação bem -sucedida Envie um valor do processo pai 0. Se, por algum motivo iniciar aceitará esse processo como processo órfão.

Usando um bom comando

Como o poder de processamento foi e ainda está crescendo exponencialmente ao longo dos anos, a importância do comando agradável está diminuindo no mesmo ritmo. Portanto, como resultado, é muito hoje que você será forçado a mudar de prioridade do processo manualmente. No entanto, essa habilidade está lá e ainda pode ser útil em algumas situações. Por padrão, o nice definirá um bom nível para 10.

$ bom sim> /dev /null & [1] 5199 $ ps -l F S UID PID PPID C PRI NI Addr SZ WCHAN TEMPO TEMPO CMD 0 S 1000 3383 3380 0 80 0 - 6445 Espere PTS/0 00:00:00 Bash 0 R 1000 5199 3383 99 90 10 - 1757 - pts/0 00:00 5199 3383 90 10 - 1757 - pts/0 00:00 5199 : 07 Sim 0 R 1000 5200 3383 0 80 0 - 2399 - PTS/0 00:00:00 PS 

Para iniciar o processo com outro valor bom que 10, podemos usar -n switch.

$ bom -n 15 sim> /dev /null & Ou $ bom -15 sim> /dev /null & [1] 5270 $ ps -l F S UID PID PPID C PRI NI ADDR SZ WCHAN TEMPO TEMPO CMD 0 S 1000 3383 3380 0 80 0 - 6447 Aguar : 02 Sim 0 R 1000 5271 3383 0 80 0 - 2399 - PTS/0 00:00:00 PS 

Para definir um bom valor abaixo de 0 permissões de raiz são necessárias. Nice ainda começará o programa, no entanto, o valor bom será definido como 0. Aqui, tentamos definir um bom valor para -1 sem permissões de raiz:

$ bom -n -1 sim> /dev /null & [1] 5285 Nice: não pode definir a gentileza: permissão negada $ ps -l F S UID PID PPID C PRI NI ADDR SZ WCHAN TEMPO TEMPO CMD 0 S 1000 3383 3380 0 80 0 - 6447 Aguar : 07 Sim 0 R 1000 5295 3383 0 80 0 - 2399 - PTS/0 00:00:00 PS 

Portanto, para definir um bom valor para menor que 0, precisamos executar o programa acima como root ou usando sudo.

# bom -n -1 sim> /dev /null & [1] 5537 # ps -l F S UID PID PPID C PRI NI Addr SZ WCHAN TEMPO TEMPO CMD 4 S 0 5428 3383 0 80 0 - 14430 Aguar : 00 BASH 4 R 0 5537 5436 87 79 -1 - 1757 - PTS/0 00:00:04 Sim 4 R 0 5538 5436 0 80 0 - 2399 - PTS/0 00:00:00 PS 

Usando o comando Renice

Na seção anterior, aprendemos a iniciar um programa com um bom valor predefinido usando um bom comando. Aqui, tentamos alterar o bom valor de um programa em execução usando o comando Renice. Aqui, temos um programa em execução sim com um bom valor de 10:

$ ps -l F S UID PID PPID C PRI NI Addr SZ WCHAN TEMPO TEMPO CMD 0 S 1000 3383 3380 0 80 0 - 6447 Aguarde PTS/0 00:00:00 BASH 0 R 1000 5645 3383 99 90 10 - 1757 - pts/0 00:00 5645 3383 99 10 - 1757 - pts/0 00:00 5645 : 04 Sim 0 R 1000 5646 3383 0 80 0 - 2399 - PTS/0 00:00:00 PS 

Para alterar seu valor, podemos usar o comando renice e fornecer pid e bom valor. Vamos mudar de bom valor para 15:

$ Renice -N 15 -P 5645 5645 (ID do processo) Antiga prioridade 10, nova prioridade 15 $ ps -l F S UID PID PPID C PRI NI Addr SZ WCHAN TEMPO TEMPO CMD 0 S 1000 3383 3380 0 80 0 - 6447 Espere PTS/0 00:00:00 BASH 0 R 1000 5645 3383 99 95 15 - 1757 - pts/0 00:00 5645 3383 99 15 - 1757 - pts/0 00:00 5645 3383 95 15 - 1757 - pts/0 00:00 5645 : 31 Sim 0 R 1000 5656 3383 0 80 0 - 2399 - PTS/0 00:00:00 PS 

A regra a seguir é que o usuário não super pode aumentar o valor do bom (dê menos prioridade) a qualquer processo. Se agora tentaria mudar para um bom valor de 15 a 10, ele seguisse o erro apareceria:

$ Renice -N 10 -P 5645 Renice: Falha ao definir prioridade para 5645 (ID do processo): permissão negada 

O comando Renice também oferece a um usuário root a capacidade de alterar um bom valor de processos de qualquer usuário. Isso é feito por -u switch. O comando Linux a seguir mudará uma prioridade de todos os processos do usuário para -19.

# Renice -N -19 -u Lubos 1000 (ID do usuário) Antiga prioridade 0, nova prioridade -19 

Conclusão

Bom comando pode ser uma ferramenta útil e certamente é fácil de usar. Observe que você também pode usar o comando de topo para renegar os valores do processo.

Tutoriais do Linux relacionados:

  • Coisas para instalar no Ubuntu 20.04
  • Coisas para fazer depois de instalar o Ubuntu 20.04 fossa focal linux
  • Uma introdução à automação, ferramentas e técnicas do Linux
  • Coisas para fazer depois de instalar o Ubuntu 22.04 Jellyfish…
  • Loops aninhados em scripts de basquete
  • Coisas para instalar no Ubuntu 22.04
  • Instale Arch Linux na estação de trabalho VMware
  • Ubuntu 20.04 Guia
  • Como fazer bota dupla kali linux e windows 10
  • Mint 20: Melhor que o Ubuntu e o Microsoft Windows?