Вы находитесь на странице: 1из 8

Captulo 10 Gerncia de memria virtual

Memria virtual (MV) uma tcnica em que MP e MS so combinadas dando ao usurio a iluso de existir uma memria muito maior que a capacidade real da MP. O conceito fundamenta-se em no vincular o endereamento feito pelo programa aos endereos fsicos da MP.

Espao de endereamento virtual Um programa no ambiente de memria virtual no faz referencia a endereos fsicos de memoria (endereos reais), mas apenas a endereos virtuais. No momento da execuo de uma instruo, o endereo virtual referenciado traduzido para um endereo fsico, pois o processador manipula apenas posies da memria principal. O mecanismo de traduo do endereo virtual para endereo fsico denominado mapeamento. Em ambientes que implementam MV, o espao de endereamento do processo conhecido como espao de endereamento virtual e representa o conjunto de endereos virtuais que o processo pode enderear. Como o espao de endereamento virtual no tem nenhuma relao direta com os endereos no espao real, um programa pode fazer referencia a endereos virtuais que estejam fora dos limites da memria principal, ou seja, os programas e suas estruturas de dadso no esto mais limitados ao tamanho da memria fsica (MP) disponvel. Para que isso seja possvel, o SO utiliza a memria secundria como extenso da memria principal. Quando um programa executado, SOMENTE uma parte do seu cdigo fica residente na MP, permanecendo o restante na memris secundria, at o momento de ser referenciado.

Mapeamento Mapeamento o mecanismo que transforma/traduz os endereos virtuais em endereos reais. Nos sistemas modernos, a tarefa de traduo de endereos virtuais realiza por hardware juntamente com o SO, de forma a no comprometer seu

desempenho e torna-lo transparente a usurios e suas aplicaes. O dispositivo de hardware responsvel por esta traduo conhecido como unidade de gerncia de memria (MMU). Cada processo tem o seu espao de endereamento virtual como se possusse sua prpria memria. O mecanismo de traduo se encarrega, ento, de manter tabelas de mapeamento exclusivas para cada processo, relacionando os endereos virtuais do processo s suas posies na memria real. A tabela de mapeamento uma estrutura de dados existente para cada processo. As tabelas mapeiam blocos de dados, cujo tamanho determina o numero de entradas existentes nas tabelas de mapeamento. Quanto maior o bloco, menos entradas nas tabelas de mapeamento e, consequentemente, tabelas de mapeamento que ocupam um menor espao de memria.

Memria Virtual por paginao a tcnica de gerencia de memoria em que o espao de endereamento virtual e o espao de endereamento real so divididos em blocos de mesmo tamanho, chamados pginas. As pginas no espao virtual so denominadas pginas virtuais, enquanto as pginas no espao real so chamadas de pginas reais ou frames (ou ainda quadros). Todo o mapeamento de endereo virtual em real realizado atravs de tabelas de pginas. Cada processo possui sua prpria tabela de pginas (ou blocos), e cada pgina virtual do processo possui uma entrada na tabela (entrada na tabela de pginas ETP), com informaes de mapeamento que permitem ao sistema localizar a pgina real correspondente. Quando um programa executado, as pginas virtuais so transferidas da memria secundria para a memria principal e colocadas nos frames (nas pginas reais!). Sempre que um programa fizer referncia a um endereo virtual, o mecanismo de mapeamento localizar na ETP da tabela do processo o endereo fsico do frame no qual se encontra o endereo real correspondente.

Nessa tcnica, o endereo virtual : o NPV (nmero da pgina virtual) + o deslocamento. O NPV identifica unicamente a pgina virtual que contm o endereo, funcionando como um ndice na tabela de pginas. O deslocamento indica a posio do endereo virtual em relao ao inicio da pgina na qual se encontra. O endereo fsico obtido, ento, combinando-se o endereo do frame, localizado na tabela de pginas, com o deslocamento, contido no endereo virtual. A ETP possui tambm o bit de validade, que indica se uma pgina est, ou no, na memria principal. Se bit = 0, indica que a pgina virtual no est na MP; se bit = 1, indica que a pgina est localizada na MP. Sempre que o processo referencia um endereo virtual, a unidade de gerencia da memoria verifica, atravs do bit de validade, se a pgina que contm o endereo referenciada est ou no na MP. Caso a pgina no esteja, diz-se que ocorreu um page fault. Nesse caso, o sistema transfere a pagina da memoria secundaria para a MP, realizando uma operao de E/S, conhecida com page in, ou paginao. O numero de page faults gerados por cada processo em um determinado intervalo de tempo definido como taxa de paginao do processo.

Politicas de busca de pginas Existem duas estratgias para se determinar quando uma pgina deve ser carregada para a memria: - Paginao por demanda: as pginas dos processos so transferidas da MS para a MP apenas quando so referenciadas. - Paginao antecipada: o sistema carrega para a MP, alm da pgina referenciada, outras pginas que podem ou no ser necessrias ao processo ao longo do seu processamento (isso pode ser uma economia de tempo mas, por outro lado, caso o processo no precise das paginas carregadas antecipadamente, o sistema ter perdido tempo e ocupado MP desnecessariamente).

Polticas de Alocao de pginas Determina quantos frames (ou seja, pginas) cada processo pode manter na MP. Existem, basicamente, duas alternativas: - Alocao fixa (associa-se apenas com a substituio local): cada processo tem um nmero mximo de frames que pode ser utilizado durante a execuo do programa. Caso o nmero de pginas seja insuficiente, uma pgina do processo deve ser descartada para que uma nova seja carregada. O limite de pginas reais pode ser igual para todos os processos (o que no uma boa ideia, j que raramente a necessidade de memria de cada processo a mesma) ou definido individualmente (essa definio deve ser feita no momento da criao do processo e consta no contexto de software do processo). -Alocao varivel (associa-se com a substituio local e global): nessa poltica o nmero mximo de pginas alocadas ao processo pode variar durante sua execuo em funo de sua taxa de paginao (lembrar que o numero de page faults gerados por cada processo em um determinado intervalo de tempo) e da ocupao da MP. Processos com elevadas taxas de paginao podem ampliar o limite mximo de frames, a fim de reduzir o nmero de page faults. Da mesma forma, processos com baixas taxas de paginao podem ter paginas realocadas para outros processos.

Polticas de substituio de pginas (ou liberao) Quando um processo atinge o seu limite de alocao de frames e necessita alocar novas pginas na MP, o SO deve selecionar, dentre as diversas pginas alocadas, qual dever ser liberada. As pginas modificveis, que armazenam variveis e estruturas de dados, podem sofrer alteraes, portanto, na substituio, elas no podem ser descartadas, seno os dados armazenados (na pgina) podem ser perdidos. Por isso, o sistema deve grav-las na memria secundria antes do descarte, preservando seu contedo para uso em futuras referncias. Esse mecanismo conhecido como page out. Com esse propsito, o sistema mantm um arquivo de paginao (page file), onde todas as pginas modificadas e descartadas so armazenadas. Quando uma pgina modificada for referenciada, ocorrer um page in.

As pginas modificadas so identificadas pelo SO atravs de um bit que existe em cada entrada da tabela de pginas (ETP), chamado bit de modificao. --- substituio local apenas as paginas do processo que gerou page fault so candidatas a serem a realocao, ou seja, a serem substitudas. --- substituio global todas as pginas alocadas na MP so candidatas substituio, independente do processo que gerou o page fault.

Working set ( definido como o conjunto das pginas referenciadas por um processo durante determinado intervalo de tempo) Apesar das suas vantagens, o mecanismo de MV introduz um srio problema, que resumidamente o thrashing, ou seja, um nmero elevado de page faults e, consequentemente, de inmeras operaes de E/S, o que provoca srias consequncias ao desempenho do sistema. O working set surgiu com o objetivo de reduzir o problema do thrashing e est relacionado ao principio da localidade, tanto espacial quanto temporal. Na prtica, significa que o processador tender a concentra suas referncias a um conjunto de pginas do processo durante um determinado periodo de tempo.

Algoritmos de substituio de pginas tem o objetivo de selecionar os frames que tenham as menores chances de serem referenciados em um futuro prximo. A partir do principio da localidade, a maioria dos algoritmos tenta prever o comportamento furuto das aplicaes em funo do comportamento passado.

- timo seleciona para a substituio uma pgina que n ser mais referenciada no futuro ou aquela que levar o maior intervalo ed tempo para ser novamente utilizada. -Aleatrio o nome j sugere: no utiliza critrio algum de seleo. Todas as pginas alocadas na MP tm a mesma chance de serem selecionadas, inclusive os frames que so frequentemente referenciados.

-FIFO a pgina que primeiro foi utilizada ser a primeira a ser substituda. - LFU (Least-Frequently-Used) a pgina menos referenciada, ou seja, o frame menos utilizado. LRU (Least-Recently-Used) a pgina na MP que est h mais tempo sem ser referenciada. NRU (Not-Recently-Used) - semelhante ao LRU, porm com menos sofisticao. substitudo o grama que no tenha sido utilizadao recentemente, a partir de uma verificao do sistema do bit de referncia (que se for 1 indica que a pgina foi referenciada, mas se for 0 indica que no foi) - FIFO com buffer de pginas combina uma lista de pginas alocadas (LPA) com uma lista de pginas livres (LPL). A LPA organiza todas as paginas que esto sendo utilizadas na MP, podendo ser implementada como uma lista nica para todos os processos ou uma lista individual para cada processo. Da mesma forma, a LPL organiza todos os frames livres da MP, sendo que as pginas livre h mais tempo esto no inicio e a mais recentes no final. Sempre que umm processo necessita alocar uma nova pgina, o sistema utiliza a primeira pagina da LPL, colocando-a no final da LPA. Caso o processo tenha que liberar uma pgina, o mecanismo de substituio seleciona o frame em uso h mais tempo na memoria, isto , o primeira da LPA, colocando-o no final da LPL. - FIFO circular (clock) utiliza como base o FIFO, porem as pginas alocadas na memria esto em uma estrutura de lista circular, semelhante a um relgio.

Tamanho de pgina O tamanho de pgina est associado arquitetura de hardware e varia de acordo com o processador, mas normalmente est entre 512 e 16M endereos. O tamanho de pgina tem impacto direto sobre o nmero de entradas na tabela de pginas e, consequentemente, no tamanho da tabela e no espao ocupado na MP.

Paginao em mltiplos nveis Em casos em que a tabelas de pginas tenham muitas entradas (na ordem de milhares), mant-las desse tamanho, para cada processo (imaginando vrios processos residentes na MP), provocaria certamente um problema de gerenciamento. Um boa soluo para contornar o problema a utilizao de tabelas de pginas em mltiplos nveis. A ideia que o principio da localidade seja aplicado tambm s tabelas de mapeamento apenas as informaes sobre pginas realmente necessrias aos processos estariam residentes na MP. Proteo de Memria ver pg. 179-180 l tem uma tabela que explica que existem dois bits na tabela de mapeamento que funcionam como um mecanismo de proteo que definem: sem acesso (00); Acesso de leitura (10); Acesso para leitura/gravao (11)

Compartilhamento de Memria Em sistemas que implementam MV, simples a implementao da reentrncia, possibilitando compartilhamento de cdigo entre os diversos processos. Para isso, basta que as entradas das tabaleas de mapemanto dos processos apontem para os mesmos frames na memria principal, evitando, assim ,vrias cpias de um mesmo programa na memria.

Swapping em Memria Virtual Essa tcnica permite aumentar o nmero de processos que compartilham a MP e, consequentemente, o grau de multiprogramcao do sistema. Quando existe novos processos para serem executados e no h MP livre suficiente para locao, o sistema utiliza o swapping, selecionando um ou mais processos para sarem da memria e oferecer espao para novos processso. Depois de escolhidos, o sistema retira os processos da memria principal para a memria secundria (swap out), onde as pginas ou segmentos so gravados em um arquivo de swap (swap file). Com os processos salvos na memria secundria, os frames ou segmentos alocados so liberados para novos processos. Posteriormente, os processos que foram retidaos da memria devem retornar para a MP (swap in) para serem novamente executados.

Thrashing Pode ser definido como a excessiva transferncia de pginas/segmentos entre a MP e a memria secundria. Na memria virtual por paginao, o thrashing ocorre em dois nveis: thrashing no prprio processo a excessiva paginao ocorre devido ao elevado numero de page faults gerado pelo programa em execuo. Esse problema faz com que o processo passe mais tempo esperando por paginas que realmente sendo executado. Existem dois motivos que levam um processo a sofrer esse tipo de thrashing. O primeiro o dimensionamento incorreto do limite mximo de pginas do processo, pequeno demais para acomodar seu working set. o segundo a ausncia da localidade.

Thrashing no sistema ocorre quando existem mais processos competindo por MP que espao disponvel, nesse caso, o primeiro passo a reduo do numero de paginas de cada processo na memria. Porm, esse mecanismo leva ao thrashing do processo. Caso a reduo no seja suficiente, o sistema incia o swapping, retirando processos da MP para a memria secundria. Se esse mecanismo for levado ao extremo, o sistema passar mais tempo realizando swapping que atendendo aos processos.

Вам также может понравиться