Академический Документы
Профессиональный Документы
Культура Документы
Gerenciamento de Memria
CONTEDO
Consideraes Iniciais Gerenciamento de Memria
Memria Virtual Consideraes Finais
2
CONTEDO
Consideraes Iniciais Gerenciamento de Memria
Memria Virtual Consideraes Finais
3
CONSIDERAES INICIAIS
Lei de Parkinson: Os programas se expandem para preencher a memria disponvel para eles (adaptao);
Requisitos:
CONSIDERAES INICIAIS
Hierarquia de Memria:
(vrios sub-nveis RAM esttica) Memria Principal (RAM dinmica) Memria Secundria (disco magntico)
Cache
CONSIDERAES INICIAIS
Hierarquia de Memria:
Cache
Memria
CONSIDERAES INICIAIS
Hierarquia de Memria:
(vrios sub-nveis RAM esttica) Memria Principal (RAM dinmica)
Cache
Memria
CONSIDERAES INICIAIS
Hierarquia de Memria:
(vrios sub-nveis RAM esttica) Memria Principal (RAM dinmica) Memria Secundria (disco magntico)
Cache
CONSIDERAES INICIAIS
Hierarquia de Memria:
Para
gerenciar
os nveis de memria:
trocas
9
gerenciar
CONSIDERAES INICIAIS
Gerenciador de Memria
Responsvel Alocao Troca Tratamento
de conflitos
10
CONTEDO
GERENCIAMENTO DE MEMRIA
gerenciar
preveno
Proteo
e tratamento de conflitos
espao de memria.
12
GERENCIAMENTO DE MEMRIA
paginao (chaveamento):
movimentao
de processos entre a memria principal e a memria secundria (disco); artifcio para resolver a falta de memria; se memria principal suficiente no h necessidade de paginao;
Sem
paginao: no h chaveamento;
13
GERENCIAMENTO DE MEMRIA
Monoprogramao:
sem
S.O.
ROM
DRIVERS
ROM
USURIO RAM
USURIO
RAM USURIO
S.O.
0 Grande porte Sem Uso Computadores de mo Sistemas embarcados
RAM
S.O.
MS-Dos BIOS
14
GERENCIAMENTO DE MEMRIA
Modelo de Multiprogramao:
mltiplos
Processo
GERENCIAMENTO DE MEMRIA
Grau de Multiprogramao
16
GERENCIAMENTO DE MEMRIA
Multiprogramao:
vrios
processos na memria: como proteger os processos uns dos outros? e kernel de todos os processos? como tratar a realocao?
GERENCIAMENTO DE MEMRIA
Realocao:
Quando um programa montado (link), i.e. programa principal + rotinas do usurio + rotinas da biblioteca executvel, o montador (linker) deve saber em que endereo o programa ir iniciar na memria;
Nesse caso, para que o montador no escreva em um local indevido (por exemplo na rea do SO - 100 primeiros endereos no CPM), preciso de realocao:
18
GERENCIAMENTO DE MEMRIA
Proteo:
Com vrias parties e programas ocupando diferentes espaos da memria possvel acontecer um acesso indevido;
2 registradores base e limite
Quando um processo escalonado o registrador-base carregado com o endereo de incio da partio e o registradorlimite com o tamanho da partio;
O registrador-base torna impossvel a um processo uma remisso a qualquer parte de memria abaixo de si mesmo.
19
GERENCIAMENTO DE MEMRIA
2
automaticamente,
endereos
20
21
22
GERENCIAMENTO DE MEMRIA
Parties:
diviso da memria pode ser realizada de duas maneiras:
parties fixas; parties variveis; tamanho e nmero de parties so fixos (estticos); parties fixas tendem a desperdiar memria - espao no utilizado literalmente perdido; mais simples;
23
Parties Fixas:
GERENCIAMENTO DE MEMRIA
Parties Fixas:
Filas
mltiplas:
filas no balanceadas;
problema:
Fila
nica:
melhor
utilizao da memria; procura melhor processo para a partio considerada; problema: processos menores so prejudicados;
24
GERENCIAMENTO DE MEMRIA
Filas Mltiplas
partio 4 partio 3 400 k partio 2 partio 1 S.O. 200 k 100 k 0
700 k
partio 4
Fila nica
...
partio 3
partio 2
partio 1 S.O. (b)
25
(a)
GERENCIAMENTO DE MEMRIA
26
GERENCIAMENTO DE MEMRIA
Parties Variveis:
tamanho
e nmero de parties variam; otimiza a utilizao da memria; complica a alocao e liberao da memria; parties so alocadas dinamicamente; SO mantm lista com os espaos livres; menor fragmentao interna e grande fragmentao externa;
Soluo:
compactao;
27
GERENCIAMENTO DE MEMRIA
Parties Variveis:
Tempo
C B A SO (a) A SO (b) B A
C B
C B
C A
D SO (f)
D SO (g)
28
Memria livre
GERENCIAMENTO DE MEMRIA
necessria para recuperar os espaos perdidos por fragmentao; no entanto, muito custosa para a CPU;
encadeadas;
29
GERENCIAMENTO DE MEMRIA
Memria organizada em unidades de alocao em kbytes; Cada unidade corresponde a um bit no bitmap: 0 livre 1 ocupado Tamanho do bitmap depende do tamanho da unidade e do tamanho da memria; Ex.:
unidades de alocao pequenas bitmap grande; unidades de alocao grandes perda de espao;
30
GERENCIAMENTO DE MEMRIA
Memria
16 C
...
Bitmap
...
GERENCIAMENTO DE MEMRIA
Uma lista para os espaos vazios e outra para os espaos cheios, ou uma lista para ambos! espao segmento
tamanho 5 P 0 5 H 5 3 P 8 6
.......
H 29 3
Processo
tamanho 3
comea com 5
32
GERENCIAMENTO DE MEMRIA
FIRST FIT
1 segmento usado; rpido, mas pode desperdiar memria por fragmentao;
NEXT FIT
1 segmento usado; mas na prxima alocao inicia busca do ponto que parou anteriormente; possui desempenho inferior;
33
GERENCIAMENTO DE MEMRIA
BEST FIT
procura na lista toda e aloca o espao que mais convm; menor fragmentao; mais lento;
WORST FIT
QUICK FIT
34
GERENCIAMENTO DE MEMRIA
Cada algoritmo pode manter listas separadas para processos e para espaos livres:
Vantagem:
Aumenta
desempenho;
Desvantagens:
Aumenta
35
GERENCIAMENTO DE MEMRIA
Swapping:
chaveamento de processos inteiros entre a memria principal e o disco; Transferncia do processo da memria principal para a memria secundria (normalmente disco): Swap-out; Transferncia do processo da memria secundria para a memria principal: Swap-in; Pode ser utilizado tanto com parties fixas quanto com parties variveis;
36
CONTEDO
Consideraes Iniciais Gerenciamento de Memria
Memria Virtual Consideraes Finais
37
MEMRIA VIRTUAL
Histrico:
Programas maiores que a memria eram divididos em pedaos menores chamados overlays tarefa do programador; Vantagem: expanso (virtual) da memria; Desvantagem: complexidade e custo alto;
Memria Virtual:
SO responsvel por dividir o programa em overlays; SO realiza o chaveamento dos pedaos entre as memrias principal e a secundria (disco);
38
MEMRIA VIRTUAL
1972 - IBM System/370; 2008 vastamente utilizado (embora memria principal tenha um tamanho fenomenal se comparado com as dcadas anteriores)
39
MEMRIA VIRTUAL
Organizao bsica:
Espao
todos
de Endereamento Lgico:
de Endereamento Fsico:
os endereos fsicos aceitos pela memria principal (RAM); depende do tamanho da memria fsica (RAM);
40
MEMRIA VIRTUAL
Com MV existe a sensao de se ter mais memria principal do que realmente se tem; O hardware muitas vezes implementa funes da gerncia de memria virtual: SO deve considerar caractersticas da arquitetura;
41
MEMRIA VIRTUAL
Unidade de Processamento
42
MEMRIA VIRTUAL
Tcnicas de MV:
Paginao:
Blocos de tamanho fixo chamados de pginas; SO mantm uma fila de todas as pginas; Endereos Virtuais formam o espao de endereamento virtual; O espao de endereamento virtual dividido em pginas; Mapeamento entre endereos fsicos (reais) e virtuais;
Segmentao:
43
Memria Principal e Memria Secundria so organizadas em pginas de mesmo tamanho; Pgina: unidade bsica para transferncia de informao;
argumento de entrada nmero da pgina virtual; argumento de sada (resultado) nmero da pgina fsica (moldura de pgina - page frame);
44
. . .
Memria Principal
Processo A
Endereo virtual 1
. . .
Processo B
45
Exemplo:
Pginas
4096
de 4Kb
bytes/endereos (0-4095);
64Kb
46
Tamanho da pgina
512 bytes
Nmero de pginas
223 220 252 248
232
endereos
4 kbytes
4 kbytes
264 endereos
264 endereos
64 kbytes
Problemas:
x1 x2 x3 x4 y1 y2 y3 y4
Tabela de Pginas
Pgina Lgica Pgina Fsica
x1 x2 x3 x4 y1 y2 y3 y4
Endereo Lgico de y2
000 001
010 101
Endereo Fsico de y2
001 01
pgina
101 01
pgina posio/ deslocamento 49
posio/deslocamento
51
Bit de Residncia: Se valor igual 1, ento entrada vlida para uso; Se valor igual 0, ento entrada invlida, pois pgina virtual correspondente no est na memria;
52
Bits de Proteo: Indicam tipos de acessos permitidos: 1 bit 0 leitura/escrita 1 leitura 3 bits 0 Leitura 1 Escrita 2 - Execuo
53
Bit de Modificao (Bit M): Controla o uso da pgina; Se valor igual a 1, pgina foi escrita; pgina copiada para o disco Se valor igual a 0, pgina no foi modificada; pgina no copiada para o disco;
54
Bit de Referncia (Bit R): Controla o uso da pgina; Auxilia o SO na escolha da pgina que deve deixar a MP (RAM); Se valor igual a 1, pgina foi referenciada (leitura/escrita); Se valor igual a 0, pgina no referenciada;
55
Bit de Cache: Necessrio quando os dispositivos de entrada/sada so mapeados na memria e no em um endereamento especfico de E/S;
56
Registradores se a memria for pequena; Na prpria memria RAM MMU gerencia utilizando dois registradores:
Registrador Base da tabela de pginas (PTBR page table base register): indica o endereo fsico de memria onde a tabela est alocada;
Registrador Limite da tabela de pginas (PTLR page table limit register): indica o nmero de entradas da tabela (nmero de pginas);
Dois acessos memria;
57
Hardware
especial para mapear endereos virtuais para endereos reais sem ter que passar pela tabela de pginas na memria principal; (e muito) o desempenho;
Melhora
58
Cada pgina lgica (virtual) carregada em uma pgina fsica (real), de mesmo tamanho, e uma tabela de pginas construda;
Paginao simples:
todas as pginas lgicas de um processo sempre so carregadas para a memria fsica; assim, sempre todas as pginas so vlidas;
59
60
Pgina invlida:
61
Falta de Pgina:
Processo suspenso e seu descritor inserido em uma fila especial fila dos processos esperando uma pgina lgica;
Uma pgina fsica livre deve ser alocada; A pgina lgica acessada deve ser localizada no disco; Operao de leitura de disco, indicando o endereo da pgina lgica no disco e o endereo da pgina fsica alocada;
62
de pginas do processo atualizada para indicar que a pgina lgica agora est vlida e est na pgina fsica alocada;
Pager:
Memria Fsica
0 1 2 3 D 4 G 5 6 7 8 9 10 C 11 12 13 14 15
Disco
A B C D E F G H
Pgina Lgica
Pgina Fsica
64
Se todas as pginas estiverem ocupadas, uma pgina deve ser retirada: pgina vtima;
Ex.:
Dois
processos P1 e P2, cada um com 4 pginas lgicas; Memria fsica com 6 pginas;
65
Disco
A B C D E F G H
Memria Fsica
0 D 1 A 2 F 3 E 4 G 5 B 3 pginas de cada processo
Memria Lgica P2
0 1 2 3 E F G H
Disco
A B C D E F G H
Memria Fsica
0 D 1 A 2 F 3 E 4 H 5 B 3 pginas de cada processo
Memria Lgica P2
0 1 2 3 E F G H
Geralmente, cada processo tem uma tabela de pginas associada a ele classificao feita pelo endereo virtual;
SO constri tabela nica de pginas fsicas; Cada entrada possui o endereo virtual da pgina armazenada naquela posio de memria real, com informaes sobre o processo dono da pgina virtual; Exemplos de sistemas: IBM System/38, IBM RISC System 6000, IBM RT e estaes HP Spectrum;
68
Endereo fsico
Memria
i
Pesquisa
pid d
Quando uma referncia de memria realizada (pgina virtual), a tabela de pginas invertida pesquisada para encontrar a moldura de pgina correspondente;
Se
Vantagens:
Desvantagens:
Aumenta tempo de pesquisa na tabela, pois, apesar de ser classificada por endereos fsicos, pesquisada por endereos lgicos;
71
blocos em caches de processador Pginas em Web caches Arquivos em servidores de arquivos, etc.
Diferenas:
Algoritmos:
timo; NRU; FIFO; Segunda Chance; Relgio; LRU; Working set; WSClock;
73
Algoritmo timo:
Retira
impossvel de se saber;
74
Algoritmo Not Recently Used Page Replacement (NRU) troca as pginas no utilizadas recentemente:
02 bits associados a cada pgina R e M Classe 0 no referenciada, no modificada; Classe 1 no referenciada, modificada; Classe 2 referenciada, no modificada; Classe 3 referenciada, modificada;
75
NRU:
Periodicamente,
Classe 3 Classe 1;
Vantagens:
A pgina no incio da lista a mais antiga e a pgina no final da lista a mais nova;
Simples, mas pode ser ineficiente, pois uma pgina que est em uso constante pode ser retirada; Pouco utilizado;
77
da Segunda Chance
7
C
8
D
10
A Pgina mais recente
Se pgina A com R==1; e falta de pgina em tempo 10; Ento R=0 e pgina A vai para final da lista;
78
Algoritmo do Relgio
Lista circular com ponteiro apontando para a pgina mais antiga Algoritmo se repete at encontrar R=0; Se R=1 -R=0
- desloca o ponteiro
- desloca o ponteiro
- continua busca
79
Algoritmo do Relgio
80
Lista encadeada com as pginas que esto na memria, com as mais recentemente utilizadas no incio e as menos utilizadas no final; A lista deve ser atualizada a cada referncia da memria;
81
em hardware ou em software:
LRU; Exemplo:
Contador em hardware (64 bits); Tabela de pginas tem o valor do contador para saber quando a pgina foi usada;
82
duas maneiras
Aging (Envelhecimento);
83
cada pgina existe um contador iniciado com zero e somado ao bit R a cada interrupo de clock;
Pgina
troca;
Problema:
84
de saber quantas vezes a pgina foi referenciada, tambm controla quando ela foi referenciada;
Geralmente,
8 bits so suficientes para o controle se as interrupes de relgio (clock ticks) ocorrem a cada 20ms (10-3);
85
Algoritmo aging
clock tick 2 110101 11100000 11000000 00100000 10000000 01100000 10100000 c) clock tick 3 100010 11110000 01100000 00100000 01000000 10110000 01010000 d) clock tick 4 011000 01111000 10110000 10001000 00100000 01011000 00101000 e)
86
Bits R para pginas 0-5 clock tick 0 clock tick 1 101011 110010 Contadores
0 10000000 1 00000000 2 10000000 3 00000000 4 10000000 5 10000000 a) 11000000 10000000 01000000 00000000 11000000 01000000 b)
Paginao por demanda: pginas so carregadas na memria somente quando so necessrias; Pr-paginao: Working set
Conjunto de pginas que um processo est efetivamente utilizando (referenciando) em um determinado tempo t;
w(k,t)
87
simplificar o working set pode ser visto como o conjunto de pginas que o processo referenciou durante os ltimos t segundos de tempo; bit R e o tempo de relgio (tempo virtual) da ltima vez que a pgina foi referenciada;
Utiliza
88
MEMRIA VIRTUAL PAGINAO TROCA DE PGINAS Algoritmo Working Set: Tempo virtual atual (CVT): 2204
Bit R
Tempo do ltimo Uso (TLU)
* Se todas as pginas estiverem com R=1, uma pgina escolhida randomicamente para ser removida; ** Se todas as pginas estiverem no WS, a pgina mais velha com R=0 escolhida;
1 1 1 0 1 Percorrer as pginas examinando bit R; Se (R==1)* pgina foi referenciada; faz TLU da pgina igual ao CVT; Se (R==0 e age > ) pgina no est no working set; remove a pgina; Se (R==0 e age <= ) ** pgina est no working set; guarda pgina com maior age;
89
2020
2032 1620
1
1 0
Tabela de Pginas
Algoritmo WSClock:
Clock
+ Working Set; Lista circular de pginas formando um anel a cada pgina carregada na memria; Utiliza bit R e o tempo da ltima vez que a pgina foi referenciada; Bit M utilizado para agendar escrita em disco;
90
Algoritmo WSClock:
1620 0
a)
R==1
b)
91
Algoritmo WSClock:
1620 0
c)
d)
R==0 e age>t
Algoritmo WSClock:
1620 0 2032 1
2084 1
2003 1
1980 1 1213 0
2020 1
2014 0
2003 1
1980 1 1213 0
2020 1
2014 0
c)
R==0 e age>t
d)
Algoritmo WSClock:
Se
ento
Melhor
disco;
94
Tabelas de segmentos com n linhas, cada qual apontando para um segmento de memria; Vrios espaos de endereamento; Alocao de segmentos segue os algoritmos j estudados:
FIRST-FIT; BEST-FIT; NEXT-FIT; WORST-FIT; QUICK- FIT;
95
Segmentao:
Permite Facilita
compartilhamento de procedimentos e dados entre processos; tambm utilizada para mapeamento entre os endereos lgicos e fsicos;
Tabela
MMU
Segmentao:
97
c1 c2 c3 c4 c5 c6
d1 d2 d3 d4 p1 p2 p3
01
Tabela de Segmentos
Segmento Base Limite
00 01 10
c1 c2 c3 c4 c5 c6
98
Segmento 0
Dados 1
0 1
25286 4425
Dados 1
68348 72773
Segmento 0
Dados 2
0 1
25286 8850
Segmento 1
Memria Fsica
99
Cada segmento dividido em pginas lgicas; Cada segmento possui uma tabela de pginas mapear o endereo de pgina lgica do segmento em endereo de pgina fsica; No endereamento, a tabela de segmentos indica, para cada segmento, onde sua respectiva tabela de pginas est;
100
p.f
101
No
Sim
Vrios
Espao total de endereo pode exceder memria fsica? possvel distinguir procedimento de dados e proteg-los?
Sim
Sim
No
Sim
102
Sim
Para permitir que programas e dados possam ser divididos em espaos de endereamento logicamente independentes; compartilhamento e proteo
103
CONTEDO
Consideraes Iniciais Gerenciamento de Memria
Memria Virtual Consideraes Finais
104
CONSIDERAES FINAIS
Memria
Gerenciamento
Memria Virtual
CONSIDERAES FINAIS
Memria Virtual
106
CONSIDERAES FINAIS
Memria Cache
muito do que foi discutido para memria virtual, aplica-se para a memria cache suporte de hardware conceito aplicvel a vrios domnios
107
CONTEDO
Consideraes Iniciais
Gerenciamento de Memria Memria Virtual Consideraes Finais
108
109