Escolar Documentos
Profissional Documentos
Cultura Documentos
No CFS, cada processo é associado a um valor de peso que determina sua prioridade.
O peso é usado para calcular a fatia de tempo que cada processo receberá para executar na
CPU. Quanto maior o peso, maior será a fatia de tempo que o processo receberá. O peso
padrão para cada processo é 1024, mas pode ser ajustado pelo usuário para controlar a
prioridade do processo.
O CFS também usa uma árvore vermelha-preta para manter uma lista ordenada de
processos. Os processos com maior prioridade (ou peso) são colocados na raiz da árvore e
recebem a maior fatia de tempo na CPU. À medida que o tempo de execução de um processo
aumenta, ele é movido para o final da fila, permitindo que outros processos com prioridades
mais altas sejam executados.
O CFS é projetado para ser justo em relação à distribuição do tempo da CPU entre os
processos. Ele usa uma abordagem de feedback constante para ajustar as prioridades dos
processos com base em quanto tempo eles gastam na CPU. Isso garante que os processos que
são limitados pela CPU recebam a maior parte do tempo da CPU disponível, enquanto os
processos que usam menos tempo da CPU recebem menos tempo de CPU no futuro.
Uma das principais características do CFS é que ele garante uma distribuição de tempo
de CPU justa e proporcional aos valores de peso de cada processo, independentemente do
número de processos em execução. Isso significa que, se houver 10 processos em execução no
sistema e um processo tiver um valor de peso duas vezes maior do que os outros, ele receberá
duas vezes mais tempo de CPU do que os outros processos, independentemente do número de
processos em execução.
2
Outra característica importante do CFS é que ele é capaz de lidar com processos de
tamanhos variados de maneira eficiente. Isso ocorre porque o CFS divide o tempo de CPU
disponível em fatias pequenas e distribui essas fatias de acordo com o valor de peso de cada
processo. Isso garante que os processos menores não sejam bloqueados por processos maiores
que precisam de mais tempo de CPU.
O peso padrão de cada processo é de 1024, mas ele pode ser ajustado pelo usuário
usando o comando nice ou renice. O nice é um utilitário de linha de comando que permite que
os usuários ajustem a prioridade dos processos. Um valor de nice menor indica uma
prioridade mais alta, enquanto um valor de nice maior indica uma prioridade mais baixa.
O CFS também é capaz de lidar com processos de alta prioridade, como processos de
tempo real, usando uma técnica chamada "sched-nice". Isso permite que os processos de
tempo real sejam executados com prioridade máxima, independentemente de seus valores de
peso, garantindo que eles recebam a maior quantidade possível de tempo de CPU.
Além disso, o CFS usa uma técnica chamada de "aging" para garantir que os processos
que não usam a CPU por um longo período de tempo não monopolizem a CPU no futuro.
Essa técnica envolve aumentar o valor de peso de um processo se ele passar um longo período
de tempo sem usar a CPU, o que garante que o processo não monopolize a CPU no futuro.