Tudo sobre Paginação e Segmentação

Olá Pessoal…

Hoje irei falar sobre alguns conceitos muito utilizados e empregados em processos de Sistemas Operacionais, a Paginação, a Segmentação e a Paginação com Segmentação


$> Paginação:
A paginação permite que o programa possa ser espalhado por áreas não contíguas de memória. Com isso, o espaço de endereçamento lógico de um processo é dividido em páginas lógicas de tamanho fixo e a memória física é dividida em páginas com tamanho fixo, com tamanho igual ao da página lógica. Nisso, o programa é carregado página a página, cada página lógica ocupa uma página física e as páginas físicas não são necessariamente contíguas. O endereço lógico é inicialmente dividido em duas partes : um número de página lógica (usado como índice no acesso a tabela de páginas, de forma a obter o número da página física correspondente) e um deslocamento dentro da página. Não existe fragmentação externa, porém existe fragmentação interna (Ex: um programa que ocupe 201kb, o tamanho de página é de 4 kb, serão alocadas 51 páginas resultando uma fragmentação interna de 3kb). Além da localização a tabela de páginas armazena também o bit de validade, (1 ou TRUE) se a página está na memória (0 ou FALSE) se a página não está na memória. E a transferência das páginas de processo podem ser transferidas para a memória por demanda, levando apenas o que é necessário para a execução do programa ou por paginação antecipada, onde o sistema tenta prever as páginas que serão necessárias à execução do programa. Abaixo um exemplo de páginas constantemente referenciadas:

Modelo de Paginação

Modelo de Paginação

$> Segmentação:
Técnica de gerência de memória onde programas são divididos em segmentos de tamanhos variados cada um com seu próprio espaço de endereçamento. A principal diferença entre a paginação e a segmentação é a alocação da memória de maneira não fixa, a alocação depende da lógica do programa. O mapeamento é feito através das tabelas de mapeamento de segmentos e os endereços são compostos pelo número do segmento e um deslocamento dentro do segmento. Cada entrada na tabela mantém o endereço físico do segmento, o tamanho do segmento, se ele está ou não na memória e sua proteção. Para isso ocorrer sem problemas, o sistema operacional mantém uma tabela com as áreas livres e ocupadas da memória e somente segmentos referenciados são transferidos para a memória principal. Nesse modelo diferentemente da Paginação, ocorre fragmentação externa. Abaixo um exemplo de Segmentação:

Modelo de Segmentação

Modelo de Segmentação

$> Paginação com Segmentação:
Se os segmentos são grandes, não dá para mantê-los na memória em sua totalidade. Gerando a ideia de paginar os segmentos só deixando na memória as páginas realmente necessárias a cada segmento. Um exemplo de SO que usa esse conceito é o MULTICS que foi o primeiro sistema com suporte a segmentos paginados. E como funciona? Simples, cada segmento é dividido fisicamente em páginas e o endereço é formado pelo número do segmento, número da página dentro desse segmento e o deslocamento dentro dessa página. Abaixo um exemplo de funcionamento de Paginação com Segmentação no MULTICS:

Modelo de Paginação com Segmentação

Modelo de Paginação com Segmentação

Bom pessoal, por hoje é só.
Abraços e até a próxima.

Dan (Daniel Atilio)
Cristão de ramificação protestante. Especialista em Engenharia de Software pela FIB, graduado em Banco de Dados pela FATEC Bauru e técnico em informática pelo CTI da Unesp. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor e mantenedor do portal Terminal de Informação.

15 Responses

  1. kiko disse:

    muito dificil sua explicação

  2. augustowebd disse:

    Muito obrigado por compartilhar parte do conhecimento.
    Sugiro apenas que, se possível, deixe referência da fonte.

    Mais uma vez, muito obrigado.

  3. carlos vieira disse:

    Porque é que o meu telefone fixo toca frequentemente e aparece PAGING

  4. Marcelo Mendes disse:

    Opa, tudo certo?
    Muito bom seu post, deu para entender as diferenças bem facilmente. Estava tentando achar material sobre a gerência de memória, porém não achei nada, é uma ideia para post.
    Eu gostaria muito de saber os sobre os principais objetivos da gerência de memória,

  5. Wellington Stival disse:

    Opa, tudo joia?
    Estou fazendo um trabalho de SO, e gostaria de saber se o Windows 7 utiliza o método de Paginação.

  6. Rômulo Almeida Rodrigues disse:

    Essa explicação
    é sobre paginação Linux ????

    • Dan_Atilio disse:

      Boa noite Rômulo.
      Essa explicação é sobre o conceito em geral. Geralmente os sistemas operacionais utilizam esses conceitos em sua programação, podendo variar algumas coisas.
      Um grande abraço.

Deixe uma resposta para Rômulo Almeida RodriguesCancelar resposta

Terminal de Informação