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