¿Cómo se calcula la dirección física en octubre de 2021?
Los primeros 10 dígitos son el número de página, es decir:
0000 0000 01
El desplazamiento dentro de la página son los últimos 12 dígitos, es decir:
0000 0010 0010 0110 1001
Debido a que el sistema utiliza tablas de páginas de dos niveles para el almacenamiento de paginación, se necesitan dos tablas de páginas para convertir direcciones lógicas en direcciones físicas.
El tamaño de cada entrada en la tabla de páginas de primer nivel es de 4 bytes (32 bits), de los cuales los 20 bits superiores almacenan la dirección inicial de la tabla de páginas de segundo nivel y los 12 bits inferiores almacenan la dirección inicial de la tabla de páginas de primer nivel. almacenar el bit de bandera.
Suponiendo que la dirección base de la tabla de páginas de primer nivel es 0x00001000, el contenido del octavo elemento de la tabla de páginas de primer nivel es 0x00001200, lo que significa que la dirección inicial de la página de segundo nivel la tabla es 0x 0001200. Por lo tanto, los primeros 10 bits de la dirección lógica son el número de página, y la entrada correspondiente debe encontrarse en la tabla de páginas de primer nivel y leer de ella la dirección inicial de la tabla de páginas de segundo nivel.
El tamaño de cada entrada en la tabla de páginas secundaria es de 4 bytes (32 bits), de los cuales los 20 bits superiores almacenan el número de marco de página física y los 12 bits inferiores almacenan el bit de bandera.
Suponiendo que la dirección base de la tabla de páginas secundarias es 0x00001200, el contenido del sexto elemento de la tabla de páginas secundarias es 0x00003456, es decir, la página con el número de página lógica 0x 0000106 se asigna a la Página física con el número de marco de página físico 0x00003456. Por lo tanto, el número de marco de página físico correspondiente debe leerse de la tabla de páginas secundarias y el número de marco de página físico se combina con el desplazamiento dentro de la página para formar una dirección física.
El desplazamiento en la página es: 0000 0010 0010 010 10 1001.
Convertir a decimal: 553.
Por lo tanto, la dirección física correspondiente a esta dirección lógica es:
0x00003456 * 4 + 553 = 0x0000D58D
Debido a que la memoria principal es direccionable por bytes, entonces la dirección física debe multiplicarse por 4.