Linux sem FronteirasLinux sem FronteirasLinux sem FronteirasLinux sem Fronteiras
  • Certificações Linux
    • LPIC-1 – Administrador Linux
    • Comptia Linux+
    • Simulado LPI 1 (101-500 e 102-500)
  • Cursos
    • Curso Preparatório para Certificação Linux LPIC-1
    • Curso Preparatório para Certificação LPIC-2
    • Curso Preparatório para Certificação LPIC-3: Virtualização e Conteinerização
    • Programação Shell Script
  • Contato
  • Entrar

Gerenciamento de Processos no Linux

    Home Comandos Gerenciamento de Processos no Linux
    NextPrevious

    Gerenciamento de Processos no Linux

    By Ricardo Prudenciato | Comandos | 0 comment | 9 dezembro, 2019 | 12

    Nesse artigo, vamos entender melhor como o kernel do Linux realiza internamente o gerenciamento e o escalonamento de processos, e como o administrador pode interferir nessa dinâmica através dos comandos “nice” e “renice”.

    Escalonamento de Processos

    Para começarmos, é importante entender alguns conceitos sobre o que é e como o kernel do Linux realiza o escalonamento de processos.

    • Cada processador (core) só consegue executar uma tarefa por vez;
    • Time sharing: Como cada processador só executa uma tarefa por vez, o que o kernel faz é rotacionar os processos entre as CPUs disponiveis, determinando que cada processo utilize a CPU por algum tempo;
    • Esse rotacionamento, ou escalonamento, é feito automaticamente pelo kernel, que se baseia nos tipos de processos em execução.

    Tipos de Processos

    De maneira geral, podemos classificar os processos nos seguintes tipos:

    • Convencional: Processos normais do sistema.
      • O kernel dá a esses processos os valores de prioridades de 100 a 139, sendo 120 o padrão. Sendo 100 significa maior prioridade, ou seja, terá mais tempo de uso da CPU, maior time sharing. Nesse caso 139 é a menor prioridade, menor tempo.
    • Tempo Real: Processos que precisam ser executados imediatamente, não obedecendo o escalonamento de processos.
      • Normalmente são processos internos do kernel.
      • Esses processos recebem as prioridades de 1 a 99, e é comum que seja representado pelo código “rt”, de real-time.

    Priority (PRI) x Nice (NI)

    Um ponto que precisa ficar claro antes de seguirmos é a diferença entre PRIORIDADE (priority) e NICE.

    A prioridade de um processo é definida automaticamente e dinâmicamente pelo kernel Linux, assumindo os valores que citei acima.

    O NICE é um atributo que permite ao administrador ou usuário influenciar a prioridade do processo. Quando usamos os comandos nice e renice para definir esse atributo, estamos definindo um NICE que irá consequentemente impactar a prioridade. Por padrão, o NICE de um processo é 0.

    Vamos aos comandos

    Agora vejamos essas informações mais na prática:

    Podemos verificar os valores de prioridade e nice de algumas maneiras.

    A mais simples é pelo comando top:

    comando top linux

    Observe que a coluna “PR” refere-se à prioridade. e “NI” ao nice.

    Mas por que “20”? Lembra que disse que o padrão é 120? O que o top faz é simplesmente reduzir o número, e por isso mostra 20 ao invés de 120, 9 ao invés de 109, e assim por diante.

    Veja também o penúltimo processo como “rt”, esse é um processo interno do tipo “real-time”.

    A prioridade e o nice também podem ser vistos pelo comando ps, em uma sintaxe mais elaborada como a seguinte:

    linux ps priority nice

    Indo ainda mais a fundo, você pode verificar a prioridade de um processos através do seguinte arquivo:

    # cat /proc/<PID>/sched

    Nesse arquivo procure pela informação “prio”.

    Definindo o NICE, Impactando a Prioridade

    Como vimos, podemos impactar a prioridade de um processo ao definir o valor do NICE.

    O valor do NICE pode variar de -20 a 19, aonde -20 aumenta a prioridade do processo ao máximo possível, e 19 diminui.

    Lembre-se que o NICE vai impactar o valor do PRIORITY, e quanto menor esse valor, maior prioridade o processo tem, ou seja, mais tempo de uso de CPU.

    Para definir o nice usamos os comandos “nice” e “renice”.

    O “nice” inicia um processo com determinado valor, por exemplo:

    comando nice linux

    Resultado do top:

    Veja que 131 é 120+11.

    Além disso, o comando “renice” é usado para alterar o NICE de um processo já em execução:

    comando renice linux

    Note que apenas o usuário administrador pode reduzir o valor, ou seja, aumentar a prioridade de um processo.

    PS: Não se confunda com o texto “old priority/new priority”, na verdade você está alterando o NICE.

    Concluindo

    Espero que o artigo tenha sido útil, a idéia aqui foi explicar um pouco além do que normalmente se aborda com relação ao gerenciamento de processos, principalmente deixar claro o que é de fato o NICE e o que é o PRIORITY.

    Também fiz no meu canal um vídeo explicando esse assunto, talvez o ajude a entender melhor:


    Cadastre-se em nossa lista e mantenha-se atualizado sobre as principais novidades em Linux e Open Source.


    Linux, nice, processos, renice

    Ricardo Prudenciato

    More posts by Ricardo Prudenciato

    Related Posts

    • Instalação Zabbix Server v 3.4.1 – Debian 8 Jessie

      By Pedro Henrique | 0 comment

      Tutorial de instalação do Zabbix no Debian 8, versão atual da solução é a 3.4.1   1- Adicionando repositórios # echo “deb http://ftp.de.debian.org/debian jessie main non-free” >> /etc/apt/sources.list # echo “deb-src http://ftp.de.debian.org/debian jessie main non-free”Read more

    • Entendendo o Comando Free no Linux

      By Ricardo Prudenciato | 2 comments

      O comando free do Linux é muito útil para se observar e monitorar o uso da memória do sistema, mas ao mesmo tempo ele gera muitas dúvidas pois usa conceitos que são desconhecidos pela maioriaRead more

    • FreeRadius v3 com integração MySQL e Mikrotik no Debian 9 Stretch

      By Pedro Henrique | 26 comments

      Neste artigo vamos aprender como configurar o FreeRadius 3.x em em um servidor Debian. Neste servidor teremos integração de usuários de uma base de dados MySQL que serão autenticados por um hotspot, que por suaRead more

    • Usando a instrução for do bash no dia a dia

      By Ricardo Prudenciato | 0 comment

      Neste breve post vamos falar de uma instrução do shell que é muito útil, mas que é muito pouco utilizada pela maioria dos profissionais Linux no dia dia, a instrução for. A maioria dos profissionaisRead more

    Leave a Comment

    Cancelar resposta

    O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

    NextPrevious

    Curso Linux LPIC-1

    Curso Linux LPIC-1

    Parceiro Oficial

    Posts recentes

    • O LPI Comemora os Seus 25 Anos!
    • Novos Preços para os Exames da LPI em 2023
    • Gerenciamento de Processos no Linux
    • Lançada a Versão 5.0 dos Exames da LPIC-1
    • O Fim da Parceria entre a CompTIA e a LPI

    Parceiro Oficial

    parceiro oficial lpi
    • Certificações Linux
      • LPIC-1 – Administrador Linux
      • Comptia Linux+
      • Simulado LPI 1 (101-500 e 102-500)
    • Cursos
      • Curso Preparatório para Certificação Linux LPIC-1
      • Curso Preparatório para Certificação LPIC-2
      • Curso Preparatório para Certificação LPIC-3: Virtualização e Conteinerização
      • Programação Shell Script
    • Contato
    • Entrar
    • Certificações Linux
      • LPIC-1 – Administrador Linux
      • Comptia Linux+
      • Simulado LPI 1 (101-500 e 102-500)
    • Cursos
      • Curso Preparatório para Certificação Linux LPIC-1
      • Curso Preparatório para Certificação LPIC-2
      • Curso Preparatório para Certificação LPIC-3: Virtualização e Conteinerização
      • Programação Shell Script
    • Contato
    • Entrar
    Linux sem Fronteiras