Gerenciamento de memória (segmentação e paginação) em 80286 e 80386: como funciona?

2

Encontrei muitos sites e livros explicando como o gerenciamento de memória funcionava nos processadores 8086 e posteriores x86 no Modo Real. Eu entendo, eu acho, como dois valores de 16 bits, endereço de segmento e offset são combinados para obter um endereço físico linear de 20 bits (segmento de deslocamento de quatro bits à esquerda, adicionar deslocamento; segmentos são 64K e iniciam a cada 16 bytes). p>

Mas não encontrei nenhum site ou livro bom que explicasse como o gerenciamento de memória funciona no Modo Protegido, especificamente as diferenças entre 80286 e 80386.

Alguém pode me indicar um bom site ou livro (ou explicar aqui)?

(Para crédito extra, ou seja, um upvote, como funciona no Modo Longo?)

    
por Andrew J. Brehm 07.02.2011 / 14:42

2 respostas

3

link O Dr. Dobbs publicou alguns artigos em 93 & 94 sobre isso e não há muitas diferenças entre o modo como o 286 e o 386 lidam com a memória. O básico é que você não pode fazer a manipulação no segmento: registros de deslocamento porque o local e o comprimento da memória base agora fazem parte do seletor ao qual você se refere como um manipulador.

Você configura o seletor N com um endereço base X com um comprimento de M. Quando esse seletor é ativado (lembre-se da sintaxe CS: assembly?), esse intervalo de memória é usado (paginado, etc). O seletor N (o manipulador de 16 bits) refere-se a essa estrutura de dados.

Modelo de memória plana modo protegido defina o código, dados e pilha para o mesmo endereços de memória (e comprimento de 4gb). Esse link cobre muito bem o básico.

    
por 07.02.2011 / 15:55
1

Para o modo real, não há gerenciamento de memória, apenas multiplica o registro do segmento por 16 e adicionando o deslocamento, em seguida, coloca isso o resultado 21bit (sim 21bit porque 0xFFFF * 0x10 + 0xFFFF = 0xFFFF0 * 0xFFFF = 0x1FFFEF ou 1_1111_1111_1111_1110_1111b, um valor de 21bit) no buss do endereço.

Para modo longo, a segmentação existe, mas os descritores têm base 0 e limite 0xFFFFFFFFFFFFFFFF (16EB), portanto, seu modo simples, paginação é ao redor e é semelhante à paginação PAE, mas a Tabela de Ponteiro de Diretório de Página é estendida de 4 entradas para 512 entradas e uma tabela de nível de página 4 com 512 entradas que apontam para uma tabela de ponteiro de diretório de página diferente.

E aqui estão alguns sites que explicam isso com mais detalhes: link para o modo real e link para o modo ling

    
por 02.10.2011 / 07:31