É verdade que o sistema operacional moderno pode ignorar a cópia quando o realloc é chamado

Ao ler ohttps://stackoverflow.com/a/3190489/196561 Eu tenho uma pergunta. O que os autores do Qt dizem noDentro do Qt 4 Containers:

... QVector usa realloc () para crescer em incrementos de 4096 bytes. Isso faz sentido porque os sistemas operacionais modernos não copiam os dados inteiros ao realocar um buffer; as páginas de memória física são simplesmente reordenadas e somente os dados da primeira e da última páginas precisam ser copiados.

Minhas perguntas são:

1) É verdade que o sistema operacional moderno (Linux - o mais interessante para mim; FreeBSD, OSX, Windows) e suas implementações realloc realmente capazes de realocar páginas de dados usando reordenação de mapeamento virtual para físico e sem cópia byte por byte?

2) Qual é a chamada do sistema usada para atingir esse movimento de memória? (Acho que pode sersplice com SPLICE_F_MOVE, mas foi falho e não funciona agora (?))

3) É lucrativo usar esse embaralhamento de páginas em vez de cópia de byte a byte, especialmente no mundo multithreaded de vários núcleos, onde cada alteração de mapeamento de virtual para físico precisa liberar (invalidar) as entradas da tabela de páginas alteradas deTLBs em todas as dezenas de núcleos de CPU comIPI? (No linux isso é smth comoflush_tlb_range ouflush_tlb_page)

upd para q3:alguns testes do mremap vs memcpy

questionAnswers(2)

yourAnswerToTheQuestion