Gerência de memória - UTFPR
Gerência de memória - UTFPR
Gerência de memória - UTFPR
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Sistemas Operacionais<br />
Ensino à distância - Assunto: <strong>Gerência</strong> <strong>de</strong> <strong>memória</strong> - continuação<br />
Prof. Dr. Fábio Rodrigues <strong>de</strong> la Rocha<br />
Novembro 2010<br />
Fábio Rocha (<strong>UTFPR</strong>) Sistemas Operacionais Novembro 2010 1 / 8
<strong>Gerência</strong> <strong>de</strong> <strong>memória</strong><br />
Na aula anterior vimos que todos os programas que são executados<br />
concorrentemente num computador precisariam estar simultaneamente carregados<br />
na <strong>memória</strong> RAM. Isso causaria um problema, pois a <strong>memória</strong> RAM é bastante<br />
limitada e em algumas situações teriamos a impossibilida<strong>de</strong> <strong>de</strong> executar muitos<br />
programas concorrentemente simplesmente por que a <strong>memória</strong> são tem tamanho<br />
suficiente para acomodar todos eles ao mesmo tempo.<br />
Fábio Rocha (<strong>UTFPR</strong>) Sistemas Operacionais Novembro 2010 2 / 8
<strong>Gerência</strong> <strong>de</strong> <strong>memória</strong><br />
Para lidar com este problema, foi criado o conceito <strong>de</strong> swap. Quando um processo<br />
é criado, reserva-se uma área no disco (chamada área <strong>de</strong> swap) para o processo.<br />
Com o passar do tempo, os processos são executados pelo SO (escalonador),<br />
terminam e novos processos po<strong>de</strong>m ser criados pelo usuário. Po<strong>de</strong> ocorrer que<br />
num dado momento um processo X precisa ser criado mas não existe <strong>memória</strong><br />
RAM disponível para acomodá-lo. Neste caso, o SO pesquisa a sua lista <strong>de</strong><br />
processos existentes e escolhe um <strong>de</strong>les para sair da <strong>memória</strong> RAM da seguinte<br />
maneira: O SO copia o conteúdo da RAM ocupada pelo processo para a área <strong>de</strong><br />
swap do processo no disco. Agora, ele carrega o processo X para a RAM<br />
Fábio Rocha (<strong>UTFPR</strong>) Sistemas Operacionais Novembro 2010 3 / 8
<strong>Gerência</strong> <strong>de</strong> <strong>memória</strong><br />
Processo A<br />
DISCO<br />
RAM<br />
Processo B<br />
Processo C<br />
Processo Processo Processo Processo<br />
A B C D<br />
Processo D<br />
SO<br />
Escalonador<br />
Fábio Rocha (<strong>UTFPR</strong>) Sistemas Operacionais Novembro 2010 4 / 8
<strong>Gerência</strong> <strong>de</strong> <strong>memória</strong><br />
Processo A<br />
Processo Processo Processo Processo<br />
A B C D<br />
DISCO<br />
RAM<br />
Processo B<br />
Processo C<br />
Processo<br />
X<br />
Processo D<br />
SO<br />
Escalonador<br />
Fábio Rocha (<strong>UTFPR</strong>) Sistemas Operacionais Novembro 2010 5 / 8
<strong>Gerência</strong> <strong>de</strong> <strong>memória</strong><br />
Processo A<br />
Processo Processo Processo Processo<br />
A B C D<br />
DISCO<br />
RAM<br />
Processo B<br />
Processo C<br />
Processo<br />
X<br />
Processo D<br />
Processo X<br />
SO<br />
Escalonador<br />
Fábio Rocha (<strong>UTFPR</strong>) Sistemas Operacionais Novembro 2010 6 / 8
<strong>Gerência</strong> <strong>de</strong> <strong>memória</strong><br />
Processo A<br />
Processo Processo Processo Processo<br />
A B C D<br />
DISCO<br />
Processo C<br />
RAM<br />
Processo B<br />
Processo D<br />
Processo<br />
X<br />
Processo X<br />
SO<br />
Escalonador<br />
Fábio Rocha (<strong>UTFPR</strong>) Sistemas Operacionais Novembro 2010 7 / 8
<strong>Gerência</strong> <strong>de</strong> <strong>memória</strong><br />
Paginação<br />
Um gran<strong>de</strong> problema na alocação <strong>de</strong> processos na <strong>memória</strong> é que <strong>de</strong>vemos <strong>de</strong>cidir<br />
se utiliza-se partições fixas (que geram um <strong>de</strong>sperdício <strong>de</strong> <strong>memória</strong> <strong>de</strong>ntro <strong>de</strong> cada<br />
partição: chamado fragmentação interna) ou se utiliza-se partições variáveis (que<br />
tem o problema <strong>de</strong> <strong>de</strong>ixar a <strong>memória</strong> cheia <strong>de</strong> espaços vagos que por serem<br />
pequenos não po<strong>de</strong>m ser utilizados para armazenar um processo: fragmentação<br />
externa).<br />
Partições fixas não são usadas na prática pois geram <strong>de</strong>sperdício <strong>de</strong> <strong>memória</strong> e o<br />
problema das partições variáveis po<strong>de</strong> ser contornado se fizermos com que um<br />
processo ao invés <strong>de</strong> ficar contíguo na <strong>memória</strong>, seja dividido em páginas<br />
pequenas que po<strong>de</strong>m ser espalhadas pela <strong>memória</strong>.<br />
Fábio Rocha (<strong>UTFPR</strong>) Sistemas Operacionais Novembro 2010 8 / 8