Professional Documents
Culture Documents
Apostila 2 - Paginacao Segmentacao
Apostila 2 - Paginacao Segmentacao
SISTEMAS OPERACIONAIS
PROF: GUILHERME GODOY
APOSTILA 2
Até aqui vimos que um aplicativo para ser executado precisaria estar todo na memória,
ocupando espaço a maioria das vezes de forma desnecessária.
À memória principal são transferidas por vez apenas algumas partes destes
programas e dados, essenciais ao momento pontual da execução.
Paginação
A paginação é um esquema de gerenciamento de memória que permite
que o espaço de endereçamento físico de um processo NÃO seja
contíguo.
Esta técnica é utilizada na maioria dos sistemas com memória virtual, mas funciona em
sistemas em que não exista uma memória virtual.
FUNCIONAMENTO
• Um número de página
• Um deslocamento de página
A memória lógica foi dividida em 4 quadros que foram mapeados pela tabela de
paginas e indexados de acordo com o que foi inserido nos quadros (ou
molduras de páginas) na memória física.
Considere o byte y2. Ele possui o endereço lógico 00101. Podemos ver esse
endereço composto por duas partes: os primeiros 3 bits indicam o número da
página ou seja 001, e os últimos 2 bits indicam a posição de y2 dentro da
página, que é 01. Importante
Import observar
ar que todos os bytes pertencentes a uma
mesma página lógica apresentam o mesmo número de página. De forma
semelhante, todas as páginas possuem bytes com deslocamento entre 00 e 11.
FRAGMENTAÇÃO
TABELA DE PÁGINAS
Cada sistema operacional tem seus próprios métodos para armazenar a tabela
de páginas.
Cada página ocupa 4 Kb. Isso significa que um processo pode ter até
1.048.576 entradas na tabela de páginas o que representa uma tabela de
páginas ocupando 4 MB (cada entrada são 4 bytes).
Por isso um processador 32 bits ou um sistema operacional 32 bits não “enxerga” mais
de 4 GB de memória, ele não consegue realizar o endereçamento.
Assim temos uma tabela muito grande ocupando espaço significativo, o que
leva a um problema: quanto maior for a tabela maior será a pesquisa por uma
entrada específica.
Qual o problema dessa solução? Agora cada acesso que um processo faz à
memória lógica transforma-se em dois acessos à memória física. No primeiro
acesso, a tabela de páginas é consultada, e o endereço lógico é transformado
em endereço físico. No segundo acesso, a memória do processo é lida ou
escrita.
Foi criada então uma memória cache especial que vai manter as entradas de
tabela de páginas mais recentemente utilizadas.
Por outro lado, quando a entrada da tabela de páginas associada com a página
lógica não está na TLB diz que ocorreu uma falta (miss). Neste caso, é
necessário um duplo acesso à memória física, como no esquema sem o cache.
Segmentação
É o esquema de gerenciamento de memória que suporta a visão do
usuário sobre a memória. Neste caso, um espaço de endereçamento
lógico é um conjunto de segmentos.
• Código
• Dados alocados estaticamente
• Dados alocados dinamicamente
• Pilha de execução
• Bibliotecas
• Etc..
Em geral o programador atribui nomes aos segmentos.
FUNCIONAMENTO
Essa tabela informa o local onde o segmento foi colocado em memória (base)
e qual o seu tamanho (limite).
9
Assim sabemos que o espaço dele vai até a posição 4700 (4300 + 400).
Então:
FRAGMENTAÇÃO
COMPARTILHAMENTO
A figura acima mostra um editor de texto aberto por 2 usuários, sendo que a
parte do editor está na memória apenas 1x sendo que apenas os dados é que
são colocados 2x na memória, visto que são eles que os diferenciam.