Upload
duongthu
View
217
Download
0
Embed Size (px)
Citation preview
Sistemas Operacionais
Edeyson Andrade Gomes www.edeyson.com.br
Gerência de Memória
Sistemas Operacionais - Introdução Edeyson A. Gomes 2
Roteiro da Aula
w Gerência de Memória n Metas n Algoritmos
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
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
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); }
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; }
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...
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
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.
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
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.
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)
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.
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)
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);
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
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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?
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?
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?
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?
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?
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
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
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
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.
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
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)
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
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
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
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
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
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
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
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
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
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
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
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 !
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 !
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
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
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
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 !
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
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
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
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
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
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
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 !
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
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
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.
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.
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
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
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).
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
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
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
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
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
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
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
Sistemas Operacionais - Introdução Edeyson A. Gomes 104
Paginação