How is virtual memory is differe from primary memory and secondary memory?