You are on page 1of 29

GERNCIA DE MEMRIA

Baseado nos slides de Tiago Ferreto

CONCEITOS BSICOS

Memria principal

central em sistemas de computador CPU e sistema de I/O interagem com a memria um conjunto (array) de bytes ou palavras, cada um com seu prprio endereo CPU faz busca e armazenamento na memria um programa deve ser carregado na memria para ser executado

CONCEITOS BSICOS

Memria principal (cont.)


palavra de memria: conjunto de clulas de memria que podem ser lidas ou escritas de uma s vez em geral endereada por byte possui dois registradores para as operaes de leitura e gravao: Registrador de endereo de memria e Registrador intermedirio (buffer)

CONCEITOS BSICOS

Memria principal (cont.)

Registrador de endereo de mmria

contm o endereo de memria onde se encontra ou onde vai ser gravada a informao (instruo ou dado)

Registrador Intermedirio (buffer)


leitura: recebe a informao da memria escrita: contm a informao a ser gravada

Seletor: seleciona a clula de memria cujo endereo se encontra no registrador de endereos para a transferncia (leitura/escrita)

Registrador de endereo de memria

Registrador intermedirio (buffer)

Seletor 0 1 2 ... ... 32 33 ... N

Memria principal

CONCEITOS BSICOS

Memria fsica: memria real do sistema implementada com CIs


possui reas reservadas (ex. vetor de interrupes) endereo fsico: acessa posies da memria fsica

Memria lgica (virtual): memria que um processo pode acessar


utilizao de endereos lgicos necessria traduo endereos lgico para endereo fsico

Espao de endereamento do processo

conjunto de endereos que o processo pode acessar


6

ESPAO DE ENDEREAMENTO DO PROCESSO

Pilha

Dados Cdigo
7

TRADUO DE ENDEREOS

13 k proc a

0 10 k proc b traduo de endereo

memria fsica

traduo de endereo
kernel 0 19 k
8

CONCEITOS BSICOS

MMU (Memory Management Unit)


prov mecanismos bsicos para gerncia de memria proteo de acesso mapeamento de endereos lgicos em endereos fsicos Normalmente est junto ao processador CPU sempre enxerga endereos lgicos

MMU

10

PROTEO DE ACESSO
verifica se endereo acessado est no espao de endereamento do processo registradores limite inferior e limite superior

endereo fsico = endereo lgico carregamento de programa com relocao

Programas gerados para o endereo 0 de limite e carregados em outro endereo (mais processos) Deve corrigir o programa antes de acessar a memria, em tempo de carga

funcionamento
se (end < regliminf) ento gera interrupo - endereo ilegal se (end > reglimsup) ento gera interrupo - endereo ilegal acessa memria[end]

11

PROTEO DE ACESSO
registradores base e limite todos programas so carregados com endereo inicial = 0

Carregador absoluto (incrementa o endereo de carga ao registrador base) se (end > reglimite) ento

funcionamento

gera interrupo - endereo ilegal

end = end + regbase acessa memria[end]


12

MONOPROGRAMAO
existe um nico processo na memria em execuo e ao mesmo permitido usar toda a memria esquema mais simples possvel um processo por vez na memria o processo pode usar toda a memria a memria dividida entre o sistema operacional e o processo do usurio

13

MONOPROGRAMAO

Formas de organizar a memria

14

MULTIPROGRAMAO

existem vrios processos na memria aptos executar e um em execuo

15

PARTIES FIXAS
memria dividida em parties de tamanhos fixos (podem ser diferentes) quando programa carregado entra em uma fila de processos para utilizar uma partio livre o nmero de processos concorrentes baseado no nmero de parties Exemplo: mquina com 32 kbytes de memria

4k: processos pequenos 6k: processos mdios 12k: processos grandes 10k: kernel

16

PARTIES FIXAS

alocao de memria para os processos


de acordo com a necessidade de cada processo modelos

uma fila nica partio disponvel pode ser menor que 1o. processo da fila (pega o prximo processo)

pode ocasionar postergao indefinida processos pequenos recebem parties grandes

aumento de fragmentao interna

uma fila por partio pode haver desbalanceamento entre as filas

17

PARTIES FIXAS

18

PARTIES FIXAS

Problema: mapeamento entre tamanho do programa e tamanho da partio

Fragmentao interna: tamanho da partio maior que o tamanho do processo

espao que sobra dentro da partio quando processo alocado na partio

Fragmentao externa: existem parties livres que, se combinadas, poderiam ser usadas por um processo que est aguardando

19

PARTIES VARIVEIS
tamanho das parties ajustado dinamicamente s necessidades dos processos SO contm lista de espaos livres na memria fsica

mapa de bits ou lista encadeada

20

PARTIES VARIVEIS

quando programa carregado o SO percorre a lista de lacunas para alocar espao para o processo
espao necessrio alocado - retirado da lista de lacunas espao restante inserido na lista de lacunas

quando programa termina


espao alocado para o processo liberado se existirem blocos adjacentes livres, ento agrupa

21

PARTIES VARIVEIS

22

PARTIES VARIVEIS

Algoritmos para percorrer lista de lacunas


first-fit: utiliza a 1a. lacuna que encontrar com tamanho suficiente (mais utilizado!) next-fit: procura a partir da ltima posio alocada best-fit: utiliza a lacuna que resultar na menor sobra worst-fit: utiliza a lacuna que resultar na maior sobra

23

PARTIES VARIVEIS

Fragmentao externa
processo precisa ocupar uma rea contgua de memria partio no usada menor do que o tamanho do processo para ser executado processo no pode ser executado pois no existe partio disponvel com o tamanho do processo

Compactao
permite juntar reas livres requer realocao dinmica

24

SWAPPING
tcnica utilizada quando no possvel manter todos os processos simultaneamente na memria gerncia de memria reserva uma rea de disco operaes

swap-out: copia processo da memria para disco swap-in: copia processo do disco para memria

dispatcher verifica se processo est na memria ou em disco e realiza operao de swapping para carregar processo na CPU
25

EXERCCIOS
1)

Considere um sistema cuja gerncia de memria feita atravs de parties variveis. Nesse momento, existem as seguintes lacunas: 10k, 4k, 20k, 18k, 7k, 9k, 12k e 13k, nessa ordem. Quais espaos sero ocupados pelas solicitaes: 5k, 10k e 6k, nessa ordem, se:
a)

b)
c)

First-fit for utilizado? Best-fit for utilizado? Worst-fit for utilizado?

26

EXERCCIOS
2) Considere novamente um sistema cuja gerncia de memria feita atravs de parties variveis. Nesse momento, existem as seguintes lacunas: 10k, 4k, 20k, 18k, 7k, 9k, 12k e 13k, nessa ordem. Quais espaos sero ocupados pelas solicitaes: 15k, 4k e 8k, nessa ordem, se:
a)

b)
c)

First-fit for utilizado? Best-fit for utilizado? Worst-fit for utilizado?

27

EXERCCIOS
3) Compare parties fixas e variveis com respeito ao compartilhamento de memria (Cdigo). Para cada uma, mostre como possvel ou por que impossvel implementar. Lembre-se de que sempre necessrio manter a proteo entre usurios e que os programas ocupam um espao lgico e contguo. 4) Qual a fragmentao apresentada pelos mtodos de gerncia de memria baseados em parties fixas e variveis? Justifique com exemplos.
28

EXERCCIOS
5) Parties fixas e variveis podem ser implementados com dois tipos de hardware: baseado em registradores de limite ou baseado em registrador de base. Pode-se tambm utilizar swapping associado ao mecanismo de parties. Discuta a viabilidade de usar um ou outro hardware, quando a gerncia de memria for: Parties fixas com swapping Parties variveis com swapping

29

You might also like