Разве это не будет стоить слишком много времени для обмена между основной памятью и резервным хранилищем?
Нет, потому что память для процессов вытесняется на диск в виде "страниц", размер которых обычно составляет 4 КБ. Мы не выталкиваем все адресное пространство процесса за один раз. Вы правы, полагая, что это будет громоздко и быстро приведет к записи огромных объемов данных на диск.
Большинство процессов не выделяют все свое выделенное 4 ГБ адресное пространство, они запрашивают только небольшие объемы памяти по мере необходимости. Снова выписывание всего адресного пространства будет пустой тратой, так как большая его часть будет пустой.
если одному процессу выделено 4 ГБ адресного пространства, сколько пространства может иметь другой процесс?
Каждый процесс имеет свое собственное адресное пространство, отдельное от любого другого процесса. ОС разделяет процессы в их собственное адресное пространство и переводит виртуальные адреса в адреса физической памяти с помощью центрального процессора. Фактически каждый процесс представляет собой новое "виртуальное" адресное пространство с выделенной памятью, поддерживаемой физической ОЗУ.
Программа никогда не обращается к физической памяти, данные точно записываются в память, но фактический адрес, на который записывает процесс, - это виртуальный адрес, который преобразуется в физический адрес.