gerenciamento de memória · gerenciamento de memória ... para carregar um programa muito grande...
TRANSCRIPT
Gerenciamento de memória
Motivos:
1 – Manter a CPU ocupada o máximo de tempo para não existir gargalos na busca de dados na memória;
2 – Gerenciar os espaços de endereçamento para que processos executem sem problemas de espaço e acessos indevidos;
Gerenciamento de memória
Gerenciamento sem abstração de memória
MOV register1,1000
Move o conteúdo da posição de memória 1000 para o registrador, não abstraindo o endereço real da memória
Gerenciamento de memória
Problemas: necessidade de efetuar a adição toda vez que
precisar acessar uma posição de memória; Só funciona se todos os processos couberem
na memória; Não trabalha com a possibilidade de aumento
do espaço de endereçamento dos processos
Gerenciamento de memória
Troca de Processos
Processos inteiros são colocados ou retirados da memória mediante necessidade;
Se a área do processo precisar crescer, ele pode ser movido para outro local ou utilizar espaços adjacentes caso estejam livres.
Gerenciamento de memória
Troca de Processos
Processos inteiros são colocados ou retirados da memória mediante necessidade;
Se a área do processo precisar crescer, ele pode ser movido para outro local ou utilizar espaços adjacentes caso estejam livres.
Gerenciamento de memória
Troca de Processos Processos quando alocados, possuem área
para crescimento, para evitar possíveis realocações
Gerenciamento de memória
Troca de Processos – Gerenciando a área livre
Existem 2 alternativas: 1 – Mapa de bits; 2 – Lista encadeada.
Gerenciamento de memória
Mapa de bits – cada porção de dados conterá 1 bit para mapear se está ou não sendo utilizado por algum processo
Gerenciamento de memória
Lista encadeada: como ficará a alocação de memória antes e depois que o processo B termine.
Gerenciamento de memória
Lista encadeada: Na imagem do slide anterior, a ordenação é pelo endereço, porém, podemos buscar os segmentos livres por:
First fit; Next fit; Best fit; Worst fit; Quick fit
Gerenciamento de memória
Como gerenciar Bloatware? (termo utilizado para definir softwares que usam quantidades excessivas de memória)
Há 30 anos atrás dezenas de usuários compartilhavam 4 mb de memória, hoje a microsoft recomenda no mínimo 1 gb de memória para 1 usuário apenas;
Há a necessidade de se executar programas grandes demais para SE ENCAIXAREM na memória;
Gerenciamento de memória
Há a necessidade de haver sistemas que possam dar suporte a múltiplos programas em execução simultânea que, coletivamente, excedam a memória;
Para carregar um programa muito grande na memória, a troca de processos certamente levará um tempo considerável para executar esta tarefa
Gerenciamento de memória
Memória Virtual – A solução com swapping apenas funciona bem caso os processos sejam relativamente pequenos para sempre achar um espaço disponível para todo o processo.
Hoje existe uma demanda para executar processos que sejam grandes demais para se encaixarem na memóriaencaixarem na memória
Gerenciamento de memória
Paginação – divisão de toda a memória RAM em diversos blocos chamados de páginas;
Cada página é uma série contígua de endereços;
As páginas são mapeadas na memória física, mas nem todas precisam estar nela para executar o programa;
Gerenciamento de memória
Em memória virtual, cada programa tem seu próprio espaço de endereçamento, que é dividido por blocos chamados páginas;
Cada página é uma série contígua de endereços;
Quando o programa referencia uma parte do espaço de endereçamento que está na memória física, o hardware executa o mapeamento necessário dinamicamente (MMU – memory management unit)
Gerenciamento de memória
Quando o programa referencia uma parte de seu espaço de endereçamento que não está não está na memória física,na memória física, o SO é alertado para obter a parte que falta e reexecutar a instrução que falhou (page fault)
Com paginação, os endereços referenciados pelo programa são chamados de endereços virtuais gerenciados pela MMU.
Gerenciamento de memória
Na figura anterior, O computador possui 32 kb de memória física, porém pode gerar endereços virtuais de 16 bits;
Embora seja possível escrever programas de 64 kb, eles não podem ser totalmente carregados na memória;
As unidades correspondentes na memória física são chamadas de molduras de página (page frames)
Gerenciamento de memória
Na figura anterior, cada página possui 4 kb podendo ter 16 páginas virtuais e 8 molduras;
As transferências entre memória e disco são SEMPRE em páginas completas;
Quando um programa tentar acessar o endereço 0, usando MOV REG, 0, o endereço virtual 0 é enviado à MMU, que devolverá a moldura de página 2 (de 8192 a 12287);
A memória desconhece a MMU e apenas enxerga a solicitação de leitura ou escrita no endereço 8192