Ok, não tenho certeza se esse é o local correto para postar isso. É mais uma pergunta "por que não" do que uma "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 podem ser usados para tipos separados de processos? A principal motivação aqui é estar perto de 100% de RAM usada, e os congelamentos acontecem enquanto (eu suponho) que a RAM é trocada no disco. Na maioria das vezes, isso é devido a algum vazamento de memória e corrigido matando e reiniciando o processo. Isso pode ser feito em alguns comandos, mas você tem que esperar até que a máquina se torne "desencaixada". Se houvesse alguma noção de RAM particionada, você poderia ter uma configuração prioritária, por exemplo, partições system / util + não-system (com overflow permitindo a RAM do sistema). Em vez disso, em um 'congelamento' (vazamento de memória do aplicativo), você pode corrigir o problema facilmente.
Com meu conhecimento enferrujado de arquitetura de memória, você não precisaria alterar muito (ou nada) em hardware, em vez disso paginação / memória virtual poderia ser estendida no software para suportar um sinalizador adicional e um gerenciador de coordenação.
Existe claramente um problema com o anterior, seja tecnicamente ou simplesmente não prático. Estou interessado apenas em POR QUE não.
Tags ram partition virtual-memory