Physical memory is real memory, as the name implies in the application, physically, the actual memory inserted on the board is how big is how big. Look at the machine configuration, this is the physical memory.
Virtual memory is a storage space that is opened up on external memory (such as a hard disk) to meet the system's need to exceed the physical memory capacity. Because virtual memory is actually placed on the external memory, it is very slow to read and write compared to physical memory.
So what does virtual existence do?
We know that the 32-bit CPU has 32 address lines, so it's addressing space is 4GB. That is, if there are no other restrictions, the maximum 4GB of physical memory can be installed on our motherboard. But the general machine is not loaded with so much physical memory, and sometimes the software application needs to be significantly more memory than the physical memory, what to do? You can't use the program. The OS proposes a concept of virtual memory. Is the process, the user, regardless of the actual physical memory constraints, and directly addressing the process space of 4GB. If the data being addressed is not actually in physical memory, it is obtained from "virtual memory". In general, the size of the virtual memory, the individual OS is also limited (such as the size of the swap partition of Linux, win can also adjust the size and location of virtual memory files). So, the amount of storage space that our program can use is: physical memory + virtual memory.