Tecnicamente, "process1" não sabe disso. Há um conjunto de tabelas de páginas para cada processo. O kernel sabe para qual processo ele irá mudar e muda as tabelas de páginas. Uma parte dessas tabelas de páginas é o kernel, que é compartilhado entre TODOS os processos (portanto, uma determinada parte do intervalo de endereços, normalmente no intervalo de 0xc0000000 a 0xffffffff - embora nem TODAS essas páginas estejam presentes). Normalmente, essa seção compartilhada é obtida simplesmente fazendo com que todos os conjuntos de tabelas de páginas apontem para a mesma seção compartilhada de "bits da tabela de páginas de kernel".
Ter esta seção compartilhada permite que as chamadas, traps e interrupções do kernel entrem no kernel, não importa qual processo esteja sendo executado atualmente ou o que o processo está fazendo.
Exatamente como isso funciona depende da arquitetura para a qual o kernel é construído, mas, por exemplo, em x86 (32 e 64 bits), CR3 é o registrador que aponta para a tabela de páginas atual. Portanto, para cada processo, há um ponteiro para a tabela de páginas, e é carregado no CR3, como parte da mudança para o novo processo, assim como os valores de registro (pelo menos o ponteiro da pilha) são restaurados para o processo. 1 quando está sendo ligado.