gerenciamento de memória prof. raimundo macêdo · 2 tópicos)introdução)ptii td...
TRANSCRIPT
1
Laboratório de Sistema de Distribuídos – LaSiDDepartamento de Ciência da Computação – DCC
UFBA
Gerenciamento de Memória
Prof. Raimundo Macêdo
Tópicos
IntroduçãoP ti i t d ó iParticionamento de memóriaSwappingMemória virtual/PaginaçãoSegmentaçãoExercícios
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
2
Tópicos
IntroduçãoP ti i t d ó iParticionamento de memóriaSwappingMemória virtual/PaginaçãoSegmentaçãoExercícios
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
Motivação para gerenciamentoEm geral a memória principal não comporta todos os processos ativos num determinado momento
O S.O. deve manter os processos que estejam fazendo uso efetivo da memória ou que sejam prioritários
Em geral apenas parte do processo (espaço lógico) é carregado
Requisitos de memória freqüência de uso e prioridades variam
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
Requisitos de memória, freqüência de uso e prioridades variam dinamicamente
Objetivos finais Tempo de resposta
Throughput (número de tarefas executadas)
3
O Problemaalocar espaço de memória para processos
Monoprogramação: duas partesSO + um processo p
Multiprogramação: várias partesSO + vários processos
Alguns problemas...Como organizar os espaços de memória? Quando mapear (bind) endereço de programa em end. de
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
Quando mapear (bind) endereço de programa em end. de memória?Em que posição da memória?Como proteger um processo da invasão de sua área ou permitir um compartilhamento controlado de sua área?
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
4
Background
1. Program must be brought into memory and placed within a process for it to be run.
2. Input queue – collection of processes on the disk that are waiting to be brought into memory to run the program.
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
p g3. User programs go through several
steps before being run.
Multistep Processing of a User Program
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
5
Logical vs. Physical Address Space
The concept of a logical address space that is bound to a separate physical address space is central to p p y pproper memory management.
Logical address – generated by the CPU; also referred to as virtual address.
Physical address – address seen by the memory unit.
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
Logical and physical addresses are the same in compile-time and load-time address-binding schemes; logical (virtual) and physical addresses differ in execution-time address-binding scheme.
Binding of Instructions and Data to Memory
1. Compile time: If memory location known a
Address binding of instructions and data to memory addresses canhappen at three different stages:
1. Compile time: If memory location known a priori, absolute code can be generated; must recompile code if starting location changes.
2. Load time: Must generate relocatable code if memory location is not known at compile time.
3. Execution time: Binding delayed until run time
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
if the process can be moved during its execution from one memory segment to another. Need hardware support for address maps (e.g., base and limit registers).
6
Memory-Management Unit (MMU)
Hardware device that maps virtual to physical address.
In MMU scheme, the value in the relocation register is added to every address generated by a user process at the time it is sent to memory.
The user program deals with logical addresses; it never sees the real physical addresses
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
never sees the real physical addresses.
Dynamic relocation using a relocation register
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
7
Dynamic Loading
Routine is not loaded until it is calledBetter memory-space utilization; unused routine is never loaded.Useful when large amounts of code are needed to handle infrequently occurring cases.No special support from the operating system
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
is required implemented through program design.
Tópicos
IntroduçãoP ti i t d ó iParticionamento de memóriaSwappingMemória virtual/PaginaçãoSegmentaçãoExercícios
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
8
Partições Iguais de Tamanho Fixo(como gerenciar a mem. entre os processos?)
ProblemaMemória Principal
ProblemaDificilmente os processos têm o tamanho da partição
fragmentação interna
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
SO
Partições Diferentes de Tamanho Fixo
Filas Múltiplas X Fila ÚnicaMemória Memória Principal
Novos Processos
Principal
Novos Processos
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
SOSO
9
Filas Múltiplasum processo pode esperar muito para começar a execução,
Partições Diferentes de Tamanho Fixo
mesmo se existe espaço disponível
Fila Únicapode-se percorrer a fila para achar o processo com tamanho mais adequado para a partição disponível
discriminação de processos pequenos (p.e., processos interativos)
outras estratégias de escolha
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
outras estratégias de escolhaum processo não pode deixar de usar a memória mais que k vezesreservar partições pequenas
Partições de Tamanho Variável
pontos fracos das partições fixaspequenos processos desperdiçam memóriapouca flexibilidade
soluçãocriar partições dinamicamente:
dar ao processo o que for necessário
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
dar ao processo o que for necessário
10
Partições de Tamanho Variável
SO SO SO SO SO SO SO SO
aspectos:fragmentação externa:
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
fragmentação externa:necessidade de compactação (desfragmentação) da memória
tamanho dos processos:alocação de espaço extra para alocação dinâmica (heap e
pilha)
Gerenciando a Alocação da Memória
Mapa de BitsDividir a memória em unidades de alocaçãoCada unidade está relacionada com um bit
Tamanho da unidade X Tamanho do mapa de bits
Na alocação de memória (n unidades de alocação)busca-se por n bits consecutivos indicando memória livrePonto fraco: algoritmo de busca seqüencial
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
111110000111111...111
...Memória Principal
Mapa de Bits
Processo 1 Espaços Processo 2 Processo n
11
Lista Ligada
Gerenciando a Alocação de Memória
Ordenada por endereço: facilita a atualização da listaDois espaços consecutivos se transformam em apenas um
...Memória Principal
Processo 1 Espaços Processo 2 Processo n
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
P|0|5
Principal
Lista Ligada E|5|4 P|9|6 P|x|y...
Algoritmos de Alocação
first fit:busca o primeiro espaço no qual o processo cabe
next fit:semelhante a first fit, mas a busca não começa do início
best fit: busca espaço com tamanho mais próximo do tamanho do processo
worst fit: busca o espaço com a pior aproximação de tamanho
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
first fit: algoritmo com melhor desempenho e melhor uso de memória
12
Sistema Buddy de AlocaçãoCaracterísticas
Rápida alocaçãoListas de espaços com tamanhos potências de 2Fragmentação interna
0 1 Mb
P1: 140 K 256 KP2: 70 K 256 K 128K
512 K256 K
tempo
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
P2: 70 K 256 K 128KP3: 130 K 256 K 128K 256 KP3: 35 K 256 K 128K 256 K64K
OBS: o SO mantém listas de alocação por potência de 2
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
13
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
Quando um programa é carregado na memória o enrereço real (atual) é determinado
RELOCAÇÃO
memória, o enrereço real (atual) é determinado
Um processo pode ocupar diferentes posiçoes de memória durante a execução (causado por swapping)
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
14
EndereçosLogico
Referente a uma localização de memória independente de associações atuais É necessário tradução para end. físico
RelativoExpressado como um enrereço relativo a algum ponto conhecido
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
FísicoEnrereço absoluto ou atual na memória principal
Relocação e Proteção
Endereçamento relativoEnd. Relativo (X)
Reg. Base
Reg Limite
LDA X
X
Somador
Comparador
Início do Processo
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
Interrupção
Reg. Limite
15
Tópicos
IntroduçãoP ti i t d ó iParticionamento de memóriaSwappingMemória virtual/PaginaçãoSegmentaçãoExercícios
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
Swapping
ação de mover processos entre a memória e o discomecanismo para superar a limitação do tamanho de memóriap pswap space: área para armazenar processos no disco durante swappingalgoritmos de alocação do processo no disco semelhantes aos de alocação na memória
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
16
Tópicos
IntroduçãoP ti i t d ó iParticionamento de memóriaSwappingMemória virtual/PaginaçãoSegmentaçãoExercícios
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
Memória Virtual
o tamanho total da área de código, dados e pilha pode exceder o tamanho da memória físicao sistema operacional mantém as partes do programa em uso na memória e as outras partes em discoos endereços gerados nos programas são chamados endereços virtuaisos endereços virtuais formam o espaço de endereçamento virtual
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
17
Suporte de hardware necessárioPara memória virtual
Suporte de HW para paginação e segmentaçãosegmentação
O SO tem que gerenciar o deslocamentod á i t t ó i
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
de páginas e segmentos entre a memória e o disco
PaginaçãoCada processo possui uma tabela de páginaspáginas
Cada entrada na tabela de página contêm o número de um frame para a memória principal
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
Um bit é necessário para indicar se a página está na memória
18
Bit de modifiação
Outro bit é necessário para indicar se a pagina foi modificada desde sua últimapagina foi modificada desde sua última carga na memória
Caso não tenha ocorrido alterações, a página não necessita ser “swapped out”
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
página não necessita ser swapped out
Entradas da tabela de página
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
19
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
Two-Level Scheme for 32-bit Address
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
20
Tabelas de Páginas
A tabela de páginas pode ocupar espaço demais da memóriademais da memóriaTabelas de páginas são também colocadas em memória virtualQuando o processo está rodando, parte da tabela de página está na memória
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
da tabela de página está na memória
Translation Lookaside Buffer
Each virtual memory reference can cause two physical memory accessescause two physical memory accesses
one to fetch the page table entryone to fetch the data
To overcome this problem a high-speed cache is set up for page table entries
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
p p gcalled the TLB - Translation Lookaside Buffer
21
Translation Lookaside Buffer
Contains page table entries that have been most recently usedbeen most recently usedFunctions same way as a memory cache
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
Translation Lookaside Buffer
Given a virtual address, processor examines the TLBexamines the TLBIf page table entry is present (a hit), the frame number is retrieved and the real address is formedIf page table entry is not found in the
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
If page table entry is not found in the TLB (a miss), the page number is used to index the process page table
22
Translation Lookaside Buffer
First checks if page is already in main memorymemory
if not in main memory a page fault is issuedThe TLB is updated to include the new page entry
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
23
Page Size
Smaller page size, less amount of internal fragmentationgSmaller page size, more pages required per processMore pages per process means larger page tablesLarger page tables means large portion of page
bl i i l
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
tables in virtual memorySecondary memory is designed to efficiently transfer large blocks of data so a large page size is better
Page Size
Small page size, large number of pages will be found in main memorywill be found in main memoryAs time goes on during execution, the pages in memory will all contain portions of the process near recent references. Page faults low.Increased page size causes pages to
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
Increased page size causes pages to contain locations further from any recent reference. Page faults rise.
24
Page Size
Small page size, large number of pages will be found in main memorywill be found in main memoryAs time goes on during execution, the pages in memory will all contain portions of the process near recent references. Page faults low.Increased page size causes pages to
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
Increased page size causes pages to contain locations further from any recent reference. Page faults rise.
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
25
Memória Virtual (cont.)
Placa com CPU
a CPU envia endereçosvirtuais para a UGM
CPUMemória Controlador
de disco
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
Unidade de Gerenciamentode Memória (UGM)
Barramentoa UGM enviaendereços físicospara a memória
Paginação
Idéia BásicaDividir a memória (page frames) e o processo em (p g f ) ppedaços pequenos (páginas virtuais)
Semelhante às partições de tamanho fixoPáginas são menoresUm processo pode ocupar mais que uma páginaA á i ã i l d i
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
As páginas não precisam ser alocadas continuamente
26
Tabela de Páginas0-4K 2
4K-8K 18K-12K 6
0-4K4K-8K
8K-12Kd12K-16K 0
16K-20K 420K-24K 324K-28K X28K-32K X32K-36K X36K-40K 540K-44K X
12K-16K16K-20K20K-24K24K-28K28K-32K
page frame
espaçode end.virtual
endereçosde memória
física
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
40K-44K X44K-48K 748K-52K X52K-56K X56K-60K X60K-64K X
página virtual
Paginação: Tabelas de Páginas
0
1
Memória Principal
0 0 0 2 0 32
3
4
5
6
7
0
1
2
3
0
1
6
7
0
1
2
3
2
9
10
11
0
1
2
3
4
5
Tabelas de Páginas
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
8
9
10
11
27
Operação Interna da UGM0 010 1 1 001 12 110 13 000 13 000 14 100 15 011 16 000 07 000 08 000 09 101 110 000 0
0010 000000000100 110 000000000100
endereço virtual: 8196
endereço físico de saída: 24580
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
11 111 112 000 013 000 014 000 015 000 0
Paginação: Endereçamento
Ilustração do Procedimento de Endereçamento
lExemploTamanho da Página: 2KTamanho do Processo: 4,5 KEndereço Relativo: 05DE
Número de Página
Deslocamento
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
Processo
0
1
2
0
1
7
Tabela de Página
00000 10111011110
05DE
5DE
28
Exemplo de Entrada da Tabela de Páginas
presente/ausentemodificada
p
número do page frame
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
referenciada proteção
Exemplos de tamanho de páginas
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
29
Objetivos da Substituição de Páginas
Objetivo PrincipalMinimizar o número de faltas de páginas
Conseqüentemente...Minimizar a sobrecarga do sistema operacionalMinimizar o número de I/Oetc
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
Páginas virtuais referenciadas são colocadas na memória até quetodas as molduras (frames) estejam preenchidas
Substituição de Páginas
Quando não há mais molduras vazias, escolhe-se uma dasque estão ocupadas. Qual ????
Fatores que influenciam:
1) A üê i d f ê i ( d d á i )
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
1) A seqüência de referências (endereços das páginas)2) O número de molduras disponíveis3) O algoritmo de substituição
30
Algoritmos de Substituição de Páginas
1. Algoritmo ótimo2. Página não usada recentemente: NRU (Not-Recently-Used page)g ( y p g )3. First-In, First Out (FIFO)4. Segunda Chance5. Algoritmo do Relógio6. Substituição da página menos recentemente usada: LRU (Least
Recently Used)
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
Anomalia de Balady : nem sempre é verdadeiro que quantomais molduras, menos faltas de página ocorrerão., p g
Quando uma página referenciada não está na
memória
Exemplo :
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
Seqüência : 0 1 2 3 0 1 4 0 1 2 3 43 e 4 moldurasAlgoritmo FIFO
31
Algoritmo Ótimo
o frame a ser substituído é o que será referenciado por últimoi í l d i l t dimpossível de ser implementadoútil para análises comparativas de comportamento de algoritmos
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
os seguintes bits são mantidos para cada página:R- página referenciada (lida ou escrita)
á i difi d
Página não Usada Recentemente (NRU)
M -página modificada
classesClasse 0: R=0 e M=0Classe 1: R=0 e M=1Classe 2: R=1 e M=0Classe 3: R=1 e M=1
Algoritmo: remover aleatoriamente uma páginaprocurando da classe 0 à classe 3
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
fácil de programar, bom desempenho e simples
32
mantém-se uma lista de páginas ordenada por tempo de cargaalgoritmo:
Algoritmo FIFO
algoritmo:primeira página carregada, primeira página a sair
simplicidadeponto fraco: o critério não é bom
páginas antigas podem estar sendo muito referenciadas
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
baseado no algoritmo FIFOusa o bit R Se R=1 faz R=0 e coloca a página no final da fila
Algoritmo da Segunda Chance
usa o bit R. Se R=1, faz R=0 e coloca a página no final da fila
Lista de Páginas
R=1R=1R=0R=0R=1 Lista de Páginas
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
Lista de Páginas
R=0R=0 R=0R=0R=1
R=0R=0 R=0R=1R=0
33
forma alternativa de implementação do algoritmo de segunda chancemantém uma lista circular de páginas com um apontador para a
Algoritmo do Relógio
mantém uma lista circular de páginas com um apontador para a página mais antigase R=0, substitui a página e atualiza o apontadorse R=1, atualiza o apontador
Lista de Páginas R=1 R=1Lista de
Pá iR=1
Lista de Páginas
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
Páginas
R=1
R 1
R=0R=0
R=0 R=0
R=0R=0
R=0
PáginasR=0
R=0R=0
R=0Páginas
baseia-se no princípio da localidade de referênciaá i d há i t
Algoritmo da Página Menos Recentemente Usada (LRU)
remove a página usada há mais tempoalgumas implementações:
em hardwareem software
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
34
Implementação de LRU em hardware (1)
equipar o hardware com um contador C que automaticamente tem seu valor incrementado a cada instruçãoçcada entrada na tabela de páginas tem um campo para um valor do contadordepois de cada acesso à memória, o valor de C é armazenado na entrada da página acessadaquando uma página tiver que sair, escolhe-se a página com menor valor do contador
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
menor valor do contador
mantém-se uma matriz M(n x n), onde n é o número de páginas
Implementação de LRU em hardware (2)
algoritmoM ← 0se página k for referenciada
M[k,*] ← 1M[*,k] ← 0
a linha com menor número de bits será a página referenciada há mais tempo
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
tempoProblema: SO dependente do Hardware
35
pequena variação de LRU (aging)manter um contador associado a cada página e periodicamente:
d l bi d d di i
Implementação de LRU por software
deslocar os bits do contador para a direita somar o bit R à parte mais significativa
escolhe a página com menor valor do contador
P1 P2 P3 P4 P5
C1: 1000C2: 0000C 1000
C1: 0100C2: 1000C 0100
Obs.: dentro de um intervalo pode
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
R: 1 0 1 1 0
R: 0 1 0 1 0
C3: 1000C4: 1000C5: 0000
C3: 0100C4: 1100C5: 0000
intervalo pode haver várias referências
Questões de Projeto de Sistemas de Paginação
políticas de carregamento de páginaslíti d l ã ( l b l/l l) d á ipolíticas de alocação (global/local) de páginas
tamanho das páginasaspectos de implementação
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
36
Políticas de Carregamento de Páginas
por demandauma página é carregada apenas quando uma referência a ela é feita (falta de página)pode haver muitas faltas de página no início do processo, depois há uma estabilização
pré-paginaçãoantecipa-se às faltas de páginas, trazendo para a memória um conjunto de páginaspode ser usada no início do processo ou quando o processo é re-
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
pode ser usada no início do processo ou quando o processo é reescalonado para executar (trazido do disco para memória)baseia-se no working set do processo (conjunto de páginas sendo acessadas pelo processo)
alocação local: considera-se somente um processol ã l b l id t d ó i
Políticas de Alocação (global/local) de páginas
alocação global: consideram-se todos os processos na memóriaem geral funciona melhor, principalmente quando o working set pode variar
quantas páginas alocar por processoa cada processo um número fixo de frames
se for menor que o conjunto de trabalho do processo?a cada processo um número variável de frames
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
a cada processo um número variável de framesse o número de faltas for alto, mantém mais páginas na memóriacusto de gerenciamento: mais um ponto para ser controlado
37
páginas pequenas x páginas grandes:páginas pequenas:
Tamanho das Páginas
páginas pequenas: tendem a uma menor fragmentação internatendem a um melhor uso da memória
páginas grandes:tendem a melhor eficiência (menos páginas sendo movidas para/de o disco (swapped))
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
Aspectos de Implementação
trancas (locks) em moldurasalgumas molduras podem ser trancadas (locked) e não podem ser retiradas da memória (suporte a operação de I/O)
quando uma página modificada será escrita em memória secundária
por demandasomente quando a página é selecionada para ser substituídaminimiza o número de escritas aumenta o tempo de substituição de páginas
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
aumenta o tempo de substituição de páginaspré-atualização
antes de ser substituída (periodicamente, várias páginas que sofreram atualização são escritas no disco)manutenção de um conjunto de frames livres
38
Aspectos de Implementação (cont.)
buffer de informação sobre a tabela de páginas em cache interno à UGM (translation lookaside buffer)
reduzir o número de acessos à memória
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
Tópicos
IntroduçãoP ti i t d ó iParticionamento de memóriaSwappingMemória virtual/PaginaçãoSegmentaçãoExercícios
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
39
Segmentação
Idéia BásicaDividir o processo em segmentos não necessariamente de tamanhos iguaisDividir o processo em segmentos não necessariamente de tamanhos iguais
CaracterísticasEsquema de endereçamento
tabelas de segmentos para indicar o tamanho do segmento e o endereço basePodem ser de tamanhos diferentesVisível para o programador ou para o compilador
geralmente definem-se segmentos de dados, código, pilha etc
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
partes de um programa podem mudar de tamanho independentemente de outrasauxilia na implementação de bibliotecas compartilhadas
Exemplo de Segmentação:Tabelas de um Compilador
segmento 0 segmento 1 segmento 2 segmento 3 segmento 4
tabelade
símbolos
textofonte
constantesárvore
deparsing
pilhade
chamadas
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
Array ...
40
Segmentação Pura
segm.04K
segm.04K
segm.7
segm.04K
segm.7
segm.04K
segm.7
segm.04K
segm.7segm.1
8K
segm.25K
segm.38K
g5K
segm.25K
segm.38K
3K
g5K
segm.25K
segm.38K
3K
g5K
segm.25K
segm.64K
3K segm.25K
segm.64K
segm.54K
g5K
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
8K
segm.47K
8K
segm.47K
8K
segm.54K3K
segm.54K3K
4K
10K
Segmentação com Paginação
pág. 0
pág. 1
tabela de descritoresde segmentos
tabela de páginas para segmento 0
ponteirosá isegm. 0
segm. 1
segm. 2
segm. 3
segm. 4
segm 5
pág. 1
pág. 2
pág. 0
tabela de páginas para segmento 1
para páginas
i
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
segm. 5pág. 1
pág. 2
ponteirospara páginas
41
Obtenção de Endereço Físico com Segmentação
seletor desegmento
deslocamento
Endereco virtual : {#seg, deslocamento)
segmento
descritorendereço base
limite
outros campos
+
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
endereço linear
endereço físico
tradução de endereço em segmentação pura
#seg Deslocmento d
Tam | Base | bit P
base + d
tam
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
Tabela de Segmentopor processo
42
tradução de endereço em segmentação com paginação
#seg Deslocmento
num página #p, desl. página d
#tab Página
#P
#p’
#p’ end físico #p’ + d
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
Tabela de Segmentopor processo
tab de páginas, uma por seg.
Entrada da tabela de segmentos
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
43
P t ãProteção
E
Compartilhamento
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
Exercícios
Extraídos de Modern Operating Systems, A.S.Tanenbaum, Prentice Hall, Inc. 1992
1. Considere um sistema de swapping em que a memória consiste dos seguintes tamanhos de espaços (em ordem de memória): 10K, 4K, 20K, 18K, 7K, 9K, 12K e 15K. Qual espaço é usado para pedidos sucessivos de segmentos de(a) 12K(b) 10K
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
(c) 9Kusando-se first fit? Repita a questão para best fit, worst fit e next fit.
44
Exercícios (cont.)
2. Um minicomputador usa o sistema buddy para gerenciamento de memória. Inicialmente ele tem um bloco de 256K no endereço 0. çDepois de pedidos sucessivos de 5K, 25K, 35K e 20K, quantos blocos existirão no sistema e quais serão seus tamanhos e endereços?
3. Qual a diferença entre um endereço físico e um endereço virtual?4. Usando a tabela de página da Fig. 3-11, dê o endereço físico
correspondente a cada um dos endereços virtuais seguintes:
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
co espo de te a cada u dos e de eços v tua s segu tes:(a) 20(b) 4100(c) 8300
Exercícios (cont.)5. Um computador tem 4 page frames. O tempo de carregamento,
tempo de último acesso e os bits M e R para cada página estão mostrados abaixo (tempos em clock ticks):mostrados abaixo (tempos em clock ticks):Page frame Carregado Últ.referência R M
0 126 279 0 01 230 260 1 02 120 272 1 13 160 280 1 1
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
(a) que página seria substituída por NRU?(b) que página seria substituída por FIFO?(c) que página seria substituída por LRU?(d) que página seria substituída por Segunda Chance?
45
Exercícios (cont.)
6. Se o algoritmo FIFO de substituição de páginas é usado com quatro page frames e oito páginas virtuais, quantas faltas de páginas ocorrerão para a cadeia de referências 0172327103 se os quatro page frames estão inicialmente vazios? Repita o problema para LRU.
7. Um pequeno computador tem quatro page frames. No primeiro clock tick os bits R são 0111 (página 0 à esquerda). Em clock ticks subseqüentes os valores são 1011, 1010, 1101, 0010, 1010,
LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br
1100 e 0001. Se o algoritmo de aging for usado com um contador de 8 bits, dê os valores dos quatro contadores depois do último tick.