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.

About Dan_Atilio

Analista e desenvolvedor de sistemas na TOTVS Oeste Paulista Bauru. Técnico em Informática pelo CTI da Unesp. Graduado em Banco de Dados pela Fatec Bauru. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor do projeto Terminal de Informação, onde são postados tutoriais e notícias envolvendo o mundo da tecnologia.

9 respostas em “Tudo sobre Paginação e Segmentação

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

    Mais uma vez, muito obrigado.

Deixe uma resposta