Primeiro: A alocação de RAM está sempre sob o controle final do sistema operacional do host.
Além disso, depende.
Com um hipervisor simples, basta informar ao hipervisor a quantidade de RAM que cada VM recebe. Essa quantia é deduzida da RAM disponível em seu sistema host quando a VM é iniciada e está "em uso" pelo hipervisor, desde que a VM seja corrida. O sistema operacional em execução na VM funciona como sempre para alocar RAM aos processos e aos usos do sistema operacional. O antigo "Virtual PC" da Microsoft, que era amplamente usado para executar o "Modo XP" no Windows 7, funciona dessa maneira. O VirtualBox também faz isso. Em ambos, se você configurar uma VM para 1 GB de RAM e iniciá-lo, seu host de repente terá 1 GB a menos de RAM "disponível". Geralmente não é muito eficiente no uso de RAM, mas é simples de implementar.
Com um hipervisor mais complexo, o valor que você aloca para a VM é simplesmente um limite superior. O sistema operacional convidado vê essa quantidade de RAM como "total", mas, por trás das cenas, algumas ou até mesmo a maior parte do que o cliente pensa é que a RAM pode ser virtual no que diz respeito ao host. Isso é particularmente verdadeiro no que o Windows chama de RAM "Livre" ou "Zerada" no convidado - como não tem conteúdo de interesse, não há necessidade de armazená-lo em lugar algum. Mas mesmo a RAM que o convidado vê como "em uso" pode ser virtual no host, com o conteúdo em um arquivo de paginação ou em um arquivo mapeado.
O sistema operacional convidado continua a manipular a RAM como sempre acontece, mas se o SO guest se referir a alguma RAM que ainda não está realmente lá, o hipervisor pode alocar mais RAM real para o convidado. (Em outras palavras, uma referência de memória que parece funcionar sem uma falha de página no convidado pode incorrer em uma falha de página no host.) Dentro da RAM disponível total e dos limites configurados, o hipervisor ajusta a quantidade de RAM "in" o sistema operacional convidado para tentar manter sua taxa de falha de página no host baixa.
Isso geralmente é chamado de "thin provisioning". É mais complexo implementar no hipervisor, mas resulta em um uso mais eficiente da RAM do host.