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

UNIVERSIDADE FEDERAL DO PIAU CAMPUS SENADOR HELVDIO NUNES DE BARROS BACHARELADO EM SISTEMAS DE INFORMAO SISTEMAS OPERACIONAIS

Resumo do captulo 10: Gerncia de Memria Virtual


Abimael Santiago Francisca Gisele Givanaldo Rodrigues Obedio Albuquerque

Fevereiro, 2013 Picos - PI

Resumo de Gerncia de Memria virtual Introduo Memria virtual uma tcnica sofisticada e poderosa de gerencia de memria, onde as memrias principal e secundaria so combinadas dando ao usurio a iluso de existir uma memria muito maior que a capacidade real da memria principal. Outra vantagem da tcnica da memria virtual permitir um numero maior de processos compartilhando a memria principal, j que apenas partes de cada processo estaro residentes. Isso leva a uma utilizao mais eficiente tambm do processador. Alm disso, essa tcnica tambm possibilita minimizar o problema da fragmentao da memria principal. A primeira implementao de memria virtual foi realizada no inicio da dcada de 1960, no sistema Atlas desenvolvido na universidade de Manchester. Atualmente, a maioria dos sistemas implementa memria virtual, com execuo de alguns sistemas operacionais de supercomputadores. Espaos de endereamento virtual A memria virtual utiliza abstrao semelhante, s que em relao aos endereamentos dos programas e dados. Um programa no ambiente de memria virtual no faz referencia a endereos fsicos de memria, mas apenas a endereos virtuais. Mapeamento O mecanismo de traduo de endereo virtual para endereo fsico denominado mapeamento. A seguir veremos que alguns sistemas operacionais trabalham apenas com blocos de tamanho fixo (tcnica de paginao), enquanto outros utilizam blocos de tamanho varivel (tcnica de segmentao) e ainda um terceiro tipo que implementa ambas as tcnicas (segmentao com paginao). Memria virtual por paginao uma tcnica de gerenciamento de memria, onde o espao de endereamento real e virtual dividido em blocos, chamados de pginas. Todo mapeamento de endereo virtual em real feito atravs de tabelas de pginas, e cada pgina virtual possui uma entrada na tabela (ETP) que permite encontrar o endereo de memria real correspondente ao endereo de memria virtual. Alm da informao sobre a localizao da pgina virtual a ETP (entrada na tabela de pginas) tambm indica se a pgina est ou no na memria principal, atravs de um bit de validade. Onde se o bit possuir valor zero a pgina virtual no est na memria principal, mas caso seja um ela esta localizada na memria. Caso a pgina no esteja na memria dizemos que ocorreu um page fault. Nesse caso, o sistema transfere a pgina da memria secundaria para a memria principal realizando uma operao de E/S conhecida como page in. Aps a transferncia de pgina para a memria principal, o processo realocado no estado de pronto e quando for reescalonado poder continuar sua execuo.

Polticas de busca de pginas Determina quando uma pgina deve ser carregada para a memria. Existem duas estratgias para este proposito: paginao por demanda e paginao antecipada. Paginao por demanda: transfere para a memria principal somente as pginas realmente necessrias execuo do programa. Evitando desperdcio de tem e de espao na memria. Paginao antecipada: transfere para a memria alm das pginas referenciadas outras pginas que podem ou no ser necessrias ao processo. Caso o processo no precise das pginas carregadas antecipadamente, o sistema ter perdido tempo e ocupado memria desnecessariamente. Polticas de alocao de pginas Determinam quantos blocos cada processo pode manter na memria principal. Existem duas alternativas: alocao fixa e alocao varivel. Poltica de alocao fixa: cada processo tem um numero mximo de blocos que podem ser utilizados durante a execuo do programa. Caso o numero de pginas reais seja insuficiente, uma pgina do processo ser descartada para que uma nova seja carregada. Os problemas desse processo que se o nmero de pginas alocadas for pequeno o processo ter muitas falhas de pgina (page fault), ou se o nmero for grande haver desperdcio de memria. Poltica de alocao varivel: nesse caso o nmero de pginas alocado pode variar durante a execuo. Esse mecanismo mais flexvel, porem exige monitoramento constante dos processos. Polticas de substituio de pginas Acontece quando um processo atinge seu limite de alocao de blocos e necessita alocar novas pginas na memria principal, ento o sistema seleciona qual pgina ser liberada para ento alocar a nova pgina. A poltica de substituio de pginas pode ser classificada como local ou global. Poltica de substituio local: apenas as pginas do processo que gerou a page fault so candidatas a realocao. Poltica de substituio global: todas as pginas alocadas na memria principal so candidatas a substituio independente do processo que gerou a page fault. As pginas do ncleo do sistema no podem ser realocadas. Existe uma relao entre a poltica de substituio e a poltica de alocao de pginas. Pois a poltica de alocao fixa permite somente uma poltica de substituio local e a poltica de alocao varivel permite uma poltica de substituio tanto local quanto global. Working Set um conjunto de pginas referenciado por um processo durante determinado intervalo de tempo, seu principal objetivo reduzir o problema de thrashing, que o numero elevado de page faults e consequentemente inmeras operaes de E/S e esta relacionado ao princpio da localidade. Existem dois tipos de localidade: espacial e temporal.

Localidade espacial: aps a referncia a uma posio da memria, so feitas novas referencias a endereos prximos. Localidade temporal: aps referncia a uma posio de memria esta mesma posio volta a ser referenciada. O princpio da localidade indispensvel para que a gerncia da memria virtual funcione. Algoritmos de substituio de pginas Os algoritmos de substituio de pginas tm o objetivo de selecionar os frames que tenham as menores chances de serem referenciados em um futuro prximo; caso contrrio, o frame poderia retornar diversas vezes para a memria principal, gerando vrios page faults e acessos memria secundria. Algoritmo timo seleciona pra substituio uma pgina que no ser mais referenciada no futuro ou que levar maior intervalo de tempo para ser novamente utilizada. Algoritmo Aleatrio no utiliza nenhum critrio de seleo de pgina. Consome poucos recursos do sistema, mas no muito eficiente. Algoritmo FIFO, a pgina que primeiro foi utilizada ser a ser escolhida, seleciona a pgina que est a mais tempo na memria principal. Algoritmo LFU (Least-Frequently-Used) seleciona a pgina menos referenciada, ou seja, a menos utilizada. Possui um contador para contar a quantidade de referncias da pgina. Algoritmo LRU (Least-Recently-Used) seleciona a pgina na memria principal que est a mais tempo sem ser referenciada. Cada pgina possui o momento do ltimo acesso. Algoritmo NRU (Not-Recently-Used) funciona semelhante ao LRU. Utiliza um bit adicional, conhecido como bit de referncia (BR). Quando uma pgina carregada para a memria principal, o bit de referncia alterado pelo hardware, indicando que a pgina foi referenciada (BR = 1). Periodicamente, o sistema altera o valor do bit de referncia (BR = 0), e a medida que as pginas so utilizadas, o bit associado a cada frame retorna para 1. Algoritmo FIFO com buffer de pginas combina uma lista de pginas alocadas (LPA) com uma lista de pginas livres (LPL). A LPA organiza todas as pginas que esto sendo utilizadas na memria principal. A LPA organiza as pginas alocadas h mais tempo na memria no incio da lista, e as mais recentes no final da lista. Sempre que um processo necessita alocar uma nova pgina, o sistema utiliza a primeira pgina da LPL, colocando-o no final da LPA. Algoritmo FIFO circular utiliza como base o FIFO. Esse algoritmo possui um ponteiro que guarda a posio da pgina mais antiga na lista. Cada pgina possui um bit associado de referncia, indicando se a pgina foi recentemente referenciada. A pgina selecionada ser a que possuir mais tempo sem ser referenciada, e no necessariamente a mais antiga. Translation Lookaside Buffer Como a maioria das aplicaes referencia um nmero reduzido de frames na memria principal, seguindo o princpio da localidade, somente uma pequena frao da tabela de mapeamento realmente necessria. Com base nesse princpio, foi introduzida uma

memria especial chamada translation lookaside buffer (TLB), com o intuito de mapear endereos virtuais em endereos fsicos sem a necessidade de acesso tabela de pginas. Funciona como uma cache, mantendo apenas as tradues dos endereos virtuais das pginas mais recentemente referenciadas. Proteo de memria o mecanismo utilizado para permitir ou negar o acesso a uma determinada pgina. Existem dois tipos de acesso, acesso de leitura, e o acesso de gravao. Esse dois tipos de acessos produzem um mecanismo simples e eficiente. Sempre que uma pgina referenciada, o sistema operacional verifica na tabela de mapeamento do processo a proteo do frame e determina se a operao permitida. Compartilhamento de memria O mecanismo de paginao permite que processos faam o mapeamento de uma mesma rea na memria e, consequentemente, tenham acesso compartilhado de leitura e gravao. A nica preocupao garantir o sincronismo no acesso regio compartilhada. Memria virtual por segmentao Memria virtual por segmentao a tcnica de gerncia de memria onde o espao de endereamento virtual dividido em blocos de tamanhos diferentes chamados segmentos. Na tcnica de segmentao, um programa dividido logicamente em sub-rotinas e estruturas de dados, que so alocadas em segmentos na memria principal. O espao de endereamento virtual de um processo possui um nmero mximo de segmentos, que podem existir, onde cada segmento pode variar de tamanho dentro de um limite. Espaos de endereamento independentes permitem que uma sub-rotina seja alterada sem a necessidade de o programa principal e suas sub-rotinas serem recompiladas e religadas. Os segmentos so mapeados atravs de tabelas de mapeamento de segmentos (TMS), e os endereos so compostos pelo nmero do segmento virtual (NSV) e pelo deslocamento. Para alocar os segmentos na memria principal, o SO mantm uma tabela com reas livres e ocupadas da memria. Quando um novo segmento referenciado, o sistema seleciona um espao livre suficiente para que o segmento seja carregado na memria. Na segmentao surge o problema da fragmentao externa. Esse problema ocorre sempre que h diversas reas livres na memria principal, mais nenhuma suficiente para alocar um novo segmento. Proteo de memria em sistemas com segmentao. Como cada segmento possui um conjunto bem definido, basta especificar a proteo do segmento na ETS, onde alguns bits podem especificar os tipos de acessos ao segmento. Compartilhamento de memria. Na segmentao simples o compartilhamento de memria, pois a tabela de segmentos mapeia estruturas lgicas.

Memria virtual por segmentao com paginao Memria virtual por segmentao com paginao a tcnica de gerncia de memria onde espao de endereamento dividido em segmentos e, por sua vez, cada segmento dividido em pginas. Esse esquema de gerncia de memria tem o objetivo de oferecer as vantagens tanto da tcnica de paginao quanto da tcnica de segmentao. Nessa tcnica, um endereo virtual formado pelo nmero de segmento virtual (NSV), um nmero de pgina virtual (NPV) e um deslocamento. Swapping em memria virtual Quando existem novos processos para serem executados e no h memria principal livre suficiente para alocao, o sistema utiliza o swapping, selecionando um ou mais processos para sarem da memria e oferecer espaos para novos processos. Depois de escolhido, o sistema retira os processos da memria principal para a memria secundria, onde as pginas ou segmentos so gravados em um arquivo de swap. Com os processos salvos na memria secundria, os segmentos alocados so liberados para novos processos. O swapping com base no estado dos processos seleciona, inicialmente, os processos que esto no estado de espera. O arquivo de swap compartilhado por todos os processos que esto sendo executados no ambiente. Thrashing Thrashing pode ser definido como sendo a excessiva transferncia de pginas/segmentos entre a memria principal e secundria. Este problema est presente em sistemas que implementam tanto paginao como segmentao.

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