Sistemas  
 
Rede de conhecimento computador >> Sistemas >> Linux >> Content
Que tal o agendamento do processo para processos de compartilhamento de tempo no Linux?
O agendamento de processos de compartilhamento de tempo do Linux é um sistema complexo e de várias camadas projetado para distribuir de maneira justa e eficiente o tempo da CPU entre vários processos. O núcleo é o agendador do kernel, que emprega vários algoritmos e estruturas de dados para atingir seus objetivos. Aqui está um colapso dos principais aspectos:

1. Entidades de agendamento:

* Processos : A unidade fundamental de agendamento. Cada processo recebe uma fatia do tempo da CPU.
* threads : Mais leve do que os processos, compartilhando o mesmo espaço de memória. Os agendadores modernos tratam os threads de maneira semelhante aos processos, geralmente agendando -os de forma independente dentro de um processo.
* Processos em tempo real (opcional): Esses processos têm requisitos de tempo mais rígidos e podem ter prioridade em relação a outros processos. Eles são gerenciados por um mecanismo de agendamento separado (por exemplo, agendamento em tempo real).


2. Algoritmos de agendamento (histórico e atualmente):

A Linux desenvolveu seus algoritmos de agendamento ao longo do tempo. As primeiras versões usaram algoritmos mais simples, mas os núcleos modernos usam uma abordagem sofisticada:

* Scheduler completamente justo (cfs): Este é o agendador padrão nos kernels Linux modernos (desde 2.6.23). O CFS visa uma justiça completa, dando a cada processo uma parcela proporcional do tempo da CPU com base em seu *peso *. Ele usa uma estrutura de dados de árvore em preto vermelho para gerenciar com eficiência os processos executáveis ​​e selecionar o próximo a ser executado. A idéia principal é ajustar dinamicamente o tempo de execução dos processos para garantir a justiça.

* Outros algoritmos de agendamento (histórico ou nicho): Enquanto o CFS é dominante, outros algoritmos existem ou existem para necessidades específicas (por exemplo, sistemas mais antigos usavam agendadores O (n), menos eficientes que o O (log n) do CFS).

3. Conceitos -chave no CFS:

* Virtual Runtime (Vruntime): O CFS rastreia o tempo de execução virtual de cada processo. Esta é uma medida artificial de quanto tempo de CPU um processo consumiu. É usado para determinar qual processo é mais merecedor da CPU a seguir. Um processo com um Vruntime mais baixo é agendado primeiro.

* pesos: Os processos podem receber pesos atribuídos para influenciar sua parcela do tempo da CPU. Um peso mais alto significa uma parcela maior. Isso permite priorizar processos específicos.

* valores agradáveis: O espaço do usuário pode influenciar as prioridades de agendamento de processos por meio de valores * NICE *. Um valor mais baixo de bom (por exemplo, -20) fornece uma prioridade mais alta do processo, enquanto um valor mais alto (por exemplo, 19) confere mais prioridade. Isso afeta o peso atribuído ao processo.

* Lices de tempo: Embora não seja explicitamente definido como em alguns sistemas mais antigos, o CFS gerencia implicitamente as lícitas de tempo. Os processos são executados até que seu Vruntime indique que eles tiveram uma parte justa. O comprimento de um "tempo de tempo" é, portanto, dinâmico.

* runqueue: Cada núcleo da CPU mantém seu próprio RunQueue, uma estrutura de dados que mantém os processos prontos para executar nesse núcleo.

* Preempção: O CFS usa agendamento preventivo. Um processo de prioridade mais alta pode interromper um processo de prioridade a qualquer momento.


4. Interações com outros componentes do kernel:

O agendador interage em estreita colaboração com outras partes do kernel, incluindo:

* Manuseio de interrupção: As interrupções podem desencadear comutadores de contexto, alterando potencialmente o processo de execução atualmente.
* Gerenciamento de memória: O agendador precisa saber sobre o status de memória dos processos para evitar processos de agendamento que são bloqueados à espera da memória.
* Subsistema de E/O: Quando um processo executa operações de E/S (por exemplo, leitura de um disco), o agendador mudará para outro processo. O agendador também interage com o agendador de E/S para gerenciar a eficiência de E/S do disco.

5. Programação em tempo real:

Para aplicações que requerem tempos de resposta garantidos (por exemplo, sistemas de controle industrial), o Linux fornece opções de agendamento em tempo real. Eles geralmente usam algoritmos diferentes (por exemplo, programação de prazo) que priorizam os processos em tempo real e garantam sua execução oportuna.


Em resumo, a programação de processos de compartilhamento de tempo da Linux é um sistema sofisticado que equilibra dinamicamente a justiça, a eficiência e a capacidade de resposta. O algoritmo CFS, juntamente com suas estruturas de dados e interações de suporte com outros componentes do kernel, fornece uma abordagem robusta e adaptativa para gerenciar vários processos simultaneamente. Compreender as nuances do CFS e outras políticas de agendamento é crucial para otimizar o desempenho e o uso de recursos nos sistemas Linux.

Anterior :

Próximo :
  Os artigos relacionados
·Como instalar o Windows XP em um Linux Asus Eee PC 701 
·Como definir a velocidade NIC em Xilinx Bash 
·Como adicionar uma fonte para OpenOffice Xubuntu 
·Linux Windows Jogos 
·Quais são os métodos comuns para obter suporte ao Lin…
·Como ligar o seu servidor Linux Home à rede baseado no…
·Quais são algumas das distribuições comerciais mais …
·Como posso formatar meu computador para executar Linux 
·Como alterar um caminho em Linux 
·Linux Windows Recovery Disk 
  Artigos em destaque
·Como alterar o nome do computador no Mac OS 10.4.11 
·Desfragmentar não será concluída 
·Como posso fazer um atalho Gerenciamento do Computador 
·Como bloquear um computador da Apple 
·Onde posso encontrar a página de ajuda do sistema Wind…
·Como reduzir o tempo de inicialização no Windows XP 
·Como limpar mensagens não lidas de uma prancheta 
·Como instalar o Mojo no Ubuntu 20.04 LTS (Focal Fossa) 
·Uma família de sistemas operacionais é baseada em jan…
·Como remover uma senha 
Cop e direita © Rede de conhecimento computador https://ptcomputador.com Todos os Direitos Reservados