<< Clique para Mostrar o Sumário >>
Pool de Processos I/O Server |
Em aplicações com centenas de Drivers, os recursos necessários para executar os processos I/O Server para cada Driver podem esgotar a capacidade do sistema operacional. Nestes casos, pode ser necessário habilitar o Pool de Processos IOServer na aba Propriedades da configuração do Domínio.
Quando este Pool está habilitado, cada processo I/O Server pode executar mais de um Driver, economizando desta forma recursos do sistema operacional e permitindo que uma aplicação chegue a executar milhares de Drivers.
Apenas Drivers que suportam a criação de novas instâncias dinâmicas, ou seja, Drivers compilados com o IOKit v2.0.6 ou superior, podem ser utilizados neste Pool. Se um Driver que não tem este suporte é adicionado ao Pool, este Driver não é executado, ou seja, falha. Para estes casos, configure a propriedade DisableIOServerPool do Driver de Comunicação para Verdadeiro para que este Driver execute fora do Pool, em um processo I/O Server exclusivo.
Na aba Propriedades da configuração do Domínio, pode-se controlar o número máximo de processos I/O Server no Pool, bem como o número máximo de Drivers que executam em cada I/O Server.
Opções de comportamento do Pool de Processos I/O Server
Drivers por Processo |
Número Máximo de Processos |
Comportamento do Pool |
---|---|---|
0 |
M |
À medida que os Drivers da aplicação são ativados, é criado um processo I/O Server para cada Driver, até atingir o número máximo M. Depois deste ponto, cada novo Driver que é ativado é adicionado ao I/O Server do Pool que contém a menor quantidade de Drivers |
N |
0 |
À medida que os Drivers da aplicação são ativados, o Elipse Power os adiciona a um processo I/O Server do Pool que ainda não tenha atingido o número máximo N de Drivers executando dentro do Pool. Se todos os processos do Pool estiverem no limite máximo, então um novo I/O Server é adicionado ao Pool |
N |
M |
À medida que os Drivers da aplicação são ativados, o Elipse Power os adiciona a um processo I/O Server do Pool que ainda não tenha atingido o número máximo N de Drivers executando dentro do Pool. Se todos os processos do Pool estiverem no limite máximo, o comportamento depende da quantidade de processos no Pool, e se o número de processos do Pool é menor que o máximo M, então um novo processo é adicionado ao Pool, caso contrário o Driver é adicionado no processo que tiver menos Drivers executando. NOTA: Neste modo, o número máximo de Drivers por processo (N) pode ser ultrapassado caso o número total de Drivers do aplicativo exceda N × M |
NOTAS |
•Ao agrupar Drivers em um mesmo processo I/O Server, perde-se o isolamento entre estes Drivers. Desta forma, se ocorrer uma falha em um destes Drivers, o I/O Server é fechado e todos os Drivers que executavam naquele I/O Server têm de ser reiniciados. •Existe um limite no número de Drivers que podem executar em um processo I/O Server. Este limite depende de diversas variáveis, tais como o sistema operacional em uso, a quantidade de memória, threads e recursos que cada Driver específico está ocupando. Em linhas gerais, não se deve adicionar mais do que 100 Drivers em um único I/O Server, sob pena de exceder os limites do sistema operacional. |