8

Sto leggendo il libro "Sistema operativo moderno". E sono confuso riguardo al "Formato pagina".Perché l'indirizzo a 16 bit con offset a 12 bit risulta in una dimensione di pagina 4KB?

Nel libro, l'autore dice,

L'indirizzo virtuale a 16 bit in arrivo è divisa in un numero di pagina a 4-bit e 12-bit di offset. Con 4 bit per il numero di pagina , possiamo avere 16 pagine e con 12 bit per l'offset, possiamo indirizzo tutti 4096 byte all'interno di una pagina .

Perché 4096 byte? Con 12 bit, possiamo indirizzare 4096 voci all'interno di una pagina, correggere. Ma una voce è un indirizzo (in questo caso, dimensione indirizzo = 16 bit). Quindi penso che possiamo indirizzare 4096 (entry) * 16 (bit) = 4096 (entry) * 2 (byte) = 8KB, ma perché il libro dice che possiamo indirizzare 4096 (byte)?

Grazie in anticipo! :)

risposta

9

Si presume che la memoria indirizzata ai byte (utilizzata da quasi tutte le macchine prodotte negli ultimi 30 anni), per cui ogni indirizzo si riferisce a un byte, non a una voce o indirizzo o qualsiasi altro valore superiore. Per mantenere un valore a 16 bit, avrai bisogno di due indirizzi consecutivi (due byte).

Più di 30 anni fa, c'erano macchine che erano indirizzate alla parola, che funzionavano come si suppone. Ma queste macchine hanno avuto difficoltà a gestire i dati orientati ai byte (come i caratteri ASCII), e quindi sono cadute in disgrazia. Al giorno d'oggi, cose come l'indirizzabilità dei byte, i byte a 8 bit e gli interi a due complementi sono pressoché assunti.

+0

Grazie mille! :) –

+0

Ho lavorato su un grande mainframe negli anni '70 e '80 che era indirizzato alla parola. Hanno offerto un'opzione che ha aggiunto l'hardware che consente di indirizzare direttamente byte o caratteri BCD. – dbasnett

+2

@dbasnett: Odio dirlo a te, ma gli anni '70 erano più di 30 anni fa ... –

3

I 12 bit sono un offset all'interno di una pagina. L'offset è in byte, non in indirizzi. 2^12 è 4096.

0

Quello che si sta calcolando è la dimensione della pagina, cioè la dimensione di una pagina nella tabella della pagina nella memoria. Poiché utilizziamo 12 bit per l'offset, ogni fotogramma nella memoria fisica è 2^12 = 4096K. Tuttavia, ogni pagina nella tabella delle pagine occupa 2^12 voci x 2 byte = 8 KB nella memoria.

0

okay, quindi hai un indirizzo virtuale a 16 bit per vedere cosa significa. Significa che hai 2 ** 16 = 65536 byte.

Numero di pagina a 4 bit significa che ci sono 16 pagine come 2^4 = 16 Ora si nominano le pagine come pagina1, pagina2 ... pagina16.

Ora noi rimane 12bits vediamo quanti indirizzo possono rappresentare 12 bit 2 ** 12 = 4096 byte

65536 byte potrebbero anche essere ottenuti dividendolo in 16 pagine contenenti 4096 byte ciascuno come 4096 * 16 = 65536

Problemi correlati