allora mia cara ragazza (lo evinco dal nome, nel caso mi sbagliassi, mio caro ragazzo), lezioni di base: un qualsiasi programma eseguibile viene caricato nella ram dal disco per poter essere eseguito, esso viene fatto dal sistema operativo , più precisamente dallo scheduler a lungo termine; questi file eseguibili vengono divisi in più processi a cui verrà assegnata la cpu dal dispatcher. Ora è noto che il processore lavora ad una certa frequenza e la ram ad un'altra frequenza, nei sistemi intel l'accesso alla ram è un tantino diverso dal sistema amd, in quanto l'indirizzo generato dalla cpu è indirizzo logico, composto da una parte di 16 bit che descrive il segmento a cui punta (13 bit), il gruppo (se è nei 2^13 segmenti condivisi o nei 2^13 segmenti del processo) (1 bit), e altre varie protezioni dei segmenti (2 bit). La seconda parte dell'indirizzo è di 32 bit, e indica lo scostamento all'interno del segmento puntato. Questo indirizzo viene elaborato dall'unità di segmentazione, che genera l'indirizzo lineare; questo indirizzo è di 32 bit, a cui si unisce un bit che indica se la pagina da puntare è da 4k o da 4M, se il bit è pari a 0, le pagine sono da 4k e si usa una tabella delle pagine a due livelli, la prima descritta nei primi 10 bit dell'indirizzo, la seconda nei secondi 10 bit, e lo scostamento negli ultimi 12 bit (2^12=4kb) se il bit è a 1 invece, le pagine son da 4 mb, e la tabella delle pagine è unica, descritta nei primi 10 bit dell'indirizzo; gli ultimi 22 bit indicano lo scostamento (2^22= 4Mb). Ovviamente quest'indirizzo lineare viene elaborato dall'unità di paginazione, che genera l'indirizzo fisico. Di norma la cpu riesce a gestire una frequenza delle ram pari alla frequenza in cui sta lavorando / il proprio moltiplicatore; questo è il valore da impostare nelle frequenze delle ram, se si va oltre, processore e ram non lavorano in modo sincrono e coordinato, e si ha un calo di prestazioni ;)