16.05.2014 Views

Gerência de memória - UTFPR

Gerência de memória - UTFPR

Gerência de memória - UTFPR

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!