Você está na página 1de 9

Gerncia de memria

Memria lgica e memria fsica A memria lgica de um processo aquela que o processo enxerga, ou seja, aquela que o processo capaz de enderear e acessar usando as suas instrues. Os endereos manipulados pelo process so endereos lgicos. Em outras palavras, as instrues de m quina de um processo especi!icam endereos lgicos. "or exemplo, um processo executando um programa escrito na linguagem # manipula vari veis tipo pointer. Essas vari veis contm endereos lgicos. Em geral, cada processo possui a sua memria lgica, que independente da memria lgica dos outros processos. A memria fsica aquela implementada pelos circuitos integrados de memria, pela eletr$nica do computador. O endereo !%sico aquele que vai para a memria !%sica, ou seja, usado para enderear os circuitos integrados de memria. O espao de endereamento lgico de um processo !ormado por todos os endereos lgicos que esse processo pode gerar. Existe um espao de endereamento lgico por processo. & o espao de endereamento fsico !ormado por todos os endereos aceitos pelos circuitos integrados de memria. A unidade de gerncia de memria 'Memory Management Unit, MMU( o componente do )ard*are respons vel por prover os mecanismos + sicos que sero usados pelo sistema operacional para gerenciar a memria. Entre outras coisas, a ,,- que vai mapear os endereos lgicos gerados pelos processos nos correspondentes endereos !%sicos que sero enviados para a memria. .a verdade, o processador e a ,,- !ormam, na maioria das vezes, um /nico circuito integrado. "odemos considerar os dois registradores de limite como uma ,,- muito simples.

Existe uma outra !orma de ,,- simples, onde o endereo lgico gerado pelo processo primeiro comparado com um limite superior. #aso seja menor ou igual, ele ento somado ao valor do registrador de +ase. O resultado da soma o endereo !%sico que vai para a memria. .esse esquema, o endereo lgico trans!ormado em endereo !%sico atravs da soma do valor da +ase. 0emos ento o endereo lgico di!erente do respectivo endereo !%sico.

.esse esquema de ,,-, o espao de endereamento lgico vai de zero at o valor limite. Esses so os endereos de memria manipulados pelo processo. O processo pode gerar endereos lgicos entre zero e 122. 3ualquer valor !ora desse intervalo ser considerado ilegal. Os endereos lgicos so mapeados pela ,,- para uma rea do espao de endereamento !%sico. Essa rea da memria !%sica inicia no valor indicado pelo registrador de +ase e tem o mesmo taman)o da memria lgica do processo. A proteo de memria conseguida, pois o processo de usu rio est restrito a essa rea da memria !%sica.0anto os registradores de limite in!erior e superior quanto os registradores de +ase e limite devem ser protegidos. Eles no podem ser acessados em modo usu rio. O+viamente, eles podem ser acessados em modo supervisor. 3uando ocorre um c)aveamento de processo, os valores so copiados do 4" para os registradores da ,,-. -ma di!erena entre as solues apresentadas est na carga dos programas. .o esquema que emprega apenas registradores de limite, os programas so gerados para o endereo zero da memria. 4essa !orma, no momento da carga, os endereos dop programa devem ser corrigidos para que o programa execute corretamente no lugar onde !oi colocado. Esse processo de correo de endereos c)amado relocao. -m carregador que e!etua uma relocao do programa em tempo de carga c)amado de carregador relocador. .o esquema que emprega registradores de +ase e limite, todos os programas so tam+m gerados para o endereo zero da memria. Entretanto, eles podem ser carregados em qualquer lugar da memria !%sica. -m carregador de programas que no precisa corrigir os endereos durante a carga c)amado de carregador absoluto. .esse esquema, podemos considerar que ocorre uma relocao em tempo de execuo, pois cada endereo so!re uma correo autom tica ao ser somado com o conte/do do registrador de +ase. Parties Fixas "arties !ixas so a !orma mais simples de ger5ncia de memria para multiprogramao. A memria primeiramente dividida em uma parte para uso do 6O e uma parte para uso dos processos de usu rios. A seguir, a parte dos usu rios dividida em v rias parties de taman)os di!erentes porm !ixos.3uando um programa deve ser carregado, escol)ida uma partio ainda livre. O+viamente a partio deve ter um taman)o igual ou

maior que o programa. Existem, porm, dois pro+lemas com esse tipo de ger5ncia de memria. 4i!icilmente o programa a ser carregado ter o taman)o exato de uma partio. Ele ser carregado em uma partio que um pouco maior que o necess rio. 7sso resulta em um desperd%cio de memria que c)amado de fragmentao interna, isto , memria perdida dentro da rea alocada para um processo. Outra possi+ilidade termos duas parties livres, digamos, de 18 e 922 :+;tes. .esse momento criado um processo para executar um programa de 992 :+;tes. O+serve que a memria total livre no momento de 918 <+;tes, mas ela no cont%gua. O programa no pode ser executado devido = !orma como a memria gerenciada. Esse tipo de pro+lema c)amado de fragmentao externa, isto , memria perdida !ora da rea ocupada por um processo. Parties variveis 3uando vari veis so empregadas, o taman)o das parties ajustado din>micamente =s necessidades exatas dos processos. Essa uma tcnica de ger5ncia de memria mais !lex%vel que parties !ixas. O 6O mantm uma lista de lacunas, ou seja, espaos livres na memria !%sica que so percorridos quando um processo criado. Existem ? !ormas + sicas de percorrer a lista de lacunas atr s de uma lacuna de taman)o su!iciente. Os algoritmos first fit e circular fit so os mais usados. @ First fit A utiliza a primeira lacuna que encontrar com taman)o su!iciente @ !est fit A utiliza a lacuna que resultar na menor so+ra @ "orst fit A utiliza a lacuna que resultar na maior so+ra @ #ircular fit A 7gual ao !irstB!it, mas inicia a procura na lacuna seguinte = /ltima so+ra. 3uando um processo termina, a memria que ele ocupava li+erada. 7sso corresponde = criao de uma nova lacuna. #aso a nova lacuna criada seja adjacente a outras lacunas, elas so uni!icadas.

Alguns sistemas organizam a memria por +locos de, por exemplo, C1 +;tes. Esses +locos so muitas vezes c)amados de pargrafos. A unidade de alocao passa a ser o par gra!o e o taman)o da rea alocada por um processo deve ser um n/mero inteiro de par gra!os, ou seja, um m/ltiplo exato de C1 +;tes. 4essa !orma, a menor lacuna poss%vel ter o taman)o de um par gra!o ou C1 +;tes. .esse caso, poderemos ter uma !ragmentao interna de at C9 +;tes por processo. Em algumas arquiteturas, as vari veis do tipo inteiro devem !icar alin)adas corretamente na memria. "arties vari veis so tipicamente implementadas atravs de uma lista encadeada de lacunas. #ada lacuna representada por um descritor de lacuna, que contm +asicamente o seu endereo, taman)o e apontadores para as colunas adjacentes. #omo cada lacuna tem o taman)o m%nimo de um par gra!o, ela pode )ospedar o seu prprio descritor. #om parties vari veis a !ragmentao externa um pro+lema grave. D medida que reas de memria so alocadas e li+eradas, muitos !ragmentos so gerados. A memria adquire uma apar5ncia de Equeijo su%oF. G poss%vel tentar usar compactao de memria para eliminar esse pro+lema, mas em geral no um processo muito usado. $%apping Existem situaes nas quais no poss%vel manter todos os processos simult>neamente na memria. -ma soluo para essas situaes o mecanismo de s%apping. Em determinadas situaes, um processo completamente copiado da memria para o disco. 6ua execuo suspensa, ou seja, seu descritor de processo removido da !ila do processador e colocado em uma !ila de processos suspensos. G dito que esse processo so!reu um s%ap out. ,ais tarde, ele so!rer um s%ap in, ou seja, ser copiado novamente para a memria. 6eu descritor de processo volta ento para a !ila do processador, e sua execuo ser retomada. O resultado desse revezamento no disco que o 6O consegue executar mais processos do que ca+eria em um mesmo instante na memria. Em sistemas nos quais uma pessoa interage com o programa durante a sua execuo, o mecanismo de s*apping somente utilizado em /ltimo caso, quando no poss%vel manter todos os processos na memria. A queda no desempen)o do sistema imediatamente sentida pelo usu rio no terminal. Paginao A tcnica de parties !ixas gera muita perda de memria e no mais utilizada na pr tica. 6e essa restrio !or eliminada, ou seja, permitir que um programa ocupasse reas no cont%guas de memria, no )averia !ragmentao externa. A tcnica da paginao possi+ilita exatamente isso. O espao de endereamento lgico de um processo dividido em pginas lgicas de taman)o !ixo. O endereo lgico tam+m dividido em duas partesH um n&mero de pgina lgica e um deslocamento dentro dessa p gina. A memria !%sica tam+m dividida em pginas fsicas com taman)o !ixo, id5ntico ao taman)o da p gina lgica. Os endereos de memria !%sica tam+m podem ser vistos

como compostos de duas partes. Os C primeiros +its indicam um n/mero de p gina !%sica. Os 1 /ltimos +its indicam um deslocamento dentro dessa p gina !%sica. -m programa carregado p gina a p gina. #ada p gina lgica do processo ocupa exatamente uma p gina !%sica da memria !%sica. Entretanto, a rea ocupada pelo processo na memria !%sica no precisa ser cont%gua. ,ais do que isso, a ordem em que as p ginas lgicas aparecem na memria !%sica pode ser qualquer, no precisa ser a mesma da memria lgica. 4urante a carga montada uma tabela de pginas para o processo. Essa ta+ela in!orma, para cada p gina lgica, qual a p gina !%sica correspondente. .o exemplo, a ta+ela !ormada por C entradas, uma vez que o processo possui C p ginas lgicas. 3uando um processo executa, ele manipula endereos lgicos. O programa escrito com a suposio que ele vai ocupar uma rea cont%gua de memria, que inicia no endereo zero, ou seja, vai ocupar a memria lgica do processo. "ara que o programa execute corretamente, necess rio trans!ormar o endereo lgico especi!icado em cada instruo executada, no endereo !%sico correspondente. 7sso !eito com o aux%lio da ta+ela de p ginas.

O endereo lgico gerado inicialmente dividido em duas partesH um n/mero de p gina lgica e um deslocamento dentro da p gina. O n/mero da p gina lgica usado como

%ndice no acesso = ta+ela de p ginas. #ada entrada da ta+ela de p ginas possui o mapeamento de p gina lgica para p gina !%sica. 4essa !orma, o+tido o n/mero de p gina !%sica correspondente. & o deslocamento do +;te dentro da p gina !%sica ser o mesmo deslocamento desse +;te dentro da p gina lgica, pois cada p gina lgica carregada exatamente em uma p gina !%sica. .a pr tica, os taman)os de p gina variam entre 9< e I<+;tes. Espaos de endereamento lgico variam de J?< para sistemas antigos e muitos K+;tes nas m quinas atuais. Espaos de endereamento !%sico tam+m !icam, em geral, na ordem de K+;tes. .ote que o espao de endereamento !%sico denota a capacidade de endereamento do processador, e no a quantidade de memria realmente instalada na m quina. .a paginao, uma p gina lgica pode ser carregada em qualquer p gina !%sica que esteja livre, dessa !orma no existe !ragmentao externa. Existem vantagens e desvantagens em utilizar p ginas grandes. " ginas maiores signi!icam que um processo ter menos p ginas, a ta+ela de p ginas ser menor, a leitura do disco ser mais e!iciente. Em geral, p ginas maiores resultam em um custo menor imposto pelo mecanismo de ger5ncia de memria, ou seja, um over'ead menor. "or outro lado, p ginas maiores resultam em uma !ragmentao interna maior. .ormalmente no o sistema operacional que escol)e o taman)o das p ginas. Esse valor !ixado pelo )ard*are que suporta a ger5ncia de memria, ou seja, pela ,,- do computador em questo. 3uando a ta+ela de p ginas pequena, ela pode ser completamente colocada em registradores de acesso r pido. 3uando a ta+ela de p ginas muito grande, no poss%vel mant5Bla em registradores. -ma outra soluo manter a ta+ela de p ginas na prpria memria. A ,,- possui ento dois registradores para localizar a ta+ela na memria. O registrador de base da tabela de pginas 'page ta+le +ase register, "0LM( indica o endereo !%sico de memria onde a ta+ela est colocada. O registrador de limite da tabela de pginas 'page 0a+le Nimit Megister, "0NM( indica o n/mero de entradas da ta+ela. O pro+lema desse mecanismo que agora cada acesso que um processo !az = memria lgica trans!ormaB se em dois acessos = memria !%sica. .o primeiro acesso, a ta+ela de p ginas consultada, e o endereo lgico trans!ormado em endereo !%sico. .o segundo acesso, a memria do processo lida ou escrita. -ma !orma de reduzir o tempo de acesso = memria no esquema anterior adicionar uma memria cac)e especial que vai manter as entradas da ta+ela de p ginas mais recentemente utilizadas. Essa memria cac)e interna = ,,- c)amada normalmente de (ranslation )oo*aside !uffer '0NL(. .ormalmente, a memria cac)e implementada atravs de um componente de )ard*are con)ecido como memria associativa, que inclui algumas clulas de memria e toda eletr$nica necess ria para !azer uma pesquisa paralela, incluindo as clulas. O pro+lema a% o preo do )ard*are. 3uando a memria cac)e usada e ocorre um c)aveamento de processos, novamente os valores do "0LM e do "0NM para a ta+ela de p ginas de processo que rece+e o processador devem ser copiados do 4" para os registradores na ,,-. Alm disso, a

memria cac)e deve ser esvaziada '!lus)ed(. G importante o+servar que a proteo entre processos !acilmente conseguida com uma ,,- que suporte paginao. Em primeiro lugar, o mecanismo de paginao garante que cada processo somente ten)a acesso =s p ginas !%sicas que constam em sua ta+ela de p ginas. Essa ta+ela de p ginas constru%da pelo 6O e !ica em uma regio da memria = qual apenas o 6O tem acesso. O acesso aos registradores "0LM e "0NM privilegiado, isto , restrito ao cdigo do 6O, que executa em modo supervisor. Em sistemas atuaias, a ta+ela de p ginas pode ser muito grande. Assim sendo, muito raro v5Bla sendo totalmente usada. .a pr tica, as ta+elas de p ginas possuem um taman)o vari vel, ajustado = necessidade de cada processo. Ocorre que, se as ta+elas puderem ter qualquer taman)o, ento teremos !ragmentao externa novamente 'e a maior razo para usar paginao !oi a eliminao da !ragmentao externa(. "ara evitar isso, so usadas ta+elas com dois n%veis. As ta+elas de p ginas crescem de pedao em pedao, e uma ta+ela auxiliar c)amada diretrio mantm o endereo de cada pedao. "ara evitar a !ragmetao externa, cada pedao da ta+ela de p ginas deve ter um n/mero inteiro de p ginas !%sicas, mantendo assim toda alocao de memria !%sica em termos de p ginas, no importando a sua !inalidade. Entradas desnecess rias em cada pedao so marcadas como inv lidas. $egmentao "rogramadores e compiladores no enxergam a memria lgica dividida em p ginas, mas sim em segmentos. -ma diviso t%pica descreve um programa em termos de ? segmentosH #digo, dados alocados estaticamente, dados alocados dinamicamente e pil)a e execuo. G poss%vel orientar a ger5ncia de memria para suportar diretamente o conceito de segmento. .esse caso, a memria lgica do processo passa a ser organizada em termos de segmentos. -ma posio da memria lgica passa a ser endereada por um n/mero de segmento e um deslocamento em relao ao in%cio do seu segmento. Em tempo de carga, cada segmento copiado para a memria !%sica, e uma ta+ela de segmentos constru%da. Essa ta+ela in!orma, para cada segmento, qual o endereo da memria !%sica onde ele !oi colocado e qual seu taman)o.

Os processos geram endereos lgicos compostos por um n/mero de segmento e um deslocamento dentro do segmento. A ,,- inicialmente utiliza o n/mero de segmento !ornecido para indexar a ta+ela de segmentos. O grande atrativo da segmentao est na !acilildade para compartil)ar memria. #ada segmento representa uma parte espec%!ica do programa, podendo ou no ser compartil)ado. "or exemplo, supon)a que o cdigo das rotinas de +i+lioteca de uma linguagem de programao compilado como sendo um segmento /nico. Esse segmento marcado como Epara apeas execuoF, ou seja, no pode ser lido nem escrito. 0odos os programas escritos nessa linguagem utilizam esse segmento. Entretanto, apenas uma cpia dele necess ria na memria !%sica. 0odos os processos executando programas escritos nessa linguagem tero em sua em sua respectiva ta+ela de segmentos uma re!er5ncia = posio desse segmento na memria !%sica. $egmentao Paginada .a segmentao paginada o espao lgico !ormado por segmentos, e cada segmento dividido em p ginas lgicas. #ada segmento possui uma ta+ela de p ginas associada. .o momento de enderear a memria, a ta+ela de segmentos indica, para cada segmento,

onde a respectiva ta+ela de p ginas est . Essa ta+ela de p ginas usada para trans!ormar o endereo de p gina lgica de determinado segmento em endereo de p gina !%sica, como !eito normalmente na paginao. 6empre lem+rando que este no o /nico meio de tra+al)ar a segmentao paginada. A+aixo, vemos o esquema cl ssico de segmentao paginada.

Você também pode gostar