resumo de gerência de memória virtual obedio - cópia

6
 UNIVERSIDADE FEDERAL DO PIAUÍ CAMPUS SENADOR HELVÍDIO NUNES DE BARROS BACHARELADO EM SISTEMAS DE INFORMAÇÃO SISTEMAS OPERACIONAIS Resumo do capítulo 10: Gerência de Memória Virtual Abimael Santiago Francisca Gisele Givanaldo Rodrigues Obedio Albuquerque Fevereiro, 2013 Picos - PI

Upload: viviane-araujo

Post on 30-Oct-2015

76 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Resumo de Gerência de Memória virtual obedio - Cópia

7/16/2019 Resumo de Gerência de Memória virtual obedio - Cópia

http://slidepdf.com/reader/full/resumo-de-gerencia-de-memoria-virtual-obedio-copia 1/6

 

UNIVERSIDADE FEDERAL DO PIAUÍCAMPUS SENADOR HELVÍDIO NUNES DE BARROSBACHARELADO EM SISTEMAS DE INFORMAÇÃO

SISTEMAS OPERACIONAIS

Resumo do capítulo 10: Gerência de Memória Virtual

Abimael SantiagoFrancisca Gisele

Givanaldo RodriguesObedio Albuquerque

Fevereiro, 2013Picos - PI

Page 2: Resumo de Gerência de Memória virtual obedio - Cópia

7/16/2019 Resumo de Gerência de Memória virtual obedio - Cópia

http://slidepdf.com/reader/full/resumo-de-gerencia-de-memoria-virtual-obedio-copia 2/6

 

Resumo de Gerência de Memória virtual

Introdução Memória virtual é uma técnica sofisticada e poderosa de gerencia de memória, onde asmemórias principal e secundaria são combinadas dando ao usuário a ilusão de existir umamemória muito maior que a capacidade real da memória principal.Outra vantagem da técnica da memória virtual é permitir um numero maior de processoscompartilhando a memória principal, já que apenas partes de cada processo estarão residentes.Isso leva a uma utilização mais eficiente também do processador. Além disso, essa técnicatambém possibilita minimizar o problema da fragmentação da memória principal.A primeira implementação de memória virtual foi realizada no inicio da década de 1960, nosistema Atlas desenvolvido na universidade de Manchester. Atualmente, a maioria dossistemas implementa memória virtual, com execução de alguns sistemas operacionais de

supercomputadores.

Espaços de endereçamento virtualA memória virtual utiliza abstração semelhante, só que em relação aos endereçamentos dos

 programas e dados. Um programa no ambiente de memória virtual não faz referencia aendereços físicos de memória, mas apenas a endereços virtuais.

MapeamentoO mecanismo de tradução de endereço virtual para endereço físico é denominado

mapeamento.A seguir veremos que alguns sistemas operacionais trabalham apenas com blocos de tamanhofixo (técnica de paginação), enquanto outros utilizam blocos de tamanho variável (técnica desegmentação) e ainda um terceiro tipo que implementa ambas as técnicas (segmentação com

 paginação).

Memória virtual por paginaçãoÉ uma técnica de gerenciamento de memória, onde o espaço de endereçamento

real e virtual é dividido em blocos, chamados de páginas. Todo mapeamento de endereçovirtual em real é feito através de tabelas de páginas, e cada página virtual possui uma entrada

na tabela (ETP) que permite encontrar o endereço de memória real correspondente aoendereço de memória virtual. Além da informação sobre a localização da página virtual a ETP(entrada na tabela de páginas) também indica se a página está ou não na memória principal,através de um bit de validade. Onde se o bit possuir valor zero a página virtual não está namemória principal, mas caso seja um ela esta localizada na memória.

Caso a página não esteja na memória dizemos que ocorreu um page fault. Nessecaso, o sistema transfere a página da memória secundaria para a memória principal realizandouma operação de E/S conhecida como page in. Após a transferência de página para a memória

 principal, o processo é realocado no estado de pronto e quando for reescalonado poderá

continuar sua execução.

Page 3: Resumo de Gerência de Memória virtual obedio - Cópia

7/16/2019 Resumo de Gerência de Memória virtual obedio - Cópia

http://slidepdf.com/reader/full/resumo-de-gerencia-de-memoria-virtual-obedio-copia 3/6

 

Políticas de busca de páginasDetermina quando uma página deve ser carregada para a memória. Existem duas

estratégias para este proposito: paginação por demanda e paginação antecipada.Paginação por demanda: transfere para a memória principal somente as páginas

realmente necessárias à execução do programa. Evitando desperdício de tem e de espaço namemória.

Paginação antecipada: transfere para a memória além das páginas referenciadasoutras páginas que podem ou não ser necessárias ao processo. Caso o processo não precisedas páginas carregadas antecipadamente, o sistema terá perdido tempo e ocupado memóriadesnecessariamente.

Políticas de alocação de páginasDeterminam quantos blocos cada processo pode manter na memória principal.

Existem duas alternativas: alocação fixa e alocação variável.Política de alocação fixa: cada processo tem um numero máximo de blocos que

 podem ser utilizados durante a execução do programa. Caso o numero de páginas reais sejainsuficiente, uma página do processo será descartada para que uma nova seja carregada. Os

 problemas desse processo é que se o número de páginas alocadas for pequeno o processo terámuitas falhas de página (page fault), ou se o número for grande haverá desperdício dememória.

Política de alocação variável: nesse caso o número de páginas alocado pode variar durante a execução. Esse mecanismo é mais flexível, porem exige monitoramento constante

dos processos.

Políticas de substituição de páginasAcontece quando um processo atinge seu limite de alocação de blocos e necessita

alocar novas páginas na memória principal, então o sistema seleciona qual página seráliberada para então alocar a nova página. A política de substituição de páginas pode ser classificada como local ou global.

Política de substituição local: apenas as páginas do processo que gerou a pagefault são candidatas a realocação.

Política de substituição global: todas as páginas alocadas na memória principal

são candidatas a substituição independente do processo que gerou a page fault. As páginas donúcleo do sistema não podem ser realocadas.

Existe uma relação entre a política de substituição e a política de alocação de páginas. Pois a política de alocação fixa permite somente uma política de substituição local ea política de alocação variável permite uma política de substituição tanto local quanto global.

Working SetÉ um conjunto de páginas 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 inúmeras operações de E/S e esta relacionado ao princípio da localidade. Existem dois tipos de localidade: espacial e temporal.

Page 4: Resumo de Gerência de Memória virtual obedio - Cópia

7/16/2019 Resumo de Gerência de Memória virtual obedio - Cópia

http://slidepdf.com/reader/full/resumo-de-gerencia-de-memoria-virtual-obedio-copia 4/6

 

Localidade espacial: após a referência a uma posição da memória, são feitas novasreferencias a endereços próximos.

Localidade temporal: após à referência a uma posição de memória esta mesma posição volta a ser referenciada.

O princípio da localidade é indispensável para que a gerência da memória virtualfuncione.

Algoritmos de substituição de páginasOs algoritmos de substituição de páginas têm o objetivo de selecionar os frames

que tenham as menores chances de serem referenciados em um futuro próximo; casocontrário, o frame poderia retornar diversas vezes para a memória principal, gerando vários

 page faults e acessos à memória secundária.Algoritmo Ótimo seleciona pra substituição uma página que não será mais

referenciada no futuro ou que levará maior intervalo de tempo para ser novamente utilizada.Algoritmo Aleatório não utiliza nenhum critério de seleção de página. Consome

 poucos recursos do sistema, mas não é muito eficiente.Algoritmo FIFO, a página que primeiro foi utilizada será a ser escolhida,

seleciona a página que está a mais tempo na memória principal.Algoritmo LFU (Least-Frequently-Used) seleciona a página menos referenciada,

ou seja, a menos utilizada. Possui um contador para contar a quantidade de referências da página.

Algoritmo LRU (Least-Recently-Used) seleciona a página na memória principal

que está a mais tempo sem ser referenciada. Cada página possui o momento do último acesso.Algoritmo NRU (Not-Recently-Used) funciona semelhante ao LRU. Utiliza um bit adicional, conhecido como bit de referência (BR). Quando uma página é carregada para amemória principal, o bit de referência é alterado pelo hardware, indicando que a página foireferenciada (BR = 1). Periodicamente, o sistema altera o valor do bit de referência (BR = 0),e a medida que as páginas são utilizadas, o bit associado a cada frame retorna para 1.

Algoritmo FIFO com buffer de páginas combina uma lista de páginas alocadas(LPA) com uma lista de páginas livres (LPL). A LPA organiza todas as páginas que estãosendo utilizadas na memória principal. A LPA organiza as páginas alocadas há mais tempo namemória no início da lista, e as mais recentes no final da lista. Sempre que um processo

necessita alocar uma nova página, o sistema utiliza a primeira página da LPL, colocando-o nofinal da LPA.

Algoritmo FIFO circular utiliza como base o FIFO. Esse algoritmo possui um ponteiro que guarda a posição da página mais antiga na lista. Cada página possui um bitassociado de referência, indicando se a página foi recentemente referenciada. A páginaselecionada será a que possuir mais tempo sem ser referenciada, e não necessariamente a maisantiga.

Translation Lookaside Buffer

Como a maioria das aplicações referencia um número reduzido de frames namemória principal, seguindo o princípio da localidade, somente uma pequena fração da tabelade mapeamento é realmente necessária. Com base nesse princípio, foi introduzida uma

Page 5: Resumo de Gerência de Memória virtual obedio - Cópia

7/16/2019 Resumo de Gerência de Memória virtual obedio - Cópia

http://slidepdf.com/reader/full/resumo-de-gerencia-de-memoria-virtual-obedio-copia 5/6

 

memória especial chamada translation lookaside buffer (TLB), com o intuito de mapear endereços virtuais em endereços físicos sem a necessidade de acesso à tabela de páginas.Funciona como uma cache, mantendo apenas as traduções dos endereços virtuais das páginasmais recentemente referenciadas.

Proteção de memóriaÉ o mecanismo utilizado para permitir ou negar o acesso a uma determinada

 página. Existem dois tipos de acesso, acesso de leitura, e o acesso de gravação. Esse dois tiposde acessos produzem um mecanismo simples e eficiente. Sempre que uma página éreferenciada, o sistema operacional verifica na tabela de mapeamento do processo a proteçãodo frame e determina se a operação é permitida.

Compartilhamento de memória

O mecanismo de paginação permite que processos façam o mapeamento de umamesma área na memória e, consequentemente, tenham acesso compartilhado de leitura egravação. A única preocupação é garantir o sincronismo no acesso à região compartilhada.

Memória virtual por segmentação Memória virtual por segmentação é a técnica de gerência de memória onde o espaço

de endereçamento virtual é dividido em blocos de tamanhos diferentes chamados segmentos. Na técnica de segmentação, um programa é dividido logicamente em sub-rotinas e estruturasde dados, que são alocadas em segmentos na memória principal.

O espaço de endereçamento virtual de um processo possui um número máximo desegmentos, que podem existir, onde cada segmento pode variar de tamanho dentro de umlimite. Espaços de endereçamento independentes permitem que uma sub-rotina seja alteradasem a necessidade de o programa principal e suas sub-rotinas serem recompiladas e religadas.

Os segmentos são mapeados através de tabelas de mapeamento de segmentos (TMS),e os endereços são compostos pelo número do segmento virtual (NSV) e pelo deslocamento.

Para alocar os segmentos na memória principal, o SO mantém uma tabela com áreaslivres e ocupadas da memória. Quando um novo segmento é referenciado, o sistema selecionaum espaço livre suficiente para que o segmento seja carregado na memória.

 Na segmentação surge o problema da fragmentação externa. Esse problema ocorre

sempre que há diversas áreas livres na memória principal, mais nenhuma é suficiente paraalocar um novo segmento.

Proteção de memória em sistemas com segmentação. Como cada segmento possui umconjunto bem definido, basta especificar a proteção do segmento na ETS, onde alguns bits

 podem especificar os tipos de acessos ao segmento.Compartilhamento de memória. Na segmentação é simples o compartilhamento de

memória, pois a tabela de segmentos mapeia estruturas lógicas.

Page 6: Resumo de Gerência de Memória virtual obedio - Cópia

7/16/2019 Resumo de Gerência de Memória virtual obedio - Cópia

http://slidepdf.com/reader/full/resumo-de-gerencia-de-memoria-virtual-obedio-copia 6/6

 

Memória virtual por segmentação com paginaçãoMemória virtual por segmentação com paginação É a técnica de gerência de memória

onde espaço de endereçamento é dividido em segmentos e, por sua vez, cada segmentodividido em páginas. Esse esquema de gerência de memória tem o objetivo de oferecer asvantagens tanto da técnica de paginação quanto da técnica de segmentação.

 Nessa técnica, um endereço virtual é formado pelo número de segmento virtual(NSV), um número de página virtual (NPV) e um deslocamento.

Swapping em memória virtualQuando existem novos processos para serem executados e não há memória principal

livre suficiente para alocação, o sistema utiliza o swapping, selecionando um ou mais processos para saírem da memória e oferecer espaços para novos processos. Depois deescolhido, o sistema retira os processos da memória principal para a memória secundária,

onde as páginas ou segmentos são gravados em um arquivo de swap. Com os processos salvosna memória secundária, os segmentos alocados são liberados para novos processos. Oswapping com base no estado dos processos seleciona, inicialmente, os processos que estãono estado de espera. O arquivo de swap é compartilhado por todos os processos que estãosendo executados no ambiente.

ThrashingThrashing pode ser definido como sendo a excessiva transferência de

 páginas/segmentos entre a memória principal e secundária. Este problema está presente em

sistemas que implementam tanto paginação como segmentação.