Algumas ideias gerais que tive sobre esta pergunta geral :
(1) Durante o desligamento do Windows, a maioria dos serviços gerará pelo menos um evento ao finalizar. Às vezes, cada serviço pode ter muitos eventos. Por exemplo, "Terminação do serviço NTP", "O driver da impressora recebeu o sinal para terminar", "O driver da impressora está liberando a fila" "Exitindo o driver da impressora". Esses Eventos são "objetos" e demoram para criar e destruir , o que aumenta o tempo de desligamento.
Durante o desligamento no unix, a maioria dos processos simplesmente imprime uma linha no console ou / var / log / messages e sai. Muito mais rápido.
(2) Durante o desligamento, a GUI do Windows salvará um lote de informações de estado, a maioria das quais é armazenada como objetos . CLI no unix não tem quase nada para salvar, exceto pelo arquivo de histórico do shell. A maioria das informações de estado está em arquivos de texto simples. Muito mais rápido.
(3) O Windows pode armazenar em cache muitas coisas e esses caches precisam ser liberados para o FileSystem no desligamento.
Os caches podem ser manuseados melhor em unix, com execuções periódicas de "fsync", em melhores FileSystems. Muito mais rápido.
(4) O Windows pode dar a cada processo (ou serviço) muito mais tempo para sair, e os processos suspensos podem permanecer por mais tempo até serem finalizados à força.
O Unix pode dar menos tempo a cada processo (ou serviço) para sair, e a maioria dos processos pode responder rapidamente. Muito mais rápido.
Se houver uma situação específica , então pode haver uma resposta correta específica , caso contrário, teremos que ir com generalizações vagas, imprecisas e simplistas. p>