Виртуальная память - это нечто большее, чем просто «приложения, выделяющие ОЗУ, и когда физическая ОЗУ заканчивается, что-то выгружается в SWAP».
В Linux (и, возможно, UNIX в целом) система пытается сохранить страницы, недавно прочитанные в ОЗУ: выполненные программы, загруженные данные, недавно записанные данные (уже на диске) и т.д. Так что, если одна и та же программа выполняется снова, она не выполняет не нужно перезагружать с диска. Когда какая-то программа запрашивает выделение большего объема памяти для своего виртуального адресного пространства, сначала перенаправляются оставшиеся дисковые буферы (без доступа к диску). Если этого недостаточно, некоторые страницы запущенных приложений, к которым недавно не обращались, фактически заменяются.
В Linux обмен обычно не происходит вообще. Как только ваша система начинает обмениваться, вы замечаете повышенную активность диска (и медлительность), и вы говорите «о, что за…», потому что это, вероятно, означает, что у какого-то приложения происходит утечка памяти или что-то из-под капота стало неуправляемым.
У Windows традиционно есть дурацкая дополнительная привычка: они заменяют целые приложения пользовательского пространства после некоторого перерыва в бездействии. Строго говоря, без извинений, просто чтобы иметь как можно больше доступной оперативной памяти, "на всякий случай", вы хотели запустить еще одно голодное приложение. Если вы оставите компьютер включенным и уйдете на несколько часов, то по возвращении вы заметите, что любое приложение, на которое вы переключаетесь, автоматически загружается из свопинга.
Такое поведение было особенно болезненным в Windows 2000 и постепенно становится менее заметным в более современных версиях Windows. В W2k отключить своп было легко. Windows 7 все еще может сочиться, как мед, иногда без особой причины, Windows 8.1 и 10 заметно улучшились ... но все еще нет настраиваемой ручки для "подкачки" или других настраиваемых параметров алгоритма подкачки.
Существуют и другие факторы, которые могут привести к перебоям системы при медленном доступе к диску. В Windows 7 вы никогда не узнаете, что система только что поменяла ваше приложение в старом добром стиле W2k, или вам следует винить Антивируса в том, что ваше приложение запускается так медленно, или в Windows Update что-то делает в на этот раз (известно, что в его алгоритмах встречаются встречные причуды, которые приводят к зависаниям при 100% потреблении ЦП и / или перегрузке диска), или, в частности, потеря какой-либо задачи .NET Framework в базе данных WinSXS или что-то еще. В некоторых случаях / в некоторых версиях / воплощениях программного обеспечения Microsoft на самом деле кажется, что некоторые родные окна "в фоновых задачах" (в частности, управление локальной базой данных Windows Update) намеренно "скрыты" в диспетчере задач, их использование ЦП и ОЗУ не показать в общем потреблении памяти. "Законная" деятельность, но довольно сложно отличить вредоносный руткит от ... Только после того, как перебивание прекращается, и сразу появляется всплывающее окно с надписью "доступны новые обновления", вы понимаете причину.
Ну, по крайней мере, последние версии Windows могут сообщать вам об активности дискового ввода-вывода для каждого процесса, а отдельные службы теперь отображаются отдельно (вместо одного процесса SVCHOST.EXE).