![Como posso permitir que processos de alta prioridade continuem quando processos de baixa prioridade estão causando pouca memória livre?](https://rvso.com/image/36025/Como%20posso%20permitir%20que%20processos%20de%20alta%20prioridade%20continuem%20quando%20processos%20de%20baixa%20prioridade%20est%C3%A3o%20causando%20pouca%20mem%C3%B3ria%20livre%3F.png)
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.