Da mesma forma que um sistema operacional sem aplicativos úteis que rodem sobre ele perde seu valor, uma rede também precisa oferecer serviços. A arquitetura TCP/IP, utilizada na Internet deve grande parte de seu sucesso à disponibilidade de serviços diversos, e também devido à facilidade de criar novos serviços e protocolos. Em vários sistemas, alguns serviços possuem a natureza particular de serem utilizados apenas esporadicamente. Entretanto, manter um processo (daemon) em background rodando todo o tempo por um serviço raramente utilizado pode ser dispendioso quanto aos recursos da máquina, principalmente no que se refere à utilização de memória. Se considerarmos que existem vários serviços que se enquadram nesta situação, o resultado é um servidor com boa parte de sua memória utilizada, sem no entanto estar atendendo requisições pela rede que gerem esta carga. Os sistemas UNIX tradicionalmente resolvem este problema com um super servidor, chamado inetd (Internet daemon). Com o inetd, ao invés de manter rodando diversos serviços na máquina, um único processo, o inetd, fica escutando por conexões vindas da rede nas portas específicas dos serviços implementados (ex: porta 23 para o telnet, porta 21 para o ftp, etc.). Assim que um pedido de conexão chega, o inetd dispara o daemon correspondente ao serviço, repassando a ele a conexão recém-aceita. Em outros casos, quando temos serviços que são utilizados com freqüência, é necessário manter os daemons correspondentes rodando o tempo na máquina, de forma independente do inetd. Nestes casos o inetd é configurado para não escutar na porta específica do serviço, e o daemon do serviço é executado independentemente, sendo responsável por escutar e aceitar suas próprias conexões em sua porta específica. Este o caso de boa parte dos servidores www, que normalmente devem responder rapidamente a requisições por uma página na rede, e o overhead de dispara um novo processo via inetd a cada pedido por uma página ou figura de uma página, tornaria o serviço lento demais nos tempos de resposta desejados. Mesmo sistemas operacionais não-UNIX seguem uma abordagem semelhante (vide o caso do Microsoft Windows NT), onde um super servidor é responsável por atender os diversos serviços mais simples, e os serviços mais complexos são atendidos por processos executados de forma independente.
Copyright © 2024 CliqueApostilas | Todos os direitos reservados.