Gerenciamento de memória - Virtual para conversão de endereços físicos

0

Por favor, eu preciso da maneira correta de converter o endereço lógico (virtual) para endereço físico, eu tenho a seguinte pergunta:

Dada a seguinte tabela de páginas:

Sabendo que as páginas virtuais e o quadro físico são 1 k Bytes, qual é o endereço de memória correspondente a cada um dos seguintes endereços virtuais codificados em hexadecimal: 142A e 0AF1?

eu resolvi assim, mas não sei se está correto:

142A (hex) = 5162 (decimal)

5162/1024 = 5 (número da página) < ---- > Quadro 1 na tabela de páginas

5162mod1024 = 42 (Deslocamento)

para que o endereço físico corresponda a 142A = 1 (físico) +42 (deslocamento) ou (1 * 1024 + 42)

então isso está correto?!

Atenciosamente

    
por Wissam A Jackal 10.02.2017 / 14:34

1 resposta

1

1Kbytes = 1024 bytes. 1024 10 = 0400 16

  • página 0 = 0000 16 , página 1 = 0400 16 , página 2 = 0800 16 , página 3 = 0C00 16 , página 4 = 1000 16 , página 5 = 1400 16

    • Então, 142A 16 está na página 5 ...
  • A página lógica 5 aponta para a página física 1. Cada página é 0400 16 bytes. A página física 1 começa às 0400 16 (a página 0 começaria em 0000 16 ).

  • 142A 16 é 2A 16 bytes após o início da página 5 em 1400 16 ...

    • então você adiciona 2A 16 ao endereço inicial da página física 1, que é 0400 16 . Portanto, o endereço lógico 142A 16 é realmente o endereço físico 042A 16 .

    • Qualquer coisa entre 1400 16 e 17FF 16 logicamente corresponde a 0400 16 a 07FF 16 fisicamente, etc.

Este é o tipo de tabela que você pode fazer para ajudá-lo. Tudo baseado em múltiplos de 0400 16 desde que é o tamanho da página.

Logical Page Number   Logical Page Address  ->  Physical Page Number   Physical Page Address
         0               0x0000 - 0x03FF                  4                0x1000 - 0x13FF                                                                            
         1               0x0400 - 0x07FF                  6                0x1800 - 0x1BFF                                                                            
         2               0x0800 - 0x0BFF                  8                0x2000 - 0x03FF                                                                            
         3               0x0C00 - 0x0FFF                  9                0x2400 - 0x27FF                                                                            
         4               0x1000 - 0x13FF                  12               0x3000 - 0x33FF                                                                            
         5               0x1400 - 0x17FF                  1                0x0400 - 0x07FF                                                                            
    
por 10.02.2017 / 15:20