pour répondre simplement :
on peut dire que l´executable est chargé entierement en mémoire, mais mémoire virtuelle ! !
c´est a dire que tu imagines une barette de RAM imaginaire, le programme est entierement chargé la dedans au lancement.
( quand je dis programme, ce n´est pas les données ( les images, les modeles, etc...) qui elles sont chargées avec fopen, fgets ou fread comme tu disais.
Alors mémoire virtuelle C quoi donc ?
en gros, l´ordi sait adresser + de mémoire que la RAM. Cette mémoire est pagninée : donc décoposée en plusieurs " pages".
S´il y a assez de RAM, la " page" est posée en RAM, s´il n´y en a plus assez, elle est posée sur le disque dur.
Les pages les plus fréquentes sont laissées en RAM, les autres restent sur le disque :
quand la RAM est saturée, tu vois ton disque dur gratter : on dit qu´il swap :
swap = échange, en gros, il échange une page de la RAM plus utilisée avec une page disque dur dont le prog demande l´acces.