Como posso permitir que processos de alta prioridade continuem quando processos de baixa prioridade estão causando pouca memória livre?

Como posso permitir que processos de alta prioridade continuem quando processos de baixa prioridade estão causando pouca memória livre?

Ok, não tenho certeza se este é o lugar correto para postar isso. É mais uma questão de “por que não” do que de “como fazer” (a suposição é que não é/não pode ser feito).

Por que não permitimos que a RAM seja particionada em 2 (ou mais) blocos que possam ser usados ​​para tipos separados de processos? A principal motivação aqui é estar perto de 100% de RAM usada, e os congelamentos acontecem enquanto (presumo) a RAM é trocada no disco. Na maioria das vezes, isso se deve a algum vazamento de memória e é corrigido interrompendo e reiniciando o processo. Isso pode ser feito com alguns comandos, mas você terá que esperar até que a máquina “desbloqueie”. Se houvesse alguma noção de RAM particionada, você poderia ter uma configuração de prioridade, por exemplo, partições de sistema/util + não-sistema (com overflow permitindo RAM do sistema). Então, em vez de um 'congelamento' (vazamento de memória do aplicativo), você poderá facilmente resolver o problema.

Com meu conhecimento enferrujado de arquitetura de memória, você não precisaria mudar muito (ou nada) no hardware; em vez disso, a paginação/memória virtual poderia ser estendida no software para suportar um sinalizador adicional e um gerenciador de coordenação.

Há claramente um problema com o que foi dito acima, seja tecnicamente ou simplesmente não prático. Estou apenas interessado em POR QUE não.

informação relacionada