Selecione
O multiplexador selecionado é um método alternativo, que substitui todos os processos de kernel relacionados e verificando o status do processo. Antes de processar a transação do processo do kernel, o aplicativo copiará os dados relacionados à solicitação de conexão do usuário do espaço do kernel para o espaço do usuário.
As deficiências deste multiplexador são as seguintes:
Porque, na maioria dos casos, o processo do kernel não está em um estado normal e apenas uma pequena parte estará em um estado utilizável. Portanto, a maioria dos resultados neste caso não tem sentido
Como o volume apropriado é pelo menos alcançado pela quantidade, o número de processos do kernel que ele pode lidar é limitado, ou seja, o número máximo de conexões simultâneas que ele pode lidar é limitado
Copiar do espaço do kernel para o espaço do usuário é caro.
Polling
O princípio de trabalho do multiplexador da pesquisa é quase o mesmo que o da seleção. A diferença é que, como é implementada adequadamente por uma lista vinculada, teoricamente não tem limite para o número de processos de kernel a serem processados, ou seja, a conexão simultânea máxima que ele pode lidar. Não há limite para o número (é claro, ele deve ser adicionado ao ulimit do comprimento máximo do arquivo que pode ser aberto no sistema atual).
voto
O multiplexador Epoll é um aprimoramento e melhoria para selecionar e pesquisar. Portanto, o modelo de substituição múltipla do Epoll também é chamado de modelo acionado por eventos Epoll.
Além disso, os dados usados pelo programa de aplicativos não são mais copiados do espaço do kernel para o espaço do usuário, mas usa o mecanismo de cópia zero MMAP, que reduz bastante a sobrecarga do sistema.
Pergunta: Depois que o multiplexador do Epoll é notificado do progresso correto do kernel, o multiplexador o processará imediatamente. Será imediatamente colocado na posição apropriada?
Resposta: Não. De acordo com diferentes métodos de processamento, ele pode ser dividido em dois modos de processamento: modo LT e modo ET.
Modo LT
LT, nível acionado, o modo de gatilho horizontal significa que, desde que a notificação pronta do processo do kernel não seja temporariamente processada pelo Epoll por algum motivo, o processo do kernel notificará periodicamente o epoll de suas informações apropriadas. Ele suporta dois métodos de comunicação: Bio e Nio.
Modo ET
ET, o modo de gatilho de borda acionado por borda é o único método de comunicação que suporta o NIO. Quando a informação pronta do processo do kernel notificará apenas o Epoll uma vez, independentemente de o Epoll processar a notificação. Haverá situações em que a notificação pronta é ignorada, ou seja, a solicitação de conexão é perdida.
Declaração de direitos autorais: Este é o artigo original do blogueiro do CSDN "Christy 0 01", que segue o contrato de direitos autorais do CC 4.0 BY-SA. Anexe o link à fonte do analista e a esta declaração para reimpressão.