В реальных адресах физической памяти работает только ядро системы и драйверы. Для каждого запущенного процесса создается область виртуальной памяти (виртуальных адресов) В этой области выделяется память для самой программы и для каждого модуля (DLL), который используется программой. Фактически эти общие модули хранятся в памяти как правило, в одном экземпляре, но память для них выделяется в виртуальной памяти каждого (!) процесса. Так что чем больше процессов запущено, тем больше разница между реально использованной память и выделенной памятью.
Но может быть и наоборот, если некая программа использует файлы, отображенные на память. Такая занятая память не относится ни к одному процессу, поэтому количество используемой памяти может и превышать количество выделенной.