Gerenciamento Básico de...

77
BC1518-Sistemas Operacionais Gerenciamento Básico Gerenciamento Básico de Memória de Memória Prof. Marcelo Z. do Nascimento [email protected] de Memória de Memória Aula Aula 07 07

Transcript of Gerenciamento Básico de...

Page 1: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

BC1518-Sistemas Operacionais

Gerenciamento Básico Gerenciamento Básico de Memóriade Memória

Prof. Marcelo Z. do [email protected]

de Memóriade MemóriaAula Aula 0707

Page 2: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

RoteiroRoteiro� Introdução

� Espaço de Endereçamento Lógico vs. Físico

� Estratégias para escolha de uma partição

� Alocação contígua de Memória� Alocação contígua de Memória

� Swapping

� Paginação

� Segmentação

� Leituras sugeridas

� Exercícios29/03/09 2

Page 3: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

IntroduçãoIntrodução

� Propósito geral de um sistema computacional é executar programas:

� Programa (código + dados) deve estar na

memória;

� Para garantir uso da CPU vários programas são colocados na memória (Multi-programação);

� Necessidade de uma política de gerenciamento da memória;

� Diferentes estratégias são aplicadas de acordo com requisitos, algoritmos e suporte de hardware.

29/03/09 3

Page 4: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

IntroduçãoIntrodução� Memória:

Uma “longa matriz” de bytes => com seus

endereços:

Um processo quer ler dados deve especificar o endereço desejado.endereço desejado.

� Instruções são buscadas na memória assim como os dados;

� O processador somente executa instruções localizadas na memória principal (não há acesso direto a disco).

� http://www.youtube.com/watch?v=mYbYGFWeG_Y29/03/09 4

Page 5: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

IntroduçãoIntrodução

� Tendência atual do software� Lei de Parkinson: “Os programas se expandem para

preencher toda a memória disponível para eles” (adaptação);

� Gerenciador de memória: � Responsável por alocar e liberar espaços na memória

para os processos em execução;

� Responsável por gerenciar o chaveamento entre a memória principal e o disco rigído;

29/03/09 5

Page 6: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

� Instruções pegam endereços de memória como argumento, mas não endereço de disco;

� Para garantir que cada processo tenha um espaço de memória separada:� O registrador de alocação contém o endereço base para

Hardware BásicoHardware Básico

� O registrador de alocação contém o endereço base para realizar a tradução;

Page 7: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

� Proteção ocorre quando o hardware da CPU compara os endereços gerados no modo usuário com os registradores;

� Qualquer tentativa de violar a região, uma trap é enviada para o monitor;O SO que carrega os registradores base e limite.

Hardware BásicoHardware Básico

� O SO que carrega os registradores base e limite.

Page 8: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

Espaço de endereço Logico e Espaço de endereço Logico e FísicoFísico� Endereço Lógico

◦ Gerado pela CPU;◦ Também referenciado como endereço virtual;◦ Programas de usuário trabalham com endereço lógico, não vê o endereço físico real.

8

lógico, não vê o endereço físico real.

� Endereço Físico◦ Endereço que a unidade de memória trabalha.

Page 9: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

Espaço de endereço Logico e Espaço de endereço Logico e FísicoFísico� Ambos são os mesmos se a criação dos endereços ocorrem em◦ Tempo de compilação ou◦ Tempo de carregamento

9

� Pode ser diferente se o endereço é criado em ◦ Tempo de execução◦ � necessidade de mapeamento de endereço lógico para físico

Page 10: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

Unidade de Gerenciamento de Unidade de Gerenciamento de Memória (MMU)Memória (MMU)

� Dispositivo que tem a função de mapear o endereço físico para um endereço virtual;

� Numa MMU, o valor no registrador realocado é adicionado em todos os endereços gerados por um adicionado em todos os endereços gerados por um usuário e enviado para memória;

� O programa de usuário trabalha com endereço lógico, ele nunca trabalha com endereço físico;

� Registrador base é chamado de registrador de realocação.

Page 11: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

Unidade de Gerenciamento de Unidade de Gerenciamento de Memória (MMU)Memória (MMU)

Page 12: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

Carregamento dinâmicoCarregamento dinâmico

� Rotina não é carregada até ser chamada;

� Melhor utilização de espaço de memória, a rotina não utilizada nunca é carregada;

� Útil quando grande quantidade de código é necessário para tratar de casos que ocorrem com pouca frequência;

� Não exige suporte do sistema operacional, é responsabilidade dos usuários.

Page 13: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

Swapping (Troca de Swapping (Troca de processos)processos)� Técnica para resolver o problema da insuficiência

de memória:

� antes: O programa ficava na memória até o fim da sua execução, enquanto os outros esperavam da sua execução, enquanto os outros esperavam por memória livre.

� swapping: O sistema retira temporariamente um programa da memória, coloca-o no disco (swapp out), para a entrada de outro.

29/03/09 13

Page 14: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

� Exemplo: Algoritmo de alternância circular � Quando o quantum expirar, o gerenciador de memória

começará a descarregar o processo que acabou ecarregará outro processo para o espaço da memórialiberada.

Swapping (Troca de Swapping (Troca de processos)processos)

29/03/09 14

Exemplo: Escalonamento por prioridade:

•Alta prioridade aloca mémoria e baixa é eliminado dessa área

Page 15: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

� Pode ocorrer de duas maneiras:

� Com partições fixas:

� Cada vez que um processo é bloqueado, ele é retirado dando o lugar a outro;

Swapping (Troca de Swapping (Troca de processos)processos)

� Não é interessante porque aspartições fixas tendem a desperdiçar espaços de memória;

� Com partições variáveis:

� Tamanho e número de partições variam com os processos;

� Otimiza a utilização da memória, mas é mais complicado na alocação e liberação da memória;

29/03/09 15

Page 16: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

Alocação de MemóriaAlocação de Memória

� Tipos básicos de gerenciamento:

� Alocação não contígua: com chaveamento (Multiprogramação):

� Processos são movidos entre a memória � Processos são movidos entre a memória principal e o disco;

�artifício usado para resolver o problema da falta de memória;

�Se existe MEMÓRIA PRINCIPAL suficiente não há necessidade de se ter divisões;

� Contígua: não há chaveamento entre processos;29/03/09 16

Page 17: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

Sem troca de Processos - Contíguo� Sem chaveamento entre processos: gerenciamento mais simples;

� Desvantagem: apenas um processo na memória;Palmtop

Alocação de MemóriaAlocação de Memória

29/03/09 17

USUÁRIO

0

0xFFF...

RAM

S.O.

S.O.ROM

USUÁRIO

DRIVERS

USUÁRIO

S.O.

ROM

RAM

(a) (b) (c)

RAM

MS-DOS

Page 18: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

Alocação de Memória Alocação de Memória ––Partições fixasPartições fixas

� Múltiplos processos sendo executados;

� Eficiência da CPU;

� Dividir a memória em n partições;� Dividir a memória em n partições;

� N processos na memória;

� Ocorria de modo manual => quando o sistema era inicializado;

29/03/09 18

Page 19: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

Alocação de Memória Alocação de Memória --Partições fixasPartições fixas

Memória Principal

Sistema Operacional

2 KbPartição 1Partição

Tabela de partições

Tamanho

1 2 Kb

29/03/09 19

5 Kb

8 Kb

1 2 Kb

2 5 Kb

3 8 Kb

Partição 2

Partição 3Programas a serem executados:

AE

3 Kb

D

6 Kb

C

1 Kb

B

4 Kb 2 Kb

Page 20: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

Alocação de Memória Alocação de Memória --Partições fixasPartições fixas

Partição 4

Partição 3

800 k

700 k Partição 4

Partição 3Fila de entrada

29/03/09 20

Partição 1

S.O.

Partição 2

0

Partição 1

S.O.

Partição 2

0

Partição está cheia OS/360 (IBM)

Page 21: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

Alocação de Memória Alocação de Memória --Partições fixasPartições fixas

� Tabela de Alocação de Partições: área livre e ocupada pelos processos.

Memória Principal

Sistema OperacionalPartição Tamanho Livre

29/03/09 21

1

2

3

Programa C

Área livre

Programa B

1 2 Kb Não

2 5 Kb Sim

3 8 Kb Não

Page 22: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

Alocação de Memória Alocação de Memória --Partições fixasPartições fixas

� Vantagem:�Multiprogramação: Partições fixas.

� Desvantagens:� Desvantagens:�Utilização parcial das partições fixas�Concomitante criação de espaços ociosos:

� fragmentação interna – programa é carregado em uma partição um pouco maior que o necessário.

29/03/09 22

Page 23: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

Alocação de Memória Alocação de Memória --Partições fixasPartições fixas

� Fragmentação Interna

Memória Principal

Sistema Operacional

Programa C

29/03/09 23

1 Kb

3 Kb

5 Kb

Programa C

Programa A

Programa E

BD

6 Kb 4 Kb

Page 24: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

Alocação de Memória Alocação de Memória --Partições fixasPartições fixas

� Pergunta: Descreva os benefícios e desvantagens de tamanhos de partições grandes e pequenos.

• Partições maiores permitem que programas grandes executem, mas resultam em fragmentação interna para

29/03/09 24

executem, mas resultam em fragmentação interna para programas pequenos.

• Partições pequenas reduzem a quantidade de fragmentação interna e aumenta o nível da multiprogramação, permitindo que mais programas residam na memória ao mesmo tempo, mas limita o tamanho do programa.

Page 25: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

� O processo recebe apenas o volume de memória que requisita quando é carregado para processamento;

Memória PrincipalMemória Principal

Alocação de Memória Alocação de Memória --PPartições Dinâmicasartições Dinâmicas

29/03/09 25

Sistema OperacionalSistema Operacional

4 Kb

1 Kb

3 Kb

5 Kb

2 Kb

15 Kb

Programa C

Programa B

Programa A

Programa EBA

2 Kb

E

3 Kb

C

1 Kb 4 Kb

Page 26: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

� Fragmentação Externa

Memória Principal

Sistema Operacional

Alocação de Memória Alocação de Memória --PPartições Dinâmicasartições Dinâmicas

29/03/09 26

4 Kb

3 Kb

5 Kb

Programa C

Programa A

D

6 Kb

Page 27: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

� Solução para a Fragmentação Externa

Memória PrincipalMemória Principal

Sistema OperacionalSistema Operacional Espaços livres adjacentes

Alocação de Memória Alocação de Memória --PPartições Dinâmicasartições Dinâmicas

29/03/09 27

8 Kb

4 Kb

3 Kb

5 Kb5 Kb

Programa C

Programa APrograma A

adjacentes são reunídos

Page 28: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

� Solução para a Fragmentação Externa

Memória PrincipalMemória Principal

Sistema OperacionalSistema Operacional

Programa C

Alocação de Memória Alocação de Memória --PPartições Dinâmicasartições Dinâmicas

29/03/09 28

Relocação

4 Kb

3 Kb

12 Kb

5 Kb

Programa C

Programa C

Programa A

Programa A

Realocação dinámica

Page 29: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

Estratégias para escolha da Estratégias para escolha da partiçãopartição

� Para evitar ou diminuir o problema da fragmentação;

� São propostos 3 técnicas na alocação dinâmica: � Best-fit:Best-fit:

�Escolhe a melhor segmento, ou seja, aquela em que o programa deixa o menor espaço sem utilização;

�A tendência é que a memória fique cada vez mais com pequenas áreas livres não contíguas

29/03/09 29

Page 30: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

� Best-fit:

Memória Principal

Sistema Operacional

Sistema Operacional

Programa C

fit

Estratégias para escolha da Estratégias para escolha da partiçãopartição

29/03/09 30

4 Kb

3 Kb

5 Kb

Programa C

Programa A

F

1 Kb2 Kb

Programa F

Programa A

Área livre

(a) B

est-f

it

Page 31: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

� Worst-fit:�Escolhe o pior segmento, ou seja, aquela em que o programa deixa o maior espaço sem utilização;

Deixando espaços maiores, a tendência é

Estratégias para escolha da Estratégias para escolha da partiçãopartição

�Deixando espaços maiores, a tendência é permitir que um maior número de programas utilize a memória, diminuindo o problema da fragmentação.

29/03/09 31

Page 32: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

� Worst-fit:

Memória Principal

Sistema Operacional

4 Kb

Sistema Operacional

Estratégias para escolha da Estratégias para escolha da partiçãopartição

29/03/09 32

4 Kb

3 Kb

5 Kb

Programa C

Programa A

F

1 Kb 4 Kb

Programa C

Programa A

Área livre

Programa F(b) Worst-fit

Page 33: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

� First-fit:�escolhe o primeiro segmento livre que seja suficiente para carregar o programa.

É a estratégia mais rápida entre elas.

Estratégias para escolha da Estratégias para escolha da partiçãopartição

�É a estratégia mais rápida entre elas.

29/03/09 33

Page 34: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

Memória Principal

Sistema Operacional

4 KbSistema Operacional

Programa F

Estratégias para escolha da Estratégias para escolha da partiçãopartição

29/03/09 34

4 Kb

3 Kb

5 Kb

Programa C

Programa A

F

1 Kb

3 Kb

Programa C

Programa A

Área livre

Programa F

(c) First-fit

Page 35: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

� Vinculação de endereços feita em execution timefaz com que endereços físicos e lógicos se diferenciem:� Esquema de tradução é necessário.

� O mapeamento de endereços em tempo de

Proteção e Mapeamento da Proteção e Mapeamento da MemóriaMemória

� O mapeamento de endereços em tempo de execução é feita pela MMU (Memory Management Unit);� Mapeamento permite escolher entre os métodos

diferentes de alocação de memória (Paginação, segmentação).

� O registrado base (base register) => chamado de relocation register.

29/03/09 35

Page 36: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

� O registrador de relocação contém o endereço base para realizar a tradução.

� É adicionado a todo endereço gerado por um processo de usuário no momento em que este é

Proteção e Mapeamento da Proteção e Mapeamento da MemóriaMemória

processo de usuário no momento em que este é enviado à memória.

Page 37: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

Endereço base

Proteção e Mapeamento da Proteção e Mapeamento da MemóriaMemória

29/03/09 37

Page 38: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

Gerenciamento de memória com Gerenciamento de memória com Mapa de BitsMapa de Bits

� O SO deve gerenciar a memória atribuída de forma dinâmica;

� Duas técnicas são empregadas:

� Gerenciamento de memória com listas � Gerenciamento de memória com listas encadeadas

� Técnica com Mapa de Bits:� Memória é dividida em unidades de alocação => kbytes;� Cada unidade corresponde a um bit no mapa:

0 - livre1 – ocupado

29/03/09 38

Page 39: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

Gerenciamento de memória com Gerenciamento de memória com Mapa de BitsMapa de Bits

39

a) Parte da memória com 5 segmentos de processos e 3 segmentos de memória livre

− pequenos riscos simétricos denotam as unidades de alocação

− regiões sombreadas denotam segmentos livresb) Mapa de bits correspondentec) Mesmas informações em uma lista encadeada

Page 40: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

Gerenciamento de memória com listas encadeadas:

� Cada item da lista encadeada construída tem 2 estados (P - processo, H - livre):

Gerenciamento de memória com Gerenciamento de memória com Mapa de BitsMapa de Bits

� Endereço de início� Comprimento � Ponteiro para próximo item

� Quando termina um determinado processo => junta o espaço liberado com seus vizinhos.

29/03/09 40

Page 41: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

Gerenciamento de memória com Gerenciamento de memória com Lista EncadeadaLista Encadeada

41

Quatro combinações de vizinhança para o processo X em término de execução

Page 42: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

Paginação: Alocação de Paginação: Alocação de memória não contíguomemória não contíguo

� Processo é alocado na memória onde há espaço disponível;

� Divide a memória física com tamanho de blocos fixos denominado quadros (definidos pelo hardware).◦ O tamanho da página é uma potência de 2, variando de 512

42

◦ O tamanho da página é uma potência de 2, variando de 512 bytes até 16 MB

◦ O S.O. guarda todos os quadros livres

� Divide a memória lógica em blocos do mesmo tamanho chamado de página.◦ Para executar um programa com tamanho de n páginas, é necessário encontrar n páginas livre para carregá-lo.

◦ Configura uma tabela de páginas para traduzir o endereço lógico em endereço físico

Page 43: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

EsquemaEsquema de de traduçãotradução de de EndereçoEndereço

� O endereço gerado pela CPU é dividido em :

◦ Número de Página (p) – usado como um indice dentro de uma tabela de páginas a qual contém o endereço base de cada página na memória física

◦ Página offset – deslocamento (d) – combinada com endereço

43

◦ Página offset – deslocamento (d) – combinada com endereço base define o endereço de memória física que é enviado para unidade de memória

◦ Para um dado espaço de endereço lógico 2m e tamanho de página 2n

page number page offset

p d

m - n n

Page 44: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

EsquemaEsquema de de traduçãotradução de de EndereçoEndereço

44

Page 45: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

EsquemaEsquema de de traduçãotradução de de EndereçoEndereço

45

Page 46: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

Exemplo de PáginaçãoExemplo de Páginação

Tamanho da página = 4 bytesTamanho da memória = 8 páginas = 32 bytesEndereço lógico 0:página = 0/4 = 0, offset = 0%4 = 0mapeado � quadro 5 + offset 0 �

46

mapeado � quadro 5 + offset 0 �endereço físico 20

Endereço lógico 13:

página = 13/4 = 3, offset = 13%4 = 1mapeado � quadro 2 + offset 1 �endereço físico 9

Page 47: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

Quadros LivresQuadros Livres

47

Before allocation After allocation

Todo o processo deve ter sua própria tabela de página

Page 48: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

Implementação da tabela de páginasImplementação da tabela de páginas

� Tabela de página é guardada na memória principal◦ Registrador de base da tabela de páginas (PTBR) aponta para a tabela de página;

◦ Page-table length register – PRLR => indica o

48

tamanho da tabela de página.� Mas qual a desvantagem de guardar a tabela de páginas na memória?◦ Todo acesso a instruções requer dois acessos a memória: um para tabela de página e outro para as instruções.

Page 49: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

Implementação da tabela de páginasImplementação da tabela de páginas

� Solução:

� Usar uma cache especial, menor, de pesquisa rápida chamada Tranlation Look-aside Buffer (TLB)

� É uma memória associativa de alta velocidade

49

� Cada entrada da TLB consistem em duas partes◦ Uma chave e um valor

� Quando recebe um item, o item é comparado com todas as chaves.◦ Atualmente: Intel Pentium Core i7 - com 512 entradas

Page 50: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

Paginação com TLBPaginação com TLB

50

Falha

Page 51: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

Proteção Proteção

� Proteção de memória é realizada pela proteção dos bits associadas a cada quadro.

� Esses bits costumam ser mantidos na tabela de páginas

51

de páginas ◦ Um bit pode definir uma página como sendo de leitura/escrita ou somente leitura

� Outro bit (valid-invalid) pode ser usado◦ “valid” indica onde a página esta no espaço do endereço do processo, isto é, uma página válida para acesso

◦ “invalid” indica que a página não está no espaço de endereço do processo

Page 52: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

O bit Valid (v) or Invalid (i) na O bit Valid (v) or Invalid (i) na tabela de páginatabela de página

52

Page 53: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

Estrutura de tabela de páginaEstrutura de tabela de página

� A maioria dos sistemas computadorizados modernos admite um grande espaço de endereço;

� Nesse contexto, a própria tabela de página se torna excessivamente grande;Uma solução é usar um algoritmo de paginação com

53

� Uma solução é usar um algoritmo de paginação com dois níveis, em que a própria tabela de página também é paginada:◦ Exemplo: máquina de 32 bits => 20 bits ficam para páginas e 12 para deslocamento

Número da página descolcamento

pi p2 d

Page 54: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

Estrutura de tabela de páginaEstrutura de tabela de página

54

Page 55: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

Estrutura de tabela de páginaEstrutura de tabela de página

55

• O SO cria a tabela de página externa e a página da tabela de página.

Page 56: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

Estrutura de tabela de páginaEstrutura de tabela de página

• Em um espaço de endereçamento lógico de 64 bits, o esquema de endereço em 2 níveis não é mais adequado

• Usa-se um esquema de 3 níveis.

56

Page 57: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

Tabela de página invertidaTabela de página invertida

� Uma entrada para cada quadro da memória física;� A entrada consiste no endereço virtual da página armazenado nesse local da memória física com informações sobre o precesso que possui essa página.

57

página.

Page 58: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

Gerenciamento de Memória Gerenciamento de Memória SegmentaçãoSegmentação� Esquema de gerenciamento de memória que suporta visão do usuário da memória.

� Diferente da paginação?

◦ Difere fundamentalmente da paginação, onde o programa é dividido em páginas de iguais tamanhos que muitas vezes contêm instruções de mais de um módulo de programa.

06/04/09 58

Page 59: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

Segmentação:

� Aproveita a modularidade do programa: a memórianão é dividida em tamanhos fixos e sim conforme aestruturação do programa.

Gerenciamento de Memória Gerenciamento de Memória SegmentaçãoSegmentação

estruturação do programa.

� Isso permite que os programas sejam divididoslogicamente em sub-rotinas e estruturas de dados ecolocados em blocos de informações na memória.

06/04/09 59

Page 60: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

Compilador cria segmentos:� As variáveis globais;

� Chamadas de procedimento que armazenaparâmetros e endereços de retorno;

Gerenciamento de Memória Gerenciamento de Memória SegmentaçãoSegmentação

Chamadas de procedimento que armazenaparâmetros e endereços de retorno;

� A porção do código para cada procedimento oufunção;

� As variáveis locais do procedimento ou função;

06/04/09 60

Page 61: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

1

1

4

Gerenciamento de Memória Gerenciamento de Memória SegmentaçãoSegmentação

2

4

2

3

Espaço do usuário Espaço de memória física

Page 62: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

Pilha

Árvorede Parse

Livre

Tarefa: Compilação

20k

12k 12k

Gerenciamento de Memória Gerenciamento de Memória SegmentaçãoSegmentação

06/04/09 62

de Parse

Constantes

FonteTabela

de Símbolos

Espaço de EndereçamentoVirtual

Tabelade

SímbolosFonte

Constantes0k 0k0k0k

12k

02k

Pilha

12k

Segmentos (0-3)

Page 63: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

Arquitetura de Segmentação Arquitetura de Segmentação

� Tabela de segmento – mapeia o endereço físico; cada tabela é composta por:◦ base – contém o endereço físico inicial onde o segmento reside na memória

◦ limite – especifica o tamanho do segmento

63

� Segment-table base register (STBR) aponta para a localização da tabela de segmento na memória

� Segment-table length register (STLR) indica o número de segmento usado por um programa;

número do segmento s é legal se s < STLR

Page 64: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

� Segmentação – Proteção:

◦ Cada segmento representa uma porção semântica do programa – segmentos que são instruções, enquanto outros são dados.

GerenciamentoGerenciamento de de MemóriaMemóriaVirtual Virtual -- SegmentaçãoSegmentação

◦ Os segmentos de instruções podem ser definidos como somente de leitura ou de execução;

◦ O hardware de mapeamento verifica o bit de proteção associado com cada entrada na tabela de segmentos para evitar acesso ilegal.

06/04/09 64

Page 65: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

Arquitetura de Segmentação Arquitetura de Segmentação

65

Page 66: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

Arquitetura de Segmentação Arquitetura de Segmentação

66

Page 67: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

� Segmentação:

◦ Problemas encontrados => embora haja espaço na memória, não há espaço contínuo:� Política de re-alocação: um ou mais blocos são realocados para abrir espaço contínuo (pode criar fragmentação

Gerenciamento de Memória Gerenciamento de Memória SegmentaçãoSegmentação

para abrir espaço contínuo (pode criar fragmentação externa);

◦ Necessidade:� Política de compactação: para que todos os espaços sejam compactados;

� Política (bloquear): fila de espera;� Política de troca: substituição de segmentos;

06/04/09 67

Page 68: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

◦ Técnica de gerenciamento onde o endereçamentológico é divido em segmentos e, por sua vez, cadasegmento é dividido fisicamente em páginas.

◦ O endereço virtual é formado pelo nº do segmento

Gerenciamento de Memória Gerenciamento de Memória Virtual Virtual –– Segmentação com PaginaçãoSegmentação com Paginação

◦ O endereço virtual é formado pelo nº do segmento(NSV), um nº da página (NPV) dentro dessesegmento e um deslocamento dentro da página.

� O nº do segmento aponta para uma entrada na tabela desegmentos, que por sua vez aponta para uma tabela depáginas.

06/04/09 68

Page 69: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

◦ Para programador: sua aplicação continua sendomapeada por segmentos de tamanhos diferentes, emfunção das subrotinas e estruturas definidas noprograma.

Gerenciamento de Memória Gerenciamento de Memória Virtual Virtual –– Segmentação com PaginaçãoSegmentação com Paginação

◦ O sistema trata cada segmento com um conjunto depáginas de mesmo tamanho, mapeadas por uma tabelade páginas associada ao segmento.

◦ Um segmento não precisa estar contíguo na memóriaprincipal, eliminando o programa de fragmentaçãoexterna.� Exemplo: Arquitetura Pentium segue esse modelo

06/04/09 69

Page 70: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

Exemplo: Intel PentiumExemplo: Intel Pentium� Suporta:

◦ Segmentação e segmentação com paginação

� A CPU gera o endereço lógico:◦ Que são dados à unidade de segmentação;

� A unidade produz um endereço linear para cada endereço lógico.

70

endereço lógico.� O enderço linear é dado à unidade de paginação, que por sua vez gera o endereço físico na memória;◦ Essas unidades foram o equivalente a unidade de gerência MMU.

Page 71: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

� Tamanho máximo do segmento: 4 GB

�Número máximo de segmentos por processo é 16 KB.

Segmentação: Intel PentiumSegmentação: Intel Pentium

71

segmentos por processo é 16 KB.�8 K privados �mantidas na tabela de descritor local

�8 K compartilhado �mantidados na tabela de descritor global

Page 72: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

� Tamanho da página :� 4 KB � paginação em 2

níveis ou� 4 MB � páginação em

um nível;

p1

p2

d

Paginação: Intel PentiumPaginação: Intel Pentium

72

um nível;�Os 10 bits mais alta

ordem referencia o diretório de página

Page 73: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

Linux com Paginação em 3 Níveis

No Pentium, tamanho do diretório do meio = 0

Page 74: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

SumárioSumário� CPU gera endereço lógico

� Alocação de memória contíguo

� Primeiro, Melhor ou Pior Ajuste

74

� Paginação: alocação não contíguo de memória

� Segmentação: tamanho variável de acordo com a

visao de usuário

� Segmentação e Paginação no Pentium

Page 75: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

Leituras Sugeridas

� Silberschatz, A., Galvin, P. B. Gagne, G. Sistemas Operacionais com Java. 7º edição. Editora Campus, 2008 .

� TANENBAUM, A. Sistemas Operacionais Modernos. Rio de Janeiro: Pearson, 3 ed. 2010

Page 76: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

Acesse o link abaixo:

http://hostel.ufabc.edu.br/~marcelo.nascimento/

Nota de Aula

nto/

Obrigado!!!

Page 77: Gerenciamento Básico de Memóriahostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO... · BC1518-Sistemas Operacionais Gerenciamento Básico de Memória Prof. Marcelo

ExercíciosExercícios1 - Suponha um sistema de 128 Kb de memória principal e que utilize

um sistema operacional de 64 Kb que implemente alocaçãoparticionada estática realocável. Considere também que o sistemafoi implementado em três partições: P1(8Kb), P2(24Kb) eP3(32Kb). Calcule a fragmentação interna da memória principalapós a carga de três programas: PA, PB e PC.A)P1->PA(6 Kb); P2->PB(20Kb); P3->PC(28Kb);B) P1->PA(4 Kb); P2->PB(16 Kb); P3->PC(26Kb);C)P1->PA(8 Kb); P2->PB(24Kb); P3->PC(32Kb);C)P1->PA(8 Kb); P2->PB(24Kb); P3->PC(32Kb);

2 – Considere o exercício anterior, seria possível executar quatroprogramas concorrentemente utilizando apenas a técnica dealocação de particionamento estática realocável? Se for possível,como? Considerando ainda o mesmo exercício, seria possívelexecutar um programa de 36 Kb? Se for possível, como?

3 – O que é fragmentação interna e fragmentação externa? Qual otipo de fragmentação apresentado no método de gerenciamento departições fixas?

29/03/09 77