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

Terminal de Informação