Как разрешить высокоприоритетным процессам продолжать работу, если низкоприоритетные процессы приводят к нехватке свободной памяти?

Как разрешить высокоприоритетным процессам продолжать работу, если низкоприоритетные процессы приводят к нехватке свободной памяти?

Ладно, я не уверен, что это правильное место для публикации. Это скорее вопрос «почему бы и нет», чем «как сделать» (предполагается, что это невозможно/нельзя сделать).

Почему мы не разрешаем разбивать ОЗУ на 2 (или более) блока, которые можно использовать для отдельных типов процессов? Основная мотивация здесь в том, что ОЗУ используется почти на 100%, и зависания происходят, когда (я предполагаю) ОЗУ выгружается на диск. В большинстве случаев это происходит из-за утечки памяти и устраняется путем завершения и перезапуска процесса. Это можно сделать несколькими командами, но вам придется подождать, пока машина не «отключится». Если бы существовало какое-то понятие разделенной ОЗУ, вы могли бы настроить приоритет, например, системные/утилитарные + несистемные (с переполнением, допускающим системную ОЗУ) разделы. Тогда вместо «заморозки» (утечки памяти приложения) вы могли бы легко исправить проблему.

С моими скудными познаниями в архитектуре памяти вам не придется менять много (или вообще ничего) на оборудовании, вместо этого можно расширить страничную/виртуальную память программно для поддержки дополнительного флага и менеджера координации.

С вышеизложенным явно есть проблема, либо техническая, либо просто непрактичная. Мне просто интересно, ПОЧЕМУ нет.

Связанный контент