so 09 gerencia de memoria (rev) - engenharia de sistemasrev).pdf · sistemas operacionais -...

83
Sistemas Operacionais Edeyson Andrade Gomes www.edeyson.com.br Gerência de Memória

Upload: duongthu

Post on 10-Feb-2019

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Sistemas Operacionais

Edeyson Andrade Gomes www.edeyson.com.br

Gerência de Memória

Page 2: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Sistemas Operacionais - Introdução Edeyson A. Gomes 2

Roteiro da Aula

w Gerência de Memória n  Metas n  Algoritmos

Page 3: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Sistemas Operacionais - Introdução Edeyson A. Gomes 3

Gerência de Memória

w  Programas só executam se estiverem na memória principal;

w  Funções do Gerenciador de Memória: n  Controlar alocação de processos;

l  Novos processos; l  Múltiplos processos; l  Término de processo; l  Crescimento e diminuição

w  Dados e Pilha

Page 4: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Sistemas Operacionais - Introdução Edeyson A. Gomes 4

Gerência de Memória

w Modelos n  Partições

l  Estáticas (Fixas) l  Dinâmicas (Variáveis)

n  (Swapping) n  Paginação n  Segmentação

Page 5: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Sistemas Operacionais - Introdução Edeyson A. Gomes 5

Gerência de Memória

w Endereço Lógico X Físico n  Problema:

l  Usuário cria programa. Ex.: prog1.c l  O Compilador gera código intermediário

w  Cl –c prog1.c §  prog1.obj

l  Esse código gera Executável? w  Não é possível encontrar o endereço da função soma().

#include <stdio.h> void main() { int x; x = soma (10, 20); printf("X = %d", x); }

Page 6: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Sistemas Operacionais - Introdução Edeyson A. Gomes 6

Gerência de Memória

w Endereço Lógico X Físico n  Problema:

l  Usuário cria programa. Ex.: soma.c l  O Compilador gera código intermediário

w  Cl –c soma.c §  soma.obj

l  Esse código gera Executável? w  Não é possível encontrar o endereço de início de execução è main().

int soma(int x, int y) { return x + y; }

Page 7: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Sistemas Operacionais - Introdução Edeyson A. Gomes 7

Gerência de Memória

w Endereço Lógico X Físico n  Problema:

l  Como gerar prog1.exe? w  Compilando-os e ligando-os

§  Cl prog1.c soma.c

n  Entendendo...

Page 8: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Sistemas Operacionais - Introdução Edeyson A. Gomes 8

Gerência de Memória

w Endereço Lógico X Físico n  Todo processo referencia endereço lógico n  O compilador não sabe onde o programa vai

executar na memória l  Logo, seu primeiro endereço é 0 l  O que significa chamar soma()?

w  Executar um CALL para seu endereço de memória §  Endereço lógico

Page 9: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Sistemas Operacionais - Introdução Edeyson A. Gomes 9

Gerência de Memória

w  Alocação Contígua Simples n  Partição Fixa n  Implementada nos primeiros sistemas e ainda usada nos

monoprogramáveis (monotarefa); n  Memória é dividida em duas áreas:

l  Sistema Operacional e processo do usuário;

n  Usuário não pode usar uma área maior do que a disponível;

n  Sem proteção.

Page 10: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Sistemas Operacionais - Introdução Edeyson A. Gomes 10

Gerência de Memória

w Alocação Contígua Simples

Sistema Operacional

Área para Processo

do usuário

Memória Principal Registrador

Base

Registrador de proteção delimita as áreas do sistema operacional e do usuário; Sistema verifica acessos à memória em relação ao endereço do registrador.

Registrador Limite

Page 11: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Sistemas Operacionais - Introdução Edeyson A. Gomes 11

Gerência de Memória

w Alocação Contígua Simples

Sistema Operacional

Área para Processo

do usuário

0

800K

1024K Nesse modelo, o SO foi carregado na memória alta. Se o processo faz referência ao endereço real 2050, ele lhe pertence. Registrador Base = 0K Registrador Limite = 800K Suponha que prog1.c executando referencie o endereço lógico 100. Qual o endereço físico? Resp: 0K + 100 Nesse caso, o endereço lógico coincide com o físico.

Page 12: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Sistemas Operacionais - Introdução Edeyson A. Gomes 12

Gerência de Memória

w Alocação Contígua Simples

Sistema Operacional

Prog1.c

0

800K

1024K Qual o maior endereço lógico referenciável por Prog1.c? Resp: 800K -1 pois é o valor do Limite. Mais que isso invade o SO. O Espaço de endereços de Prog1.c é [0, 800K)

Page 13: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Sistemas Operacionais - Introdução Edeyson A. Gomes 13

Gerência de Memória

w Alocação Contígua Simples

Sistema Operacional

Área para Processo

do usuário

0

300K

1024K Nesse modelo, o SO foi carregado na memória baixa. Se o processo faz referência ao endereço real 2050, ele NÃO lhe pertence. Registrador Base = 300K Registrador Limite = 724K Suponha que prog1.c executando referencie o endereço lógico 100. Qual o endereço físico? Resp: 300K + 100 Nesse caso, o endereço lógico NÃO coincide com o físico.

Page 14: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Sistemas Operacionais - Introdução Edeyson A. Gomes 14

Gerência de Memória

w Alocação Contígua Simples

Sistema Operacional

Prog1.c

0

300K

1024K Qual o maior endereço lógico referenciável por Prog1.c? Resp: [724K -1], pois é o valor do Limite. Mais que isso ele sai da memória. O Espaço de endereços físicos de Prog1.c é [300K, 1024K) O Espaço de endereços físicos do SO é [0, 300K)

Page 15: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Sistemas Operacionais - Introdução Edeyson A. Gomes 15

Alocação Contígua Simples

w  Processos de usuário limitados pelo tamanho da memória principal disponível.

w  Solução: n  Dividir o programa em módulos ou partes; n  Permitir execução independente de cada módulo, usando

a mesma área de memória; n  Técnica: Overlay (sobreposição);

Page 16: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Sistemas Operacionais - Introdução Edeyson A. Gomes 16

Alocação Contígua Simples

w  Permite ao programador “expandir” os limites da memória principal;

w  Overlay – Área de memória comum onde módulos compartilham mesmo espaço;

PROG.EXE 200KB

Cadastro.OVL 400KB

Relatório.OVL 350KB

Manutenção.OVL 420KB

Page 17: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Sistemas Operacionais - Introdução Edeyson A. Gomes 17

Partições Fixas

w  Evolução dos sistemas operacionais demandou uso da memória por vários usuários simultaneamente;

w  Memória foi dividida em áreas de tamanho fixo: partições; n  Tamanho das partições era estabelecido no boot, em função do

tamanho dos programas; n  Reparticionamento demandava novo boot com a nova configuração.

w  Tipos de Alocação Particionada: n  Alocação Particionada Estática:

l  Absoluta e Relocável; n  Alocação Particionada Dinâmica.

Page 18: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Sistemas Operacionais - Introdução Edeyson A. Gomes 18

Espaço de Endereçamento

w Endereço Lógico ou Virtual n  Gerado pela CPU n  Espaço de endereçamento lógico

w Endereço Físico n  Enviado à memória

l  Carregado no REM

n  Espaço de endereçamento físico

Page 19: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Sistemas Operacionais - Introdução Edeyson A. Gomes 19

Espaço de Endereçamento

w Mapeamento do Espaço Virtual para Físico n  Só é necessário se a associação é feita em tempo

de execução n  Usuário trata endereços lógicos, nunca físicos n  Suporte de hardware: MMU

l  Memory Management Unit l  Exemplo: Registrador de relocação

Page 20: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Sistemas Operacionais - Introdução Edeyson A. Gomes 20

Espaço de Endereçamento

CPU Memória

Registrador de relocação

14000

+

MMU

endereço lógico

346

endereço físico

14346

Page 21: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Sistemas Operacionais - Introdução Edeyson A. Gomes 21

Técnicas de Gerenciamento

w Carga Dinâmica n  Rotinas não são carregadas até serem chamadas

l  Rotinas de exceção podem não ser chamadas

n  Melhor utilização do espaço de memória n  Não é necessário suporte do SO

Page 22: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Sistemas Operacionais - Introdução Edeyson A. Gomes 22

Técnicas de Gerenciamento

w Ligação Dinâmica n  Aplica-se às bibliotecas do sistema

w Ligação Estática n  Todos módulos fazem parte da imagem gerada

Page 23: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Sistemas Operacionais - Introdução Edeyson A. Gomes 23

Técnicas de Gerenciamento

w Ligação Dinâmica n  Bibliotecas compartilhadas

l  Trecho de código (stub) indica como localizar na memória ou carregar do disco w  Endereço fica armazenado para futuras referências

l  Economia de espaço em disco e na memória l  Atualização das bibliotecas sem nova linkedição

n  Requer suporte do SO l  Acesso a endereços fora dos limites do processo

Page 24: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Sistemas Operacionais - Introdução Edeyson A. Gomes 24

Técnicas de Gerenciamento

w Overlays n  Sobreposição de dados e instruções

desnecessários n  Permite que um processo seja maior que o

espaço alocado a ele n  Complexa responsabilidade passada ao

programador l  Eventual suporte de compiladores

Page 25: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Sistemas Operacionais - Introdução Edeyson A. Gomes 25

Alocação de Memória

w  Alocação Particionada Estática n  (Partições Fixas) n  SOs multiprogramáveis – Ambiente batch

l  Implementado no IBM OS/MFT

n  Partições l  Porções de memória de tamanho fixo l  Controla o grau de multiprogramação

n  Tamanho da partição estabelecido na fase de inicialização do sistema (boot)

n  SO mantém Fila de Entrada e Tabela de Partições

Page 26: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Sistemas Operacionais - Introdução Edeyson A. Gomes 26

Alocação de Memória

Tabela de Partições

Partição Tamanho 1 2 3

2KB 5KB 8KB

Memória Principal

Sistema Operacional

Partição 1

Partição 2

Partição 3

2KB

5KB

8KB

E D C B A

3KB 5KB 1KB 6KB 7KB

Processos a serem carregados

Page 27: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Sistemas Operacionais - Introdução Edeyson A. Gomes 27

Alocação de Memória

Tabela de Partições

Memória Principal

Sistema Operacional

Partição 1

Partição 2

Partição 3

-

-

-

E D C B A

3KB 5KB 1KB 6KB 7KB

Processos a serem carregados

Partição Tamanho ID 1 2 2 5 3 8

Page 28: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Sistemas Operacionais - Introdução Edeyson A. Gomes 28

Alocação de Memória

Tabela de Partições

Memória Principal

Sistema Operacional

Partição 1

Partição 2

Partição 3

-

-

A – 7KB

E D C B

3KB 5KB 1KB 6KB

Processos a serem carregados

Partição Tamanho ID 1 2 2 5 3 8 A

Page 29: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Sistemas Operacionais - Introdução Edeyson A. Gomes 29

Alocação de Memória

Tabela de Partições

Memória Principal

Sistema Operacional

Partição 1

Partição 2

Partição 3

C – 1 KB

-

A – 7KB

E D B

3KB 5KB 6KB

Processos a serem carregados

Partição Tamanho ID 1 2 C 2 5 3 8 A

Page 30: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Sistemas Operacionais - Introdução Edeyson A. Gomes 30

Alocação de Memória

Tabela de Partições

Memória Principal

Sistema Operacional

Partição 1

Partição 2

Partição 3

C – 1 KB

D – 5 KB

A – 7KB

E B

3KB 6KB

Processos a serem carregados

Partição Tamanho ID 1 2 C 2 5 D 3 8 A

Page 31: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Sistemas Operacionais - Introdução Edeyson A. Gomes 31

Alocação de Memória

Tabela de Partições

Memória Principal

Sistema Operacional

Partição 1

Partição 2

Partição 3

C – 1 KB

D – 5 KB

E B

3KB 6KB

Processos a serem carregados

Partição Tamanho ID 1 2 C 2 5 D 3 8

Page 32: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Sistemas Operacionais - Introdução Edeyson A. Gomes 32

Alocação de Memória

Tabela de Partições

Memória Principal

Sistema Operacional

Partição 1

Partição 2

Partição 3

C – 1 KB

D – 5 KB

B – 6 KB

E

3KB

Processos a serem carregados

Partição Tamanho ID 1 2 C 2 5 D 3 8 B

Page 33: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Sistemas Operacionais - Introdução Edeyson A. Gomes 33

Alocação de Memória

Tabela de Partições

Memória Principal

Sistema Operacional

Partição 1

Partição 2

Partição 3

C – 10 KB

D – 50 KB

B – 60 KB

O processo C pode acessar o endereço físico 2050 (2K + 2)? Não, essa é uma área do SO. E o endereço 225850? Não, ele é da partição 3.

Partição Tamanho ID 1 20K C 2 50K D 3 80K B

0

150K

170K

220K

300K

Page 34: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Sistemas Operacionais - Introdução Edeyson A. Gomes 34

Alocação de Memória

Tabela de Partições

Partição Base Limite Processo ID

Tamanho Processo

0 0K 124K SO 124K 1 124K 50K 2 174K 150K 3 324K 250K 4 574K 450K

SO

P1

10K

P2

40K

P3

70K

P4

110K

P5

130K

P6

180K

P7

260K

P8

300K

Como alocar os processos na memória?

Page 35: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Sistemas Operacionais - Introdução Edeyson A. Gomes 35

Alocação de Memória

Tabela de Partições

Partição Base Limite Processo ID

Tamanho Processo

0 0K 124K SO 1 124K 50K P1 10K 2 174K 150K 3 324K 250K 4 574K 450K

SO

P1

P2

40K

P3

70K

P4

110K

P5

130K

P6

180K

P7

260K

P8

300K

Como alocar os processos na memória?

Page 36: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Sistemas Operacionais - Introdução Edeyson A. Gomes 36

Alocação de Memória

Tabela de Partições

Partição Base Limite Processo ID

Tamanho Processo

0 0K 124K SO 124K 1 124K 50K P1 10K 2 174K 150K P2 40K 3 324K 250K 4 574K 450K

SO

P1

P2

P3

70K

P4

110K

P5

130K

P6

180K

P7

260K

P8

300K

Como alocar os processos na memória?

Page 37: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Sistemas Operacionais - Introdução Edeyson A. Gomes 37

Alocação de Memória

Tabela de Partições

Partição Base Limite Processo ID

Tamanho Processo

0 0K 124K SO 124K 1 124K 50K P1 10K 2 174K 150K P2 40K 3 324K 250K P3 70K 4 574K 450K

SO

P1

P2

P3

P4

110K

P5

130K

P6

180K

P7

260K

P8

300K

Como alocar os processos na memória?

Page 38: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Sistemas Operacionais - Introdução Edeyson A. Gomes 38

Alocação de Memória

Tabela de Partições

Partição Base Limite Processo ID

Tamanho Processo

0 0K 124K SO 124K 1 124K 50K P1 10K 2 174K 150K P2 40K 3 324K 250K P3 70K 4 574K 450K P4 110K

SO

P1

P2

P3

P4

P5

130K

P6

180K

P7

260K

P8

300K

Essa alocação otimiza o uso de memória? Por que?

Page 39: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Sistemas Operacionais - Introdução Edeyson A. Gomes 39

Alocação de Memória

Tabela de Partições

Partição Base Limite Processo ID

Tamanho Processo

0 0K 124K SO 124K 1 124K 50K P1 10K 2 174K 150K P2 40K 3 324K 250K P3 70K 4 574K 450K P4 110K

SO

P1

P2

P3

P4

Existe a alocação por ordem do escalonador e por escolha do gerenciador de memória.

P1

10K

P2

40K

P3

70K

P4

110K

P5

130K

P6

180K

P7

260K

P8

300K

Page 40: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Sistemas Operacionais - Introdução Edeyson A. Gomes 40

Alocação de Memória

Tabela de Partições

Partição Base Limite Processo ID

Tamanho Processo

0 0K 124K SO 124K 1 124K 50K P2 40K 2 174K 150K P5 130K 3 324K 250K P6 180K 4 574K 450K P8 300K

SO

P2

P5

P6

P8

Alocação por escolha do gerenciador de memória. Menor desperdício.

P1

10K

P2

40K

P3

70K

P4

110K

P5

130K

P6

180K

P7

260K

P8

300K

Page 41: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Sistemas Operacionais - Introdução Edeyson A. Gomes 41

Alocação de Memória

w Se o gerenciador de memória prioriza a melhor alocação da partição, o que acontecerá com processos muito pequenos, dado que na fila sempre existem maiores? n  Inanição

w Solução: n  1. Múltiplas Filas

Page 42: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Sistemas Operacionais - Introdução Edeyson A. Gomes 42

Alocação de Memória

SO

50K

150K

250K

450K

P1

10K

P2

40K

P3

70K

P4

110K

P5

130K

P6

180K

P7

260K

P8

300K

Qual o problema dessa abordagem? Quando P6 acabar, a partição ficará Ociosa. Pode ocorrer de uma partição ficar livre, enquanto outra tem muitos processos. Qual a solução?

è Fila única com Aging.

Page 43: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Sistemas Operacionais - Introdução Edeyson A. Gomes 43

Alocação de Memória

w Fila única com Aging n  Determina-se um contador de saltos Ki (Processo

i) e uma constante N n  Toda vez que uma partição ficar livre

l  Procura-se pelo processo que deixa o menor espaço desperdiçado

l  Se na fila, antes dele, houver um processo que caiba na mesma partição, Ki++ w  Se Ki = N, Pi deve ser executado, independente do tamanho

da partição

Page 44: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Sistemas Operacionais - Introdução Edeyson A. Gomes 44

Alocação de Memória

w Alocação Contígua n  Divisão da memória

l  SO residente w  Código e dados (tabela de vetores, buffers, etc)

l  Processos de usuários n  Proteção

l  Registrador de relocação: menor endereço l  Registrador de limite: maior deslocamento l  Cada processo tem seus valores (troca de contexto)

Page 45: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Sistemas Operacionais - Introdução Edeyson A. Gomes 45

Alocação de Memória

Tabela de Partições Memória Principal

Sistema Operacional

Partição 1

Partição 2

Partição 3

C – 10 KB

D – 50 KB

B – 60 KB

O processo C pode acessar o endereço real 2050? Não, essa é uma área do SO. E o endereço 225850? Não, é de outra partição.

Partição Tamanho Base Limite ID

1 20K 150K 20K C

2 50K 170K 50K D

3 80K 220K 80K B

0

150K

170K

220K

300K

Page 46: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Sistemas Operacionais - Introdução Edeyson A. Gomes 46

Alocação de Memória

CPU

Registrador de LIMITE (Tamanho da Partição)

Registrador de relocação (BASE) Memória

EL < LIMITE + endereço

lógico sim

não

endereço físico

exceção: erro de endereçamento

Page 47: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Sistemas Operacionais - Introdução Edeyson A. Gomes 47

Alocação de Memória

CPU

LIMITE 200K BASE

300K

5000 < 200K + EL = 5000

sim

não

5000 + 300K

exceção: erro de endereçamento

SO

P1

150K

300K

500K

Processo P1 è BASE = 300K e LIMITE = 200K

Page 48: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Sistemas Operacionais - Introdução Edeyson A. Gomes 54

Alocação de Memória

w Alocação Particionada Dinâmica n  (Partições Variáveis) n  Implementado no IBM OS/MVT n  Partições sem tamanho fixo pré-estabelecido n  SO mantém Fila de Entrada e Blocos Livres n  Estratégias de alocação n  Fragmentação

Page 49: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Sistemas Operacionais - Introdução Edeyson A. Gomes 55

Alocação de Memória

Memória Principal

Sistema Operacional

Processo B Processo C

Processo A

4 KB

3 KB

1 KB

Processo E

1 KB

2 KB

Memória Principal

Sistema Operacional

11 KB

A E C B 2 KB 3 KB 1 KB 4 KB

Page 50: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Sistemas Operacionais - Introdução Edeyson A. Gomes 56

Estratégias de Alocação

n  Escolha do bloco que deve ser alocado ao processo n  Vários algoritmos possíveis

l  First-fit w  Aloca primeiro bloco suficientemente grande w  Não precisa pesquisar todos blocos

l  Best-fit w  Aloca o menor bloco suficientemente grande w  Precisa pesquisar todos blocos

§  Alternativa: ordenação dos blocos por tamanho w  Gera o menor bloco de memória restante

Page 51: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Sistemas Operacionais - Introdução Edeyson A. Gomes 57

Estratégias de Alocação

l  Worst-fit w  Aloca o maior bloco w  Precisa pesquisar todos blocos

§  Alternativa: ordenação dos blocos por tamanho w  Gera o maior bloco de memória restante

n  Avaliação dos algoritmos por simulação l  First-fit e best-fit utilizam melhor a memória l  First-fit é mais rápida

Page 52: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Best Fit – Um exemplo

58

Processos Tamanho Turnaround Processo 1 100k 3 Processo 2 10k 1 Processo 3 35k 2 Processo 4 15k 1 Processo 5 23k 2 Processo 6 6k 1 Processo 7 25k 1 Processo 8 55k 2 Processo 9 88k 3 Processo 10 100k 3

Bloco Memória Tamanho

Bloco 1 50K Bloco 2 200K Bloco 3 70K Bloco 4 115K Bloco 5 15K

Bloco Memória Processo

Bloco 1 Bloco 2 Bloco 3 Bloco 4 Bloco 5

Tempo -1

Page 53: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Best Fit – Um exemplo

59

Processos Tamanho Turnaround Processo 1 100k 3 Processo 2 10k 1 Processo 3 35k 2 Processo 4 15k 1 Processo 5 23k 2 Processo 6 6k 1 Processo 7 25k 1 Processo 8 55k 2 Processo 9 88k 3 Processo 10 100k 3

Bloco Memória Tamanho

Bloco 1 50K Bloco 2 200K Bloco 3 70K Bloco 4 115K Bloco 5 15K

Bloco Memória Processo

Bloco 1 Bloco 2 Bloco 3 Bloco 4 Processo 1 Bloco 5

Tempo 0

Alocado

Page 54: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Best Fit – Um exemplo

60

Processos Tamanho Turnaround Processo 1 100k 3 Processo 2 10k 1 Processo 3 35k 2 Processo 4 15k 1 Processo 5 23k 2 Processo 6 6k 1 Processo 7 25k 1 Processo 8 55k 2 Processo 9 88k 3 Processo 10 100k 3

Bloco Memória Tamanho

Bloco 1 50K Bloco 2 200K Bloco 3 70K Bloco 4 115K Bloco 5 15K

Bloco Memória Processo

Bloco 1 Bloco 2 Bloco 3 Bloco 4 Processo 1 Bloco 5 Processo 2

Tempo 0

Alocado Alocado

Page 55: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Best Fit – Um exemplo

61

Processos Tamanho Turnaround Processo 1 100k 3 Processo 2 10k 1 Processo 3 35k 2 Processo 4 15k 1 Processo 5 23k 2 Processo 6 6k 1 Processo 7 25k 1 Processo 8 55k 2 Processo 9 88k 3 Processo 10 100k 3

Bloco Memória Tamanho

Bloco 1 50K Bloco 2 200K Bloco 3 70K Bloco 4 115K Bloco 5 15K

Bloco Memória Processo

Bloco 1 Processo 3 Bloco 2 Bloco 3 Bloco 4 Processo 1 Bloco 5 Processo 2

Tempo 0

Alocado Alocado Alocado

Page 56: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Best Fit – Um exemplo

62

Processos Tamanho Turnaround Processo 1 100k 3 Processo 2 10k 1 Processo 3 35k 2 Processo 4 15k 1 Processo 5 23k 2 Processo 6 6k 1 Processo 7 25k 1 Processo 8 55k 2 Processo 9 88k 3 Processo 10 100k 3

Bloco Memória Tamanho

Bloco 1 50K Bloco 2 200K Bloco 3 70K Bloco 4 115K Bloco 5 15K

Bloco Memória Processo

Bloco 1 Processo 3 Bloco 2 Bloco 3 Processo 4 Bloco 4 Processo 1 Bloco 5 Processo 2

Tempo 0

Alocado Alocado Alocado Alocado – 15K em 70K !

Page 57: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Best Fit – Um exemplo

63

Processos Tamanho Turnaround Processo 1 100k 3 Processo 2 10k 1 Processo 3 35k 2 Processo 4 15k 1 Processo 5 23k 2 Processo 6 6k 1 Processo 7 25k 1 Processo 8 55k 2 Processo 9 88k 3 Processo 10 100k 3

Bloco Memória Tamanho

Bloco 1 50K Bloco 2 200K Bloco 3 70K Bloco 4 115K Bloco 5 15K

Bloco Memória Processo

Bloco 1 Processo 3 Bloco 2 Processo 5 Bloco 3 Processo 4 Bloco 4 Processo 1 Bloco 5 Processo 2

Tempo 0

Alocado Alocado Alocado Alocado Alocado – 23K em 200K !

Page 58: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Best Fit – Um exemplo

64

Processos Tamanho Turnaround Processo 1 100k 3 Processo 2 10k 1 Processo 3 35k 2 Processo 4 15k 1 Processo 5 23k 2 Processo 6 6k 1 Processo 7 25k 1 Processo 8 55k 2 Processo 9 88k 3 Processo 10 100k 3

Bloco Memória Tamanho

Bloco 1 50K Bloco 2 200K Bloco 3 70K Bloco 4 115K Bloco 5 15K

Bloco Memória Processo

Bloco 1 Processo 3 Bloco 2 Processo 5 Bloco 3 Bloco 4 Processo 1 Bloco 5

Tempo 1

Alocado Concluído ! Alocado Concluído ! Alocado

Page 59: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Best Fit – Um exemplo

65

Processos Tamanho Turnaround Processo 1 100k 3 Processo 2 10k 1 Processo 3 35k 2 Processo 4 15k 1 Processo 5 23k 2 Processo 6 6k 1 Processo 7 25k 1 Processo 8 55k 2 Processo 9 88k 3 Processo 10 100k 3

Bloco Memória Tamanho

Bloco 1 50K Bloco 2 200K Bloco 3 70K Bloco 4 115K Bloco 5 15K

Bloco Memória Processo

Bloco 1 Processo 3 Bloco 2 Processo 5 Bloco 3 Bloco 4 Processo 1 Bloco 5 Processo 6

Tempo 1

Alocado Concluído ! Alocado Concluído ! Alocado Alocado

Page 60: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Best Fit – Um exemplo

66

Processos Tamanho Turnaround Processo 1 100k 3 Processo 2 10k 1 Processo 3 35k 2 Processo 4 15k 1 Processo 5 23k 2 Processo 6 6k 1 Processo 7 25k 1 Processo 8 55k 2 Processo 9 88k 3 Processo 10 100k 3

Bloco Memória Tamanho

Bloco 1 50K Bloco 2 200K Bloco 3 70K Bloco 4 115K Bloco 5 15K

Bloco Memória Processo

Bloco 1 Processo 3 Bloco 2 Processo 5 Bloco 3 Processo 7 Bloco 4 Processo 1 Bloco 5 Processo 6

Tempo 1

Alocado Concluído ! Alocado Concluído ! Alocado Alocado Alocado

Page 61: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Best Fit – Um exemplo

67

Processos Tamanho Turnaround Processo 1 100k 3 Processo 2 10k 1 Processo 3 35k 2 Processo 4 15k 1 Processo 5 23k 2 Processo 6 6k 1 Processo 7 25k 1 Processo 8 55k 2 Processo 9 88k 3 Processo 10 100k 3

Bloco Memória Tamanho

Bloco 1 50K Bloco 2 200K Bloco 3 70K Bloco 4 115K Bloco 5 15K

Bloco Memória Processo

Bloco 1 Bloco 2 Bloco 3 Bloco 4 Processo 1 Bloco 5

Tempo 2

Alocado Concluído ! Concluído ! Concluído ! Concluído ! Concluído ! Concluído !

Page 62: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Best Fit – Um exemplo

68

Processos Tamanho Turnaround Processo 1 100k 3 Processo 2 10k 1 Processo 3 35k 2 Processo 4 15k 1 Processo 5 23k 2 Processo 6 6k 1 Processo 7 25k 1 Processo 8 55k 2 Processo 9 88k 3 Processo 10 100k 3

Bloco Memória Tamanho

Bloco 1 50K Bloco 2 200K Bloco 3 70K Bloco 4 115K Bloco 5 15K

Bloco Memória Processo

Bloco 1 Bloco 2 Bloco 3 Processo 8 Bloco 4 Processo 1 Bloco 5

Tempo 2

Alocado Concluído ! Concluído ! Concluído ! Concluído ! Concluído ! Concluído !

Alocado

Page 63: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Best Fit – Um exemplo

69

Processos Tamanho Turnaround Processo 1 100k 3 Processo 2 10k 1 Processo 3 35k 2 Processo 4 15k 1 Processo 5 23k 2 Processo 6 6k 1 Processo 7 25k 1 Processo 8 55k 2 Processo 9 88k 3 Processo 10 100k 3

Bloco Memória Tamanho

Bloco 1 50K Bloco 2 200K Bloco 3 70K Bloco 4 115K Bloco 5 15K

Bloco Memória Processo

Bloco 1 Bloco 2 Processo 9 Bloco 3 Processo 8 Bloco 4 Processo 1 Bloco 5

Tempo 2

Alocado Concluído ! Concluído ! Concluído ! Concluído ! Concluído ! Concluído !

Alocado Alocado

Page 64: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Best Fit – Um exemplo

70

Processos Tamanho Turnaround Processo 1 100k 3 Processo 2 10k 1 Processo 3 35k 2 Processo 4 15k 1 Processo 5 23k 2 Processo 6 6k 1 Processo 7 25k 1 Processo 8 55k 2 Processo 9 88k 3 Processo 10 100k 3

Bloco Memória Tamanho

Bloco 1 50K Bloco 2 200K Bloco 3 70K Bloco 4 115K Bloco 5 15K

Bloco Memória Processo

Bloco 1 Bloco 2 Processo 9 Bloco 3 Processo 8 Bloco 4 Bloco 5

Tempo 3

Concluído ! Concluído ! Concluído ! Concluído ! Concluído ! Concluído ! Concluído !

Alocado Alocado

Page 65: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Best Fit – Um exemplo

71

Processos Tamanho Turnaround Processo 1 100k 3 Processo 2 10k 1 Processo 3 35k 2 Processo 4 15k 1 Processo 5 23k 2 Processo 6 6k 1 Processo 7 25k 1 Processo 8 55k 2 Processo 9 88k 3 Processo 10 100k 3

Bloco Memória Tamanho

Bloco 1 50K Bloco 2 200K Bloco 3 70K Bloco 4 115K Bloco 5 15K

Bloco Memória Processo

Bloco 1 Bloco 2 Processo 9 Bloco 3 Processo 8 Bloco 4 Processo 10 Bloco 5

Tempo 3

Concluído ! Concluído ! Concluído ! Concluído ! Concluído ! Concluído ! Concluído !

Alocado Alocado Alocado

Page 66: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Best Fit – Um exemplo

72

Processos Tamanho Turnaround Processo 1 100k 3 Processo 2 10k 1 Processo 3 35k 2 Processo 4 15k 1 Processo 5 23k 2 Processo 6 6k 1 Processo 7 25k 1 Processo 8 55k 2 Processo 9 88k 3 Processo 10 100k 3

Bloco Memória Tamanho

Bloco 1 50K Bloco 2 200K Bloco 3 70K Bloco 4 115K Bloco 5 15K

Bloco Memória Processo

Bloco 1 Bloco 2 Processo 9 Bloco 3 Bloco 4 Processo 10 Bloco 5

Tempo 4

Concluído ! Concluído ! Concluído ! Concluído ! Concluído ! Concluído ! Concluído !

Concluído ! Alocado Alocado

Page 67: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Best Fit – Um exemplo

73

Processos Tamanho Turnaround Processo 1 100k 3 Processo 2 10k 1 Processo 3 35k 2 Processo 4 15k 1 Processo 5 23k 2 Processo 6 6k 1 Processo 7 25k 1 Processo 8 55k 2 Processo 9 88k 3 Processo 10 100k 3

Bloco Memória Tamanho

Bloco 1 50K Bloco 2 200K Bloco 3 70K Bloco 4 115K Bloco 5 15K

Bloco Memória Processo

Bloco 1 Bloco 2 Bloco 3 Bloco 4 Processo 10 Bloco 5

Tempo 5

Concluído ! Concluído ! Concluído ! Concluído ! Concluído ! Concluído ! Concluído !

Concluído ! Concluído ! Alocado

Page 68: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Best Fit – Um exemplo

74

Processos Tamanho Turnaround Processo 1 100k 3 Processo 2 10k 1 Processo 3 35k 2 Processo 4 15k 1 Processo 5 23k 2 Processo 6 6k 1 Processo 7 25k 1 Processo 8 55k 2 Processo 9 88k 3 Processo 10 100k 3

Bloco Memória Tamanho

Bloco 1 50K Bloco 2 200K Bloco 3 70K Bloco 4 115K Bloco 5 15K

Bloco Memória Processo

Bloco 1 Bloco 2 Bloco 3 Bloco 4 Bloco 5

Tempo 6

Concluído ! Concluído ! Concluído ! Concluído ! Concluído ! Concluído ! Concluído !

Concluído ! Concluído ! Concluído !

Page 69: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Sistemas Operacionais - Introdução Edeyson A. Gomes 75

Alocação Contígua

w Fragmentação Externa n  Ocorre quando os programas terminam n  Não há espaço livre contíguo suficiente

Memória Principal

Sistema Operacional

Processo C

Processo A

4 KB

3 KB

1 KB

1 KB

2 KB

D 6 KB

Page 70: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Sistemas Operacionais - Introdução Edeyson A. Gomes 76

Alocação Contígua

w Fragmentação Externa n  Soluções

l  Aguardar término de processos l  Desfragmentação

w  Reloca partições ocupadas para criar área livre única §  CONTÍGUA

w  Exige relocação dinâmica – em tempo de execução §  MGM traduzindo endereços

w  Overhead w  Implementado no IBM OS/MVT

l  Permitir alocação não contígua w  Paginação e segmentação

Page 71: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Sistemas Operacionais - Introdução Edeyson A. Gomes 90

Swapping

w Programas ficavam na memória principal, mesmo se bloqueados, a espera de um evento (I/O);

w Solução encontrada: Swapping; n  Processos não ficam mais na memória o tempo

todo; n  Técnica para resolver problema de processos que

aguardam por espaço livre adequado.

Page 72: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Sistemas Operacionais - Introdução Edeyson A. Gomes 91

Swapping

w Processo residente na memória é escolhido e levado para o disco (Swapped-Out), dando lugar a outro;

w Processo Swapped-Out retorna posteriormente à memória (Swapped-In), sem “perceber” o que ocorreu.

Page 73: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Sistemas Operacionais - Introdução Edeyson A. Gomes 92

Swapping

programa B

programa A

programa E

programa A

programa G

Sistema Operacional

programa A

programa H

programa E

programa A

H

4kb B B

Swap In Swap Out

Sistema Operacional

Memória Principal Memória Principal

Page 74: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Sistemas Operacionais - Introdução Edeyson A. Gomes 93

Swapping

w  Problema gerado pelo Swapping: n  Relocação dos programas

l  Se processos “saem e voltam” muitas vezes, tempo gasto com relocação é alto (overhead);

n  Solução l  Mecanismo de Relocação Dinâmica:

n  Quando ocorrer referência a algum endereço, o endereço da instrução será somado ao valor do registrador:

n  Endereço Real = Endereço Base da Partição + Deslocamento. n  Deslocamento = Endereço Referenciado no Processo

Page 75: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Sistemas Operacionais - Introdução Edeyson A. Gomes 94

Swapping

w  Vantagens: n  Permite maior compartilhamento da memória;

n  Aumento no Throughput

w  Eficiente para sistemas com poucos usuários e pequenas aplicações;

w  Problema: n  custo do Swapping (in/out).

Page 76: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Sistemas Operacionais - Introdução Edeyson A. Gomes 95

Swapping

w  Swap-out n  Processos são removidos temporariamente

w  Swap-in n  Processos precisam voltar para o mesmo espaço

l  Resolução de endereço em tempo de compilação ou carga

n  Processos não precisam voltar para o mesmo espaço l  Resolução de endereço em tempo de execução l  Endereços físicos recalculados na execução

Page 77: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Sistemas Operacionais - Introdução Edeyson A. Gomes 98

Swapping

w Swap-out de processos com I/O pendente n  Acesso à área do processo

l  Pode gerar inconsistências

n  Soluções l  Não retirar processo com I/O pendente l  Sempre usar buffers do SO

Page 78: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Sistemas Operacionais - Introdução Edeyson A. Gomes 99

Memória Virtual

w  Técnica de Gerenciamento de Memória w  Permite execução de processos que não estejam

totalmente na memória n  A parte sendo executada precisa estar em memória

w  Programas não precisam ser carregados totalmente na memória n  Rotinas de exceção n  Rotinas necessárias apenas na inicialização n  Matrizes e tabelas super-dimensionadas

Page 79: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Sistemas Operacionais - Introdução Edeyson A. Gomes 100

Memória Virtual

n  Processos podem ser maiores que a memória física n  Economia permite execução de mais processos n  Implementação complexa n  Transparência para usuário e programador

l  Diferente da técnica de overlay n  Overhead de traduções e swap n  Implementações

l  Paginação sob demanda w  Referência a página fora da memória

l  Segmentação sob demanda w  OS/2 e Burroughs

Page 80: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Sistemas Operacionais - Introdução Edeyson A. Gomes 101

Memória Virtual

Mapa da Memória

Memória Virtual

Página 0 Página 1 Página 2

.

.

. Página n

Memória Física

Memória Secundária

Page 81: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Sistemas Operacionais - Introdução Edeyson A. Gomes 102

Paginação

w  Permite espaço de endereçamento não contíguo w  Memória física dividida em quadros (frames) w  Memória lógica dividida em páginas (pages) w  Quadros e páginas têm o mesmo tamanho

n  Normalmente entre 512 bytes e 16MB

w  Páginas dos processos podem ocupar qualquer quadro disponível

Page 82: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Sistemas Operacionais - Introdução Edeyson A. Gomes 103

Paginação

n  Endereço lógico l  Número da página l  Deslocamento dentro da página (offset)

n  Tabela de página do processo l  Número da página serve como índice da tabela l  Associa páginas a quadros

Page 83: SO 09 Gerencia de Memoria (rev) - Engenharia de Sistemasrev).pdf · Sistemas Operacionais - Introdução Edeyson A. Gomes 11 Gerência de Memória w Alocação Contígua Simples Sistema

Sistemas Operacionais - Introdução Edeyson A. Gomes 104

Paginação