Académique Documents
Professionnel Documents
Culture Documents
GerenciamentodeMemria
NortonTrevisanRoman MarceloMorandini JUeyama
Troca de Processos
Com um sistema em lote, simples e eficiente organizar a memria em parties fixas. Em sistemas de tempo compartilhado:
Pode no existir memria suficiente para conter todos os processos ativos Os processos excedentes so mantidos em disco e trazidos dinamicamente para a memria a fim se serem executados
Troca de Processos
Forma mais simples Consiste em trazer totalmente cada processo para a memria, execut-lo durante um tempo e, ento, devolv-lo ao disco Permite que programas possam ser executados mesmo que estejam parcialmente carregados na memria principal.
Memria Virtual:
Swapping
Da memria para uma regio especial do disco, chamada rea de swap Do disco pra memria
Swap-in
Pode ser utilizado tanto com parties fixas quanto com parties variveis;
Swapping
Operao:
Inicialmente, somente o processo A est na memria Ento B ou criado ou trazido de volta (swap in) memria
Swapping
Operao:
Em seguida, C criado ou trazido de volta (swap in) memria A ento levado ao disco (swap out)
Swapping
Operao:
Swapping
Operao:
E A trazido de volta A agora est em outra poro da memria devemos relocar os endereos As parties so de tamanho varivel
Note que:
Swapping
Problema
Soluo: ???
Swapping
Problema
Problema de fragmentao externa Mova todos os processos o mais para baixo possvel na memria haver um nico espao vazio acima Consome bastante CPU
Quanto de memria devemos alocar a um processo quando ele criado ou trazido a ela?
Quanto de memria devemos alocar a um processo quando ele criado ou trazido a ela?
Quanto de memria devemos alocar a um processo quando ele criado ou trazido a ela?
???
Quanto de memria devemos alocar a um processo quando ele criado ou trazido a ela?
Se houver um buraco adjacente memria atual do processo, ele pode ser alocado, e o processo cresce nesse buraco
Quanto de memria devemos alocar a um processo quando ele criado ou trazido a ela?
???
A deve crescer
Quanto de memria devemos alocar a um processo quando ele criado ou trazido a ela?
Ou o movemos a um buraco maior na memria Ou um ou mais processos tero que ser removidos para criar esse buraco
Quanto de memria devemos alocar a um processo quando ele criado ou trazido a ela?
Reduz o overhead de ter que fazer swap Se ainda assim o processo for para o disco, somente a memria realmente em uso gravada
Quanto de memria devemos alocar a um processo quando ele criado ou trazido a ela?
Se os processos tiverem dois segmentos que crescem (dados e pilha, por exemplo), podemos usar a mesma idia
Nesse caso, a pilha cresce para baixo enquanto que o segmento de dados cresce para cima Swap, como antes
Swapping
Tcnicas para alocao dinmica de memria
unidades de alocao pequenas bitmap grande; unidades de alocao grandes perda de espao;
Swapping
Tcnicas para alocao dinmica de memria
Problema: Quando um novo processo (de k unidades) trazido memria, o gerenciador deve buscar, no bitmap, uma seqncia de k zeros consecutivos operao potencialmente lenta
Swapping
Tcnicas para alocao dinmica de memria
Listas Ligadas:
Swapping
Tcnicas para alocao dinmica de memria
Listas Ligadas:
Swapping
Tcnicas para alocao dinmica de memria
Existem trs mtodos que podem ser usados para selecionar uma regio para um processo.
Percorre a lista de segmentos at que encontre um buraco grande o bastante Quebre o buraco em dois pedaos um para o processo e um para a memria no usada Variao: inicie a busca a partir de onde parou, na vez anterior (next fit)
Swapping
Tcnicas para alocao dinmica de memria
Busca a lista inteira, at o fim, e toma o menor buraco que seja adequado No quebra buracos grandes que poderiam ser teis mais tarde Problema: permite o surgimento de buracos minsculos Sempre tome o maior buraco disponvel Reduz a chance de buracos minsculos e inteis
Swapping
Tcnicas para alocao dinmica de memria
Dois processos, P e Q, so alocados nessa ordem:
Melhor Escolha
Pior Escolha
Primeira Escolha
Swapping
Tcnicas para alocao dinmica de memria
Dois processos, P e Q, so alocados nessa ordem:
Melhor Escolha
Pior Escolha
Primeira Escolha
Swapping
Tcnicas para alocao dinmica de memria
Dois processos, P e Q, so alocados nessa ordem:
Melhor Escolha
Pior Escolha
Primeira Escolha
Swapping
Tcnicas para alocao dinmica de memria
Dois processos, P e Q, so alocados nessa ordem:
Melhor Escolha
Pior Escolha
Primeira Escolha
Swapping
Tcnicas para alocao dinmica de memria
Quick fit
Mantm listas separadas para alguns dos tamanhos mais comumente requisitados
Uma para cada tamanho Encontrar os vizinhos ao buraco que ele deixou, para unio
Swapping
Tcnicas para alocao dinmica de memria
Algoritmos de alocao:
H ganho de desempenho Ainda assim, quando um processo retirado da memria, mesclar buracos de alta complexidade. Mais suscetvel a fragmentao
Swapping
Tcnicas para alocao dinmica de memria
Melhor escolha: deixa o menor resto, porm aps um longo processamento poder deixar buracos muito pequenos para serem teis. Pior escolha: deixa o maior espao aps cada alocao, mas tende a espalhar as pores no utilizadas sobre reas no contnuas de memria e, portanto, pode tornar difcil alocar grandes jobs. Primeira escolha: tende a ser um meio termo entre a melhor e a pior escolha, com a caracterstica adicional de fazer com que os espaos vazios migrem para o final da memria.
Memria Virtual
O tamanho do software cresce muito mais rpido H necessidade de rodar programas grandes demais para a memria Ex:
MOV REG,1000
Memria Virtual
Na ausncia de memria virtual, o endereo virtual bate com o fsico Com memria virtual, tratado pela MMU
Memria Virtual
Formado por todos os endereos fsicos/reais aceitos pela memria principal (RAM);
Formado por todos os endereos virtuais que esse processo pode gerar;
Memria Virtual
Um processo em Memria Virtual faz referncia a endereos virtuais e no a endereo reais de memria RAM; No momento da execuo de uma instruo, o endereo virtual traduzido para um endereo real, pois a CPU manipula apenas endereos reais da memria RAM MAPEAMENTO;
Memria Virtual
Memria Virtual
Programas maiores que a memria eram divididos em pedaos menores chamados overlays
Memria Virtual
Cada programa tem seu prprio espao de endereos, que quebrado em pores as pginas
Memria Virtual
Pginas:
Quando o programa referencia uma parte de seu endereo que est na memria, o hardware faz o mapeamento na hora Se, contudo, essa parte no estiver na memria:
O S.O. traz do disco o pedao que falta Executa novamente a instruo que falhou Enquanto isso, o escalonador pode colocar outro processo para rodar
Memria Virtual
Tcnicas de MV:
Paginao:
Blocos de tamanho fixo (endereos contnuos) 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 virtuais; Mapeamento entre endereos reais e virtuais (MMU);
Memria Virtual
Tcnicas de MV:
Segmentao:
Arquitetura (hardware) tem que possibilitar a implementao tanto da paginao quanto da segmentao;