Pelo que entendi o efeito comboio , no contexto do tráfego de veículos em um sistema rodoviário. Um grupo de veículos em movimento lento passa pelo sistema, diminuindo o tráfego, mesmo em áreas que não foram diretamente afetadas pelo comboio.
Como isso se aplica no contexto do agendamento da CPU? Não parece ser uma situação análoga.
Respostas:
O efeito Comboio é o resultado do uso do algoritmo de agendamento FCFS (Primeiro a chegar, primeiro a servir). Nesse caso, o despachante (programação de curto prazo) alimenta os processos presentes no estado pronto para o processador da maneira FIFO. Essa é basicamente uma implementação simples do Queue. Os processos que chegam primeiro usam o processador primeiro.
Como implementa a política não preventiva , o que significa que, uma vez iniciado o processo, ele não será interrompido, a menos que conclua sua tarefa ou seja bloqueado pelo SO devido a algum erro fatal ou necessidade de E / S, obstrua os processos atrás de si. Se um processo intenso da CPU for executado, vários processos intensos de E / S não serão despachados. Nesse caso, os dispositivos de E / S estão ociosos . Quando o processo intenso da CPU renuncia ao controle, os processos vinculados de E / S passam rapidamente pela CPU, adicionando nas filas de E / S. Durante esse período, a CPU está ociosa .
Como você pode ver, esse método não é muito eficiente, pois os dispositivos de CPU e de E / S ficam ociosos por um longo tempo. Além disso, esse método geralmente oferece um tempo médio de espera muito alto.
O efeito é análogo ao exemplo de tráfego. Por causa de veículos em movimento lento , o sistema de tráfego está se tornando ineficiente. Os veículos que podem se mover mais rápido e chegar ao seu destino (semelhante ao estado de saída de um processo) mais rapidamente do que os veículos em movimento lento à sua frente não são capazes de fazer isso. Se esses veículos pudessem se mover em sua velocidade potencial, a estrada ficaria menos congestionada do que a que é nesse caso. Os veículos são análogos aos processos na fila pronta.
fonte
O agendamento do FCFS (primeiro a chegar, primeiro a ser servido) também pode causar o bloqueio de um sistema dinâmico ocupado de outra maneira, conhecido como efeito comboio.
Quando um processo intensivo da CPU bloqueia a CPU, é possível fazer backup de vários processos intensivos de E / S, deixando os dispositivos de E / S ociosos. Quando o porco da CPU finalmente deixa a CPU, os processos de E / S passam rapidamente pela CPU, deixando a CPU ociosa enquanto todos fazem fila para a E / S e, em seguida, o ciclo se repete quando o processo intensivo da CPU volta ao estado pronto. fila.
fonte
Em um sistema de multiprogramação, se vários processos aguardam a CPU para execução em um sistema FCFS, e um processo de processamento lento está utilizando a CPU, devido ao comboio, todos os processos rápidos que aguardam a CPU aguardam desnecessariamente por muito tempo. Este é o efeito comboio.
fonte
no FCFS, se o primeiro processo tiver um tempo de serviço grande do que outros processos com tempo de serviço menor, isso levará a um aumento no tempo médio de espera, o que não acontecerá se no mesmo primeiro processo de tempo de serviço mais curto for atendido primeiro e, em seguida, se o processo tiver um grande tempo de serviço, resultará em menor tempo médio de espera do que no primeiro caso acima, quando estivermos executando o processo com um tempo maior de serviço. é denominado como efeito comboio.
fonte