Em PCs que executam processos recentes de SO parecem executados simultaneamente, mas na verdade estão sendo executados um após o outro. Os processos podem estar em vários estados, simplificados aqui :
- em execução (atualmente reivindicando tempo de CPU)
- pronto (pronto para solicitar a CPU para algum trabalho)
- aguarde (aguardando outros processos por meio de comunicação entre processos ou disco ou rede de E / S semelhantes)
- sleep ("Eu não preciso do seu tempo agora")
A prioridade de um processo diz ao scheduler para escolher o processo com a prioridade mais alta com um estado pronto para permitir o uso da CPU. Assim, no caso em que vários processos estão no estado pronto, aquele com a maior prioridade obterá a maior parte do tempo. E como o Linux é um kernel preventivo, ele pode colocar processos do estado em execução em espera e permitir que outros processos trabalhem. O tempo que os processos obtêm é dividido em timeslices e o algoritmo para o agendamento real também pode ser selecionado.
Alterar o nível nice
não altera nada para o gerenciador de memória até onde eu sei, mas sim, ele influencia o bloqueio de recursos de uma maneira que os processos com prioridade mais alta devem ser concluídos antes.
Eu sugiro que você leia mais sobre este tópico: Wikipedia: Multitarefa preventiva e O'Reilly - Entendendo o Kernel Linux (2000)
E, a propósito, por favor, note que um menor nice
nível significa maior prioridade no Linux.