Segmentação


O espaço de endereçamento é composto basicamente por 3 segmentos principais:

  • Segmento de código
  • Heap
  • Stack

Drawing 2024-11-02 19.11.48.excalidraw

Segmento de código

Considere o cenário abaixo para calcularmos o endereço físico de uma dado acesso no segmento de código.

Base = 0x2800 Limite = 10248 bytes Início virtual = 0x0000 Acesso virtual = 0x0200

çí

Heap

Considere o cenário abaixo para calcularmos o endereço físico de uma dado acesso na heap.

Base = 0x0200 Limite = 2048 bytes ( em hexadecimal) Início virtual = 0x0900 Acesso virtual = 0x0800

  1. Verificar se o acesso está dentro do limite
  1. Cálculo do endereço físico

Generalizando:

çíçí

Stack

Considere o cenário abaixo para calcularmos o endereço físico de uma dado acesso na stack.

Base = 0x4500 (começa de baixo, pois se trata de uma estrutura de dados de pilha) Limite = 0x1000 Início virtual = 0x2000 Acesso virtual = 0x1200

  1. Verificar se o acesso está dentro do limite
    1. Se o limite for o tamanho (em bytes) máximo:
íç
2. Se o limite for o endereço máximo 
íç
  1. Cálculo do endereço físico

Generalizando:

çíçí

Referências


Aula de Sistemas Operacionais do dia 28/10/2024