There are only 36 physical address lines but a page table entry is 64 bit long. How does the CPU check if the address is valid?
Isso é realmente feito por uma peça de hardware chamada unidade de gerenciamento de memória (MMU), que lida com o virtual-to tradução de endereço físico. Em termos de um endereço ser "válido", cada processo tem seu próprio espaço de endereço exclusivo (implementando assim um esquema de memória virtual), portanto, qualquer endereço é tecnicamente válido. Lembre-se, um processo pode alocar mais memória do que a fisicamente disponível.
A MMU usa um buffer lookaside de tradução (TLB) para decodificar rapidamente o endereço virtual para um físico, mantido dentro uma tabela de páginas .
How does Linux OS map the same virtual address in different processes to different physical addresses?
Isso ocorre novamente devido a cada processo ter um endereço virtual exclusivo, que é fundamental para a implementação de memória virtual . Um endereço virtual para um determinado processo é mapeado para algum hardware de armazenamento físico (RAM, disco, etc ...), mas o mapeamento é feito em tempo de execução pelo sistema operacional & MMU.