Gerência de Memória Sistemas Operacionais I

75
Gerência de Memória Sistemas Operacionais I Módulo 8

description

Gerência de Memória Sistemas Operacionais I. Módulo 8. GERÊNCIA DE MEMÓRIA. Premissa A memória real é o recurso de armazenamento de acesso direto Processos devem ser carregados para a memória real No todo Em parte O S.O. deve permanecer na memória real e ocupar o menor espaço possível. - PowerPoint PPT Presentation

Transcript of Gerência de Memória Sistemas Operacionais I

Page 1: Gerência de Memória Sistemas Operacionais I

Gerência de MemóriaSistemas Operacionais I

Módulo 8

Page 2: Gerência de Memória Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 7-2

GERÊNCIA DE MEMÓRIA

Premissa– A memória real é o recurso de

armazenamento de acesso direto– Processos devem ser carregados para a

memória realNo todoEm parte

– O S.O. deve permanecer na memória real e ocupar o menor espaço possível

Page 3: Gerência de Memória Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 7-3

GERÊNCIA DE MEMÓRIA

Premissa– Endereçamento de instruções e dados

podem ser constituído de três formasTempo de compilação (Compile Time)

– Se a(s) locação(ções) de memória são conhecidas, então o código pode possuir endereçamento absoluto

– É necessários recompilar o programa se a(s) locação(ções) forem alteradas

Page 4: Gerência de Memória Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 7-4

GERÊNCIA DE MEMÓRIA

Premissa– Endereçamento de instruções e dados

podem ser constituído de três formasTempo de carga (Load Time)

– Se a(s) locação(ções) de memória não são conhecidas, é necessário gerar código relocável

Tempo de execução (Execution Time)– Endereçamento é constituído dinamicamente,

durante a execução, se o processo for movido de uma área de memória para outra

– É necessário suporte de hardware para mapear os endereços

Page 5: Gerência de Memória Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 7-5

GERÊNCIA DE MEMÓRIA

Problema– É necessário otimizar o uso da área de

memória realSolução-Problema

– Subdividir a memória em unidades de alocação

– De que forma?– Quais os requisitos para a gerência?

Page 6: Gerência de Memória Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 7-6

GERÊNCIA DE MEMÓRIA

Requisitos – O S.O. precisa:

Alocar espaços na memória para programas– De forma explícita ou implícita

De-alocar espaços quando necessárioEfetuar a manutenção das tabelas

– Ex: mapear memória virtual na memória físicaDecidir quanto de memória alocar a cada

processo e quando um processo será removido da memória

Page 7: Gerência de Memória Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 7-7

GERÊNCIA DE MEMÓRIA

Requisitos – Relocação

Definição: ajuste no programa executável para que execute em um conjunto pré estabelecido de endereços de memória.– O processo não tem locação de memória pré-

fixada

O processo pode ser retirado (swapped out) da memória e retornar em qualquer outra locação

Page 8: Gerência de Memória Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 7-8

GERÊNCIA DE MEMÓRIA

Requisitos – Relocação

Necessidade– O endereçamento não pode ser absoluto– As referências precisam ser transformadas em

endereços reais

Page 9: Gerência de Memória Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 7-9

GERÊNCIA DE MEMÓRIA

Requisitos– Relocação

Formas básicas de relocação– Em tempo de execução (Hardware) – Em tempo de compilação

No boot do sistema esse método ainda é utilizado

Page 10: Gerência de Memória Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 7-10

GERÊNCIA DE MEMÓRIA

Requisitos– Relocação

Formas básicas de relocação– Em tempo de carga, pelo sistema operacional.

É lento. O programa não pode mudar de área Estrutura do programa:

Cabeçalho TextData

(já incializados)Dicionário de

Relocação

Page 11: Gerência de Memória Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 7-11

GERÊNCIA DE MEMÓRIA

Requisitos – Proteção

Processos não podem acessar áreas de outros processos sem prévia autorização

Problema– Complexidade da verificação dos acessos

Relocação e endereços dinâmicos– Acessos devem ser verificados a tempo de

execução pelo hardware

Page 12: Gerência de Memória Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 7-12

GERÊNCIA DE MEMÓRIA

Requisitos – Compartilhamento

Permitir que vários processos façam acesso à mesma área de memória– Compartilhar código executável– Compartilhar área de dados

Controlar acesso a áreas de memória sem comprometer a proteção do S.O.

Page 13: Gerência de Memória Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 7-13

GERÊNCIA DE MEMÓRIA

Requisitos – Estrutura lógica

Organização da memória em lista linear de endereços

Programas são organizados em módulosVantagens da implementação integrada

– Compilação independente dos módulos– Proteção apropriada dos módulos– Compartilhamento de módulos entre os processos

Page 14: Gerência de Memória Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 7-14

GERÊNCIA DE MEMÓRIA

Requisitos – Estrutura física

Problema– A memória real pode ser insuficiente para um

processo

Page 15: Gerência de Memória Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 7-15

GERÊNCIA DE MEMÓRIA

Requisitos – Estrutura física

Solução– Overlaying

Dividir em módulos que não são carregados simultaneamente

Uma rotina é responsável pela carga dos módulos

– Solução complexa O programador pode não ter conhecimento da

memória disponível

Page 16: Gerência de Memória Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 7-16

RELOCAÇÃO

Quando um processo é carregado para a memória as referências a memória real (endereço absoluto) precisam ser ajustadas– Motivo

Processos podem ocupar diferentes áreas de memória– Partições diferentes

Causas– SWAPING– Compactação

Page 17: Gerência de Memória Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 7-17

ENDEREÇAMENTO

Lógico/Virtual– Referência a uma posição de memória

independe da localização REAL na memória

Gerado pela CPU– Também conhecido como endereço virtual

Tradução endereço-lógico endereço-físico

Físico– Endereço REAL na memória

Page 18: Gerência de Memória Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 7-18

ENDEREÇAMENTO

Relativo– O endereço é expresso em relação a

algum ponto baseBase+Deslocamento

Page 19: Gerência de Memória Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 7-19

ENDEREÇAMENTO

Endereçamento lógico e físico – são idênticos no endereçamento

constituído em tempo de compilação e em tempo de carga.

– São diferentes no caso do endereçamento constituído em tempo de execução

Page 20: Gerência de Memória Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 7-20

ENDEREÇAMENTO

Memory-Management Unit (MMU)– Dispositivo de Hardware que mapeia

endereços virtuais em físicos– No esquema MMU, o conteúdo no

registrados de relocação é adicionado a qualquer endereço gerado pelo processo

– O processo utiliza endereço lógico. NUNCA usa endereço físico

Page 21: Gerência de Memória Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 7-21

ENDEREÇAMENTO

Suporte de Hardware

Registradorde Base

Somador

S.O. Int

Endereço relativo

End.Absoluto

Comparador

PCB

TEXT

DS

SS

Registradorde Limite

Page 22: Gerência de Memória Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 7-22

ENDEREÇAMENTO

Registradores utilizados – Registrador de base (Base register)

Endereço inicial do processo

– Registrador de limite (Bounds register)Endereço final do processo

– Estes valores são ajustados quando o processo é carregado ou swapped in

Page 23: Gerência de Memória Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 7-23

ENDEREÇAMENTO

Registradores utilizados – O valor no registrador de base é somado

a um endereço relativo para produzir um endereço absoluto

O resultado é comparado com o registrador de limite

Se não estiver contido no limite permitido, uma interrupção é gerada

Page 24: Gerência de Memória Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 7-24

SWAPPING

Um processo pode ser retirado temporariamente da memória e retornar após algum tempo– Backing store

Área em disco, veloz, grande o suficiente para acomodar as cópias de imagens da memória (de todos ou parte dos usuários)

É necessário prover acesso direto a essas imagens

Page 25: Gerência de Memória Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 7-25

SWAPPING

– Roll out, roll in Variante da técnica swapping utilizada por

algoritmos de escalonamento priority-basedProcessos com baixa prioridade são

swapped-out para dar lugar a processos com alta prioridade

O tempo dispensado – É gasto com a transferência de dados – É proporcional a quantidade de memória

a ser swapped.

Page 26: Gerência de Memória Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 7-26

SWAPPING

S.O.

EspaçoUsuário

P2

P1

M.R.

Backing Store

Page 27: Gerência de Memória Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 7-27

ALOCAÇÃO DE MEMÓRIA

Alocação contígua simples– Comum em S.O. monoprogramáveis– A memória é dividida em duas partes

S.O.Processo usuário

Processo Usuário Sistema Operacional

Memória Real

Page 28: Gerência de Memória Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 7-28

ALOCAÇÃO DE MEMÓRIA

Alocação contígua simples– O programador é responsável por evitar

violar a região onde reside o S.O.Algumas implementações de S.O. delimitam o

espaço máximo de endereçamento do processo usuário

– Uso de overlay

Page 29: Gerência de Memória Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 7-29

ALOCAÇÃO DE MEMÓRIA

Alocação particionada estática (partição fixa)– Motivação: multiprogramação– Divisão da memória em pedaços

Tamanhos – Iguais– diferentes

Parâmetro de sistema– Quando gerado– Quando inicializado

Page 30: Gerência de Memória Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 7-30

ALOCAÇÃO DE MEMÓRIA

Alocação particionada estática (partição fixa)

Cada partição comporta processos com requisitos de memória menor ou igual a partição– Uso ineficiente da memória, causando desperdício

de memória na partição (Fragmentação Interna)– Se todas as partições estiverem alocadas o S.O.

pode utilizar o swapping para carregar mais processos

– Se o processo não couber na partição pode-se utilizar a técnica de overlay (ovl)

Page 31: Gerência de Memória Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 7-31

ALOCAÇÃO DE MEMÓRIA

Alocação particionada estática (partição fixa)

Endereçamento absoluto– Processo só pode ser carregado na mesma região

de memória– Endereçamento virtual

Processo pode ser carregado em qualquer região de memória

Registrador de relocação

Page 32: Gerência de Memória Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 7-32

ALOCAÇÃO DE MEMÓRIA

Alocação particionada estática (partição fixa)– Tamanhos iguais

Fragmento

Pn

P1 P2

Partição 1 Partição 2 Partição 3

S.O.

= Fragmento + Partição Processo não pode ser executado

Memória Real

Page 33: Gerência de Memória Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 7-33

ALOCAÇÃO DE MEMÓRIA

Alocação particionada estática (partição fixa)– Tamanhos iguais

Fragmento

Pn

(Principal)Pn

(OVL)

Carga do Ovl

Carga do Principal

P1 P2

Partição 1 Partição 2 Partição 3

S.O.

Memória Real

Page 34: Gerência de Memória Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 7-34

ALOCAÇÃO DE MEMÓRIA

Alocação particionada estática (partição fixa)– Tamanhos diferentes

Processo é alocado na menor partição que o comporte

Minimiza o problema de fragmentação interna mas não o elimina

Fragmento

P1 P2

Partição 1 Partição 2 Partição 3

S.O.P3

Page 35: Gerência de Memória Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 7-35

ALOCAÇÃO DE MEMÓRIA

Alocação particionada estática (partição fixa)– Tamanhos diferentes

Uma fila de acesso por partição– Otimiza o uso do espaço na partição

Uma fila para o sistema como um todo– Otimiza o uso das partições

Page 36: Gerência de Memória Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 7-36

ALOCAÇÃO DE MEMÓRIA

Alocação particionada estática (partição fixa)– Tamanhos diferentes

Uma fila por partição

ProcessosNovos

S.O.

Page 37: Gerência de Memória Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 7-37

ALOCAÇÃO DE MEMÓRIA

Alocação particionada estática (partição fixa)– Tamanhos diferentes

Uma fila para o sistema

S.O

ProcessosNovos

Page 38: Gerência de Memória Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 7-38

ALOCAÇÃO DE MEMÓRIA

Alocação com partições dinâmicas– Partições no tamanho que o processo

necessitaAs partições são criadas por demandaO número e o tamanho de cada partição varia

no tempo

– ProblemaEspaços não alocáveis são criados

Page 39: Gerência de Memória Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 7-39

Alocação com partições dinâmicas

ALOCAÇÃO DE MEMÓRIA

S.O. P1 P2 P3 P4 Livre

No Boot – t0

t1

t2

t3

t4

tnPn - Não pode “entrar”

Memória Real

Page 40: Gerência de Memória Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 7-40

Alocação com partições dinâmicas

ALOCAÇÃO DE MEMÓRIA

S.O. P1 P2 P3 P5 Livre

No Boot – t0

t1

t2

t3

t5

tnPn - Não pode “entrar”

Livre

t4Terminado após P5 “entrar”

Memória Real

Page 41: Gerência de Memória Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 7-41

Alocação com partições dinâmicas– Problema

A memória pode ficar cheia de buracos “pequenos” e sua soma ser “muito grande”

– SoluçãoRelocação dos processos (compactação)

– Alto custo– Solução viável em hardware

ALOCAÇÃO DE MEMÓRIA

Page 42: Gerência de Memória Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 7-42

ALOCAÇÃO DE MEMÓRIA

Alocação com partições dinâmicas– Estratégias para escolha das partições

Algoritmos de colocaçãoO S.O. deve fazer a escolha do bloco de

memória onde o processo será alojado

Page 43: Gerência de Memória Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 7-43

ALOCAÇÃO DE MEMÓRIA

Alocação com partições dinâmicas– Algoritmos de colocação

BEST-FIT – Escolhe a partição em que o processo deixa o

menor espaço sem utilização– Há uma lista de áreas livres ordenada por tamanho– Desvantagem

Muitas pequenas áreas não contíguas aumentando o problema da fragmentação

Necessidade de compactação mais freqüente Baixo desempenho (a princípio)

Page 44: Gerência de Memória Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 7-44

Alocação com partições dinâmicas– Algoritmos de colocação

WORST-FIT – Escolhe a partição em que o processo deixa o

maior espaço sem utilização– Há uma lista de áreas livres ordenada

reversamente por tamanho– Apesar de utilizar as partições maiores, os

espaços livres maiores permitem o aproveitamento da memória por um maior número de programas

ALOCAÇÃO DE MEMÓRIA

Page 45: Gerência de Memória Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 7-45

ALOCAÇÃO DE MEMÓRIA

Alocação com partições dinâmicas– Algoritmos de colocação

FIRST-FIT – Escolhe o primeiro bloco livre com tamanho

suficiente para carregar o processo– Há uma lista de áreas livres ordenada por

endereços– É rápida, consumindo menos recursos do sistema– Desvantagem

Muitos blocos pequenos no início da memória

Page 46: Gerência de Memória Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 7-46

ALOCAÇÃO DE MEMÓRIA

Alocação com partições dinâmicas– Algoritmos de colocação

NEXT-FIT– Escolhe o primeiro bloco livre a partir da última

alocação que comporte o processo– Há uma lista de áreas livres ordenada por

endereço – Desfaz rapidamente o grande bloco livre no final

da memória– Compactação é necessária para reconstituir um

grande bloco ao fim da memória

Page 47: Gerência de Memória Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 7-47

Alocação com partições dinâmicas– Algoritmos de colocação

Exemplo

ALOCAÇÃO DE MEMÓRIA

19MB 100MB 16MB 110MB 90MB 22MB 52MB1MB

Último bloco alocado

Page 48: Gerência de Memória Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 7-48

Alocação com partições dinâmicas– Algoritmos de colocação

Exemplo

ALOCAÇÃO DE MEMÓRIA

52MB19MB 16MB100MB 110MB 90MB 22MB 1MB

Alocação de 8MBFF

BF

NF

WF

11MB 8MB 14MB 44MB

Page 49: Gerência de Memória Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 7-49

Alocação com partições dinâmicas– Algoritmos de colocação

Exemplo– Suponha a alocação de memória abaixo em uma

arquitetura SMP, 8 processadores, com todos os processos RUNNING.

ALOCAÇÃO DE MEMÓRIA

52MB19MB 16MB100MB 110MB 90MB 22MB 1MB

Page 50: Gerência de Memória Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 7-50

Alocação com partições dinâmicas– Algoritmos de colocação

Exemplo– Suponha pois, a submissão de processos com

áreas 16MB, 52MB, 19MB e 22MB, nessa ordem– Qual será o algoritmo de colocação de melhor

desempenho?

ALOCAÇÃO DE MEMÓRIA

52MB19MB 16MB100MB 110MB 90MB 22MB 1MB

Page 51: Gerência de Memória Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 7-51

Alocação com partições dinâmicas– Algoritmos de colocação

Exemplo– Usando o First-Fit

ALOCAÇÃO DE MEMÓRIA

52MB19MB 16MB100MB 110MB 90MB 22MB 1MB

16MB 19MB52MB 22MB

Page 52: Gerência de Memória Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 7-52

Alocação com partições dinâmicas– Algoritmos de colocação

Exemplo– Usando o Best-Fit

ALOCAÇÃO DE MEMÓRIA

52MB19MB 16MB100MB 110MB 90MB 22MB 1MB

16MB 19MB52MB 22MB

Page 53: Gerência de Memória Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 7-53

Alocação com partições dinâmicas– Algoritmos de colocação

Exemplo– Usando o Next-Fit

ALOCAÇÃO DE MEMÓRIA

52MB19MB 16MB100MB 110MB 90MB 22MB 1MB

16MB 19MB52MB 22MB

Page 54: Gerência de Memória Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 7-54

ALOCAÇÃO DE MEMÓRIA

Alocação com partições dinâmicas– Algoritmos de colocação

Exemplo– Usando o Worst-Fit

52MB19MB 16MB100MB 110MB 90MB 22MB 1MB

16MB 19MB 52MB 22MB

Page 55: Gerência de Memória Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 7-55

PAGINAÇÃO

Particiona a memória – Em blocos pequenos de igual tamanho

Frames ou molduras

Processo – É dividido em blocos pequenos de

tamanho igual aos blocos de memóriaPáginas

Page 56: Gerência de Memória Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 7-56

PAGINAÇÃO

O S.O. mantém uma tabela de páginas para cada processo– Endereço dos frames com cada página

do processo– O endereço de memória é a página mais

um deslocamento dentro desta– Um bit para indicar a presença ou não na

memória Endereço virtual

Entrada da tabela de páginas

Página # Offset

P M Frame #Bits de controle

Page 57: Gerência de Memória Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 7-57

PAGINAÇÃO

O S.O. mantém uma tabela de páginas para cada processo– Bit de modificação

Indica se a página foi alterada ou nãoSe a página não foi alterada, não precisa ser

gravada quando for swapped-outEndereço virtual

Entrada da tabela de páginas

Página # Offset

P M Frame #Bits de controle

Page 58: Gerência de Memória Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 7-58

PAGINAÇÃO

Aspectos– Espaço de endereçamento lógico pode

ser não contíguoA execução do processo de tamanho N

depende da existência de N quadros livres– Os frames tem tamanho potência de dois– Mantém conhecimento dos quadros

livres– Uso de tabela de página para traduzir

endereço lógico para físico– Fragmentação interna (na última página)

Page 59: Gerência de Memória Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 7-59

PAGINAÇÃO

Exemplo01

23456789

1011121314

A.0 A.1 A.2 A.3B.0B.1B.2

C.0 C.1 C.2 C.3

01

23456789

1011121314

A.0A.1A.2A.3

C.0C.1C.2C.3

01

23456789

1011121314

A.0 A.1 A.2 A.3

C.0 C.1 C.2 C.3

D.0D.1D.2

D.3D.4

Page 60: Gerência de Memória Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 7-60

PAGINAÇÃO

Exemplo– Tabelas de páginas

0

123

Processo A

0123

0

12

Processo B

---------

01234

0

123

Processo C

789

10

456

1112

Processo D

Frames Livres

1314

Page 61: Gerência de Memória Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 7-61

PAGINAÇÃO

Tradução de endereços– Gerado pela CPU

Page number– Utilizado com índice na tabela de páginas

Contém o endereço base (frame)Page offset

– Combinado com o endereço base forma o endereço físico

Page 62: Gerência de Memória Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 7-62

PAGINAÇÃO

Tradução de endereços

End. Físico

End. Lógico

Tabela de Páginas

Memória

Física

Page 63: Gerência de Memória Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 7-63

PAGINAÇÃO

Exemplo

Página 0

Página 1

Página 2

Página 3

1

4

3

7

Memória

Física

0

1

2

3

4

5

6

7

Pág. 0

Pág. 2

Pág. 1

Pág. 3Tabela de

Página

Memória Lógica

Page 64: Gerência de Memória Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 7-64

PAGINAÇÃO

Página compartilhadas(Shared Pages)– Código compartilhado (Shared code)

Uma cópia read-only (reentrante) de código compartilhado entre processos– Editores de textos, compiladores, Janelas

O código compartilhado precisa estar na mesma locação de memória no espaço de endereçamento de cada processo

Page 65: Gerência de Memória Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 7-65

PAGINAÇÃO

Página compartilhadas(Shared Pages)– Código e dados privados

Cada processo “pega” uma cópia de código e dados

As páginas de código privado podem estar em qualquer locação do espaço de endereçamento dos processos

Page 66: Gerência de Memória Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 7-66

PAGINAÇÃO

Página compartilhadas(Shared Pages)C1

C2

C3

Dp1

P1

3

4

6

1

C1

C2

C3

Dp2

P1

3

4

6

5

Dp1

C1

C2

Dp2

C3

Tabela de páginas P1

Tabela de páginas P1

Memória Real

Page 67: Gerência de Memória Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 7-67

SEGMENTAÇÃO

Esquema de gerência de memória que suporta a visão da memória pelo usuário

Um programa é a coleção de segmentos– Principal– procedimentos e funções– variáveis locais e variáveis globais– Blocos comuns– Pilha– Tabela de símbolos– Matrizes

Page 68: Gerência de Memória Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 7-68

SEGMENTAÇÃO

Os segmentos dos programas podem não ter o mesmo tamanho– Mas segmentos tem um tamanho máximo

Simplifica o crescimento das estruturas de dados

Page 69: Gerência de Memória Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 7-69

SEGMENTAÇÃO

Arquitetura– Endereço lógico consiste de

<segmento, deslocamento>

Endereço virtual

Registro da tabela de segmentos

Segmento # Offset

P M Bits de controle Tamanh Segmento

Page 70: Gerência de Memória Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 7-70

SEGMENTAÇÃO

Arquitetura– Endereço lógico consiste de

<segmento, deslocamento>– Tabela de Segmentos (Segment table)

Mapeia o endereço – base

Contém o endereço físico onde começa o segmento

– limit Especifica o tamanho do segmento

Page 71: Gerência de Memória Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 7-71

SEGMENTAÇÃO

Arquitetura– Dois registradores

Segment-table base register (STBR) – Aponta para a tabela de segmentos

Segment-table length register (STLR) – Indica o número de segmentos do processo

Page 72: Gerência de Memória Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 7-72

SEGMENTAÇÃO

Arquitetura– Relocação

DinâmicoPor tabela de segmento

– CompartilhamentoSegmento compartilhadosMesmo segmento

Page 73: Gerência de Memória Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 7-73

SEGMENTAÇÃO

Arquitetura– Alocação

First-FitBest-FitFragmentação externa

Page 74: Gerência de Memória Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 7-74

SEGMENTAÇÃO

Arquitetura– Proteção

A cada entrada na tabela de segmento– Bit de validação = 0 segmento ilegal– privilégios read/write/execute

Bits de proteção associados ao segmento– Compartilhamento de código ocorre em nível de

segmento

Page 75: Gerência de Memória Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 7-75

SEGMENTAÇÃO

Translação de endereços

Base + d

Processo Sementação Memória principal

Endereço virtual

Registrador

Tabela de Segmentos

Se

gm

en

to

d

S#

Tam. Base

Seg Table Ptr

Seg # Offset = d

End. Real

+

+