Во-первых, вы, вероятно, не должны запускать процесс, который занимает всю память.
Причина, по которой это происходит, связана с swap space
.
Время аналогии
У тебя есть автобус. Этот автобус имеет "предпочтительные" места внутри автобуса и "переливные" места на крыше. Люди сидят на крыше только в том случае, если все предпочтительные места заняты, и им все равно действительно нужно ехать в автобусе.
Этот автобус обладает следующими уникальными свойствами:
- Места очень маленькие; среднестатистический человек занимал бы большое количество мест, может быть, 2 или 4 для ребенка, 8 или 10 для взрослого, а некоторые - до 40.
- Время, необходимое для посадки или высадки в автобус, для людей на предпочтительных местах в 20 раз быстрее, чем для переливных сидений.
Есть также три культурных правила об этом автобусе:
- Одно из правил заключается в том, что люди, которые просто садятся в автобус, могут "наткнуться" на людей, которые раньше ездили на автобусе, что заставляет этого человека встать с предпочтительного места и подняться к переливному месту на крыше. Все привыкли к такому поведению, поэтому оно не вызывает ссор или недоразумений; это просто часть культуры.
- Второе правило заключается в том, что, если автобус заполнен, то человек, занимающий наибольшее количество мест в автобусе, должен немедленно уйти, когда кто-то пытается сесть на полностью заполненный автобус.
- Третье правило заключается в том, что всякий раз, когда предпочтительное место становится доступным, человек, который может находиться в сиденье переливного типа, немедленно встанет с крыши и опустится, чтобы сесть на предпочтительное сиденье.
Теперь представьте, что вы заполнили все предпочтительные места. Тогда больше людей хотят сесть в автобус. Таким образом, кто-то садится в автобус, и все предпочтительные места занимаются, поэтому по культурным обычаям они заставляют кого-то, сидящего на предпочтительном месте, подниматься на крышу. Этот процесс может повторяться до тех пор, пока даже места переполнения на крыше не заполнятся.
Когда все предпочтительные и переполненные места заполнены, что происходит? Крупнейший человек должен сойти с автобуса. Если они уезжают в предпочтительное место, они могут уйти быстро; но тот, кто меньше (или несколько человек), может, по правилам, спуститься с крыши, чтобы сесть на свободные предпочтительные места.
Теперь, чтобы применить эту аналогию к реальности: "места переполнения" - это пространство подкачки на жестком диске, а "предпочтительные места" - ОЗУ. Правила автобуса применяются довольно чисто.
Случается так, что когда ваш "большой человек" (процесс, занимающий много оперативной памяти) уничтожается, система начинает перемещать процессы, которые находились в пространстве подкачки (места переполнения), обратно в память (предпочтительные места). Это связано с тем, что посадка и высадка автобуса с предпочтительных мест намного быстрее, и люди всегда садятся и выходят из машины, поэтому вам не нужно долго ждать на остановке, пока люди садятся и выходят из машины. с крыши.
Операционные системы с виртуальной памятью всегда используют как можно больше оперативной памяти. Использование с наивысшим приоритетом предназначено для фактически отображенных данных из программ, которые активно выполняют и получают доступ к этим сегментам ОЗУ. Использование со средним приоритетом предназначено для отображаемых страниц для программ, которые не выполняются активно. Самый низкий приоритет используется для "кеша страниц", который в основном является кешем наиболее часто используемых файлов вашего жесткого диска, так что их не нужно считывать с диска каждый раз, когда к ним обращаются.
Большинство программ в вашей системе, кроме той, которая занимает всю оперативную память, попадают в пространство подкачки (места переполнения), когда ваша большая программа занимает всю оперативную память, поэтому, когда вы заканчиваете большую программу, все начинает перемещаться обратно в оперативную память, чтобы ваш рабочий стол оставался отзывчивым. Во время этой передачи, поскольку она очень медленная, ваша система зависает, поскольку ей приходится загружать запросы ввода-вывода баланса из диспетчера виртуальной памяти и запросы ввода-вывода от приложений. Это более техническое определение того, почему это происходит.
"Лечение" состоит из трех частей:
- Приоритет первый: купить больше оперативной памяти. Это никогда не повредит вам и может только помочь вам. Если у вас есть деньги, а ваша материнская плата способна вместить больше оперативной памяти, сделайте это.
- Приоритет второй: не запускайте ту программу, которая занимает всю вашу оперативную память.
- Приоритет третий: уменьшите размер раздела подкачки, или полностью исключите его, или купите более быстрый жесткий диск (например, SSD).