Pergunta

Estou um pouco confuso sobre a segmentação pura devido à minha cabeça sempre existia a ideia de memória virtual.

Mas, como eu entendo que a segmentação pura também está imaginando um espaço de endereço virtual, dividido em segmentos que estão todos carregados na RAM.

A diferença com a memória virtual com segmentação, é que, possivelmente, há algum segmento que não está na RAM.

Isso está correto?

Eu adiciono uma pergunta: Existe uma diferença prática entre a segmentação combinada com paging e uma paginação de dois níveis?, É o mesmo, exceto para a proteção "limite" do método do segmento.Ou há outra diferença?

Foi útil?

Solução

Não, não está correto. Por exemplo, no X86, a segmentação usa ponteiros "distantes" que consistem em duas partes: o seletor de segmento (carregado em um registro de segmento, por exemplo, DS) e um deslocamento no segmento. Os compensadores do segmento sempre começam em 0. A CPU usa o seletor de segmento para encontrar o descritor de segmento que contém o endereço base linear do segmento, o comprimento e os direitos de acesso. Todos os acessos são verificados de comprimento; Se você tentar acessar a memória fora do limite de segmento ou com acesso inválido (por exemplo, escrevendo para um segmento somente leitura), a CPU gerará uma falha de proteção geral.

Como os endereços do segmento são sempre baseados em zero e a base do segmento está implícita no seletor de segmento, o sistema operacional pode mover segmentos ao redor e desgostar a memória sem afetar os programas usando esses dados. (Contraste isso com o modelo de memória "plana", onde se você mover alguns dados, também terá que atualizar todos os ponteiros apontando para ele.)

Agora, quando a paginação é desativada, o endereço base do segmento linear é seu endereço de memória física. Quando a paginação é ativada, todos os acessos a dados do segmento são traduzidos pelo MMU como de costume.

Outras dicas

Se você é sério sobre entender o gerenciamento de memória nesse nível, uma excelente explicação pode ser encontrada lendo Conceitos do sistema operacional Por Silberschatz, Galvin e Gagne.Você deve ser capaz de encontrar uma edição barata e antiga.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top