operação de leitura com dois processos intercambiáveis e comutador de contexto

1

P1 e P2 são ambos processos, diferentes um do outro. esta é uma operação de leitura feita no disco rígido:

Dado acima é um diagrama de uma instrução de leitura no Linux, é verdade que é melhor evitar o uso de um switch de contexto para melhorar a performance geral?

(a) true, porque evita a troca no TLB.

(b) verdadeiro.

(c) errado.

(d) errado, é impossível evitar a troca de contexto

Por que a resposta é simplesmente (c)? Eu estava pensando que o aluno não pode estar certo, porque evitar uma mudança de contexto não melhora a performance geral, já que a mudança de contexto é usada para melhor desempenho.

Eu estava pensando que deveria ser (d) porque quando vamos de P1 para P2, precisamos de uma mudança de contexto para passar de um processo para outro.

Alguém pode explicar?

    
por Asa 13.08.2015 / 21:05

2 respostas

0

Ok, parece que se deve escolher (c) sobre (d) simplesmente porque (d) é falso.

Quando P1 vai depois de um tempo em um estágio de leitura, estamos falando de IO, portanto, a CPU está ocupada. Ele precisa primeiro processar a solicitação de E / S e chegar a esses dados, portanto, enquanto está fazendo exatamente isso, o planejador executa outro processo para que não percamos tempo - isso, entretanto, não tem nada a ver com uma alternância de contexto.

Isso é o que eu penso. Isso parece lógico?

    
por 14.08.2015 / 04:28
0

Seria possível evitar um switch de contexto (o switch de P2 para P1) por não agendar P2 para ser executado enquanto aguarda a conclusão da operação do disco. Presumivelmente, se você fizesse isso, P1 retomaria a execução um pouco mais cedo, com um TLB mais quente.

Você não pode evitar toda a alternância de contexto porque a chamada do sistema envolve uma alternância de contexto (usuário para o kernel), assim como a retomada de P1 após a interrupção de conclusão do dispositivo. Mas você poderia evitar dois switches do contexto do usuário (embora apenas um dos switches afetem o tempo de P1).

Portanto, se sua única medida de desempenho for a rapidez com que P1 é executado, você poderá extrair um pouco mais dedicando essa CPU a P1 e não permitindo que nenhum outro processo seja executado. Mas sabemos que a atividade do disco é lenta em comparação com a alternância de contexto, e a questão é sobre o desempenho geral , não sobre o P1 sozinho. Portanto, faz sentido programar o P2 para ser executado durante a espera, mesmo que ele introduza um pequeno atraso na retomada do P1 depois.

    
por 14.08.2015 / 07:45