Eu vi esta pergunta online me preparando para uma entrevista de emprego:
Dado um kernel não preemptivo, que tipo de processo será mais afetado em termos de desempenho e por quê?
E/S vinculado
Limite de CPU
Eu sei que:
Um processo vinculado à CPU obtém quanta longos, mas com baixa prioridade, enquanto um processo vinculado a E/S obtém quanta curtos com alta prioridade.
A princípio, pensei que o limite de I\O será mais afetado, pois deve aguardar a conclusão das leituras do disco (e não apenas pedir ao sistema operacional para ativá-lo quando algo estiver pronto). Mas acho que isso está errado, pois mesmo em Non- Kernel preemptivo: um processo pode decidir por si mesmo terminar seu trabalho e deixar outro trabalhar.
Estou procurando uma resposta detalhada para entender profundamente o que estou perdendo aqui.
Responder1
Não é verdade que "Um processo vinculado à CPU obtém quanta longos, mas com baixa prioridade, enquanto um processo vinculado a E/S obtém quanta curtos com alta prioridade".
Seria ideal se esse fosse o caso - mas geralmente acontece que cada processo obtém praticamente o mesmo intervalo de tempo. Um processo vinculado a E/S abandonaria a CPU rapidamente.
Organizando diferentes prioridadesdinamicamenteou de outra forma seria muito difícil de fazer e como o kernel não pode antecipar, não está claro como essa priorização seria implementada.