gestao memoria

Upload: daniel-cardoso-8294

Post on 21-Jul-2015

129 views

Category:

Documents


0 download

TRANSCRIPT

Sistemas OperativosFundamentos de sistemas operativosGesto de memria

Curso de Especializao TecnolgicaInstalao e Manuteno de Redes e Sistemas Informticos (Edio 2011)

Instalao e Manuteno de Redes e Sistemas Informticos 11

Gesto de memriaTpicos abrangidos Endereamento real x Endereamento virtual Endereamento virtual paginado Endereamento virtual segmentado Gesto de memria virtual

Sistemas Operativos

143

Instalao e Manuteno de Redes e Sistemas Informticos 11

Gesto de memriaEndereamento real (memria real) Os endereos gerados e utilizados pelos programas em execuo correspondem directamente a posies na memria fsica existente no computador A dimenso dos programas fica limitada pela dimenso da memria fsica o computador Normalmente um programa preparado (pelo compilador) para correr numa determinada gama de endereos O facto anterior dificulta a multi-programao pois quase de certeza que iro existir diversos programas a querer utilizar a mesma gama de endereosSistemas Operativos 144

Instalao e Manuteno de Redes e Sistemas Informticos 11

Gesto de memria Sistemas de endereamento realPonto de vista de hardware:Mais simples de implementar (circuitos mais simples)

Ponto de vista do S.O.:Apresenta dificuldades e limitaes importantes

Fragmentao decorrente da atribuio/libertao de memria Cdigo no recolocvel Limites quanto ao tamanho mximo dos programas Dificuldades na concretizao de isolamento e segurana

Estes problemas tm soluo parcial mas implicam uma perda de eficincia no desempenho da mquina, e complexidade acrescida para o SO e para os programadores das aplicaes utilizador.

Sistemas Operativos

145

Instalao e Manuteno de Redes e Sistemas Informticos 11

Gesto de memriaEndereamento virtual Cada processo apercebe-se um conjunto de endereos (espao de endereamento) sem relao directa com qualquer poro de memria real O processador traduz automaticamente esses endereos para endereos fsicos. A traduo feita de forma transparente Endereos virtuais So os endereos utilizados pelos processos em execuo e que no correspondem directamente memria fsica

Endereos reais (endereos em memria fsica) Referem posies da memria fsica (memria que existe de facto)Sistemas Operativos 146

Instalao e Manuteno de Redes e Sistemas Informticos 11

Gesto de memria Sistemas de endereamento virtualEndereamento virtual O espao de endereamento de cada processo subdividido num conjunto de blocos. A traduo end. virtual end. real feito bloco a bloco Todos os endereos virtuais do mesmo bloco tm as mesmas regras de traduo para endereos reais Dois blocos distintos podem ter regras distintas e traduo para endereamento real Cada bloco pode estar mapeado em qualquer zona da memria fsica: no preciso manter a mesma ordem que os blocos aparentam ter no espao de endereamento virtual Usando memria virtual, pode-se armazenar temporariamente em disco alguns dos blocos do espao de endereamento que no faam falta de momento ( Memria virtual )

Sistemas Operativos

147

Instalao e Manuteno de Redes e Sistemas Informticos 11

Gesto de memria memria virtual: O espao de endereamento virtual bastante maior que o total da memria fsica realmente existente. Algumas reas do espao de endereamento encontram-se efectivamente mapeadas (algures) em memria fsica. As reas dos espaos de endereamento que no esto mapeadas em memria fsica encontram-se temporariamente armazenadas em memria secundria (disco). O S.O. gere a transferncia das diversas reas entre memria fsica e memria secundria (de uma forma transparente para os processos)Sistemas Operativos 148

Instalao e Manuteno de Redes e Sistemas Informticos 11

Gesto de memriaEndereamento virtual e memria virtual da responsabilidade do S.O. gerir os vrios espaos de endereamento virtuais: Trazer para memria fsica os blocos que esto a ser necessrios Libertar espao em memria fsica, transferindo para memria secundria blocos que no estejam a ser usados Indicar ao processador de que forma efectuada a traduo de endereos virtuais para endereos reais

Esta gesto efectuada de uma forma transparente para os processos em execuo. Cada processo v a memria como estando toda disponvel para si.

Sistemas Operativos

149

Instalao e Manuteno de Redes e Sistemas Informticos 11

Gesto de memria Sistemas de endereamento virtualMemria segmentada Bloco = segmento Segmentos diferentes podem ter tamanhos diferentes

A traduo de endereos virtuais em endereos reais feita pelo prprio processador com recurso a uma ou mais tabelas, chamadas tabelas de segmentos, as quais so criadas e preenchidas pelo S.O. Cada entrada numa tabela de segmentos chama-se descritor de segmento, e descreve o segmento quanto a: Tamanho e localizao em memria fsica Tipo de acesso permitido (projeco) Estado de presena em memria fsica (bit P )

Dois registos, BTS (base da tabela de segmentos) e LTS (limite da tabela de segmentos) indicam a localizao e dimenso da tabela de segmentos em uso.Sistemas Operativos 150

Instalao e Manuteno de Redes e Sistemas Informticos 11

Gesto de memria Sistemas de endereamento virtualMemria segmentada Um endereo virtual composto por um conjunto de bits que indicam qual o descritor de segmento dentro da tabela de segmentos que vai ser utilizado (abrev. qual o segmento ) e um conjunto de bits que indica qual o deslocamento dentro desse segmento Para optimizar o custo do acesso tabela de segmentos durante a traduo de endereos, utiliza-se um conjunto de registos de segmento que contm os valores dos descritores de segmento em uso. Se o programa no estiver sempre a mudar de segmento, evita-se grande parte dos acessos tabela de segmentos.

Sistemas Operativos

151

Instalao e Manuteno de Redes e Sistemas Informticos 11

Memria segmentada Traduo dos endereosendereo virtualP Prot Base Lim

segmento, deslocamentoBTS endereo mais alto limite (tam.) do segmento

descritor de segmentoP Indica se o segmento se encontra em memria principal Prot Indica o tipo de proteco (ex. RWX) e privilgios necessrios Base Endereo real do segmento em memria Lim Dimenso do segmento (cada segmento pode ter um tamanho diferente)Sistemas Operativos

baseTabela de segmentosLTS

endereo realend. base do segmento

Memria fsica BTS End. base da tabela de segmentos LTS Limite da tabela

endereo mais baixo

152

Instalao e Manuteno de Redes e Sistemas Informticos 11

Gesto de memria Sistemas de endereamento virtualMemria paginadaAnloga memria segmentada com a diferena que todos os blocos, chamados de pginas, tm o mesmo tamanho (geralmente pequenas) A traduo de endereos feita de maneira anloga da memria segmentada: em vez de tabelas de segmentos utilizam-se tabelas de pginas; cada entrada nessas tabelas denomina-se de PTE (Page Table Entry). Cada PTE descreve uma pgina quanto a: Localizao em memria fsica (por outras palavras, qual a page-frame em memoria fsica onde est mapeada) Tipo de acesso permitido (proteco) Estado de presena em memria fsica (bit P ) Utilizao da pgina quanto a referncia (bit R ) e modificao (bit M )

Os registos BTP e LTP so os correspondentes aos BTS e LTS da memria segmentadaSistemas Operativos 153

Instalao e Manuteno de Redes e Sistemas Informticos 11

Gesto de memria Sistemas de endereamento virtualMemria paginada (cont.) O facto das pginas terem todas o mesmo tamanho tem como consequncias: possvel a criao de um espao de endereamento perfeitamente linear possvel optimizar ou simplificar os algoritmos de gesto (a ver mais adiante)

Para optimizar o custo do acesso tabela de pginas durante a traduo de endereos, utiliza-se uma cache que consiste numa tabela de memria associativa muito rpida para servir de cache s PTE recentemente utilizadas (que sero provavelmente, pelo principio da localidade de referncia, as prximas a serem necessrias). Esta tabela denomina-se de TLB (Translation Lookaside Buffer)Sistemas Operativos 154

Instalao e Manuteno de Redes e Sistemas Informticos 11

Memria paginada Traduo dos endereosP Prot R M Base

endereo virtual pgina, deslocamentoBTP endereo mais alto pgina

PTE (Page Table Entry)P Indica se a pgina se encontra em memria principal Prot Indica o tipo de proteco (ex. RWX) e previlgios necessrios R Indica se a pgina foi referida M Indica se a pgina foi modificada Base Endereo real (optimizado) da pgina em memriaSistemas Operativos

baseTabela de pginasLTP

endereo realend. base da pgina

Memria fsica BTP End. base da tabela de pginas LTP Limite da tabela

endereo mais baixo

155

Instalao e Manuteno de Redes e Sistemas Informticos 11

Gesto de memria Memria paginada multi-nvel Se o espao de endereamento for muito grande a memria paginada torna-se ineficiente Exemplo Endereos de 64 bits Tamanho de pgina: 4k (dimenso tpica): 12 bits Restante: 64-12 = 52 bits Tabela de pginas teria (at) 252 entradas !

No vivel manter a tabela em memria

Soluo: Utilizar vrios nveis de tabelas de pginas (em cascata)Sistemas Operativos 156

Instalao e Manuteno de Redes e Sistemas Informticos 11

Memria paginada multi-nvelendereo virtual directoria, pgina, deslocamentoendereo mais alto pgina

baseDirectoria de pginas Tabela de pginas

endereo realend. base da pgina

Cada entrada na directoria de pginas indica uma tabela de pginas. A partir deste ponto a traduo como na situao anterior. Pode existir mais que um nvel intermedirio Pode-se associar uma entrada na directoria de pginas a cada processoSistemas Operativos

Memria fsica

endereo mais baixo

Exemplo - Processadores Intel: Memria paginada de nvel duplo Directoria 10 bits Pgina 10 bits Deslocamento 12 bits157

Instalao e Manuteno de Redes e Sistemas Informticos 11

Gesto de memria Sistemas de endereamento virtualMemria segmentadaVantagens Adequa-se bastante diviso lgica dos programas: um segmento para cdigo, outro para dados, etc. No obrigatrio que s haja um segmento de cada tipo Permite trabalhar eficientemente sobre uma zona de memria inteira (um segmento)

Desvantagens Pode no permitir criar um espao de endereamento perfeitamente linear e contnuo de uma forma transparente para o processo Os algoritmos de gesto so mais complicados; o mapeamento de segmentos em memria pode gerar fragmentao (porque cada segmento pode ter um tamanho diferente dos outros) As transferncias entre memria principal e secundria sempre feita em blocos (segmentos) inteiros. No caso dos segmentos serem grandes, tm-se grandes custos de eficinciaSistemas Operativos 158

Instalao e Manuteno de Redes e Sistemas Informticos 11

Gesto de memria Sistemas de endereamento virtualMemria paginadaVantagens Totalmente transparente para o programador e processo Os algoritmos de gesto so mais simples e mais eficientes pelo facto de todas as pginas terem o mesmo tamanho; as transferncias entre memria principal e memria secundria so feitas por pginas individuais (tamanho tpico: 512 bytes a 8K), sendo muito rpidas S h fragmentao (interna) na ltima pgina do processo

Desvantagens No se adequa diviso lgica dos programas to bem como a memria segmentada pois cada parte lgica dos programas (cdigo, dados, etc.) iro precisar de mais do que uma pgina As faltas de pginas representam uma perda de eficincia maior do que as faltas de segmento (por serem potencialmente em maior nmero)Sistemas Operativos 159

Instalao e Manuteno de Redes e Sistemas Informticos 11

CheckPoint Qual a diferena entre algoritmos preemptivos e no preemptivos? Qual deles mais justo e porque? Porque os algoritmos de gesto de memria segmentada so mais complexos que de memria paginada?

Sistemas Operativos

160

Instalao e Manuteno de Redes e Sistemas Informticos 11

Gesto de memria Sistemas de endereamento virtualMemria segmentada-paginadaMecanismo com semelhanas memria paginada multi-nvel e junta as melhores caractersticas da memria segmentada e da memria paginada Um endereo virtual composto por um segmento, uma pgina e o deslocamento dentro da pgina; o segmento indica qual o descritor dentro da tabela de segmentos que deve ser utilizado na traduo do endereo; o descritor indicado contm informao acerca de qual a tabela de pginas a ser utilizada para o restante da traduo do endereo (esse restante feito como no caso da memria paginada) Consegue-se ter, desta forma, um segmento subdividido em N pginas, mantendo-se as vantagens da adequao dos segmentos estrutura lgica dos programas e a eficincia associada s pginas Continuam a ser utilizados ambos os mecanismos de optimizao de eficincia: registos de segmentos e TLBSistemas Operativos 161

Instalao e Manuteno de Redes e Sistemas Informticos 11

Memria segmentada-paginada Traduo dos endereosendereo virtual segmento, pgina, deslocamentoBTS endereo mais alto pgina

baseTabela de segmentosLTS

endereo realend. base da pgina

Tabela de pginas Memria fsica

Cada descritor de segmento descreve uma tabela de pginas (localizao e tamanho). A utilizao do valor do segmento e pgina, assim como as respectivas tabelas, anloga dos casos da memria segmentada pura e da memria paginada pura.Sistemas Operativos

endereo mais baixo

162

Instalao e Manuteno de Redes e Sistemas Informticos 11

Gesto de memria Sistemas de endereamento virtualVantagens da utilizao de memria virtual (atravs de memria segmentada, paginada ou suas variantes) Facilidade na implementao de sistemas multi-programados: cada processo tem o seu prprio espao de endereamento, sendo evitada a necessidade de cdigo recolocvel; os algoritmos de gesto de memria fsica podem recolocar os blocos de memria em localizaes diferentes sem que isso afecte os processos em execuo Implementao automtica de segurana e isolamento os espaos de endereamento de processos diferentes: cada processo ter a(s) sua (s) prpria(s) tabela(s) de segmentos ou pginas A partilha de zonas de memria entre processos distintos simples: dois (ou mais) descritores de segmento (ou PTE s) descrevero o mesmo bloco em memria fsica (eventualmente com proteces diferentes, se isso for desejvel)Sistemas Operativos 163

Instalao e Manuteno de Redes e Sistemas Informticos 11

Gesto de memriaAlgoritmos de gesto de memria Algoritmos de atribuio (alocao) Determinam onde (em memria fsica) fica mapeado um bloco de memria virtual

Algoritmos de transferncia Determinam a poltica quanto s transferncias entre memria principal e memria secundria

Algoritmos de substituio Determinam qual o bloco que deve ser retirado de memria fsica para dar lugar a outroSistemas Operativos 164

Instalao e Manuteno de Redes e Sistemas Informticos 11

Gesto de memria - AlgoritmosAlgoritmos de atribuioEm memria paginada Uma vez que todas as pginas tm o mesmo tamanho, a deciso de qual a page-frame (pgina de memria fsica) que fica atribuda a uma pgina de memria virtual resume-se a encontrar uma que esteja livre. Para tal apenas preciso manter uma estrutura de dados que indique quais as pginas ocupadas e quais as pginas livres. A primeira pgina livre encontrada a escolhida.Sistemas Operativos 165

Instalao e Manuteno de Redes e Sistemas Informticos 11

Gesto de memria Algoritmos de alocaoAlgoritmos de atribuioEm memria segmentada Cada segmento pode ter um tamanho diferente. Pode surgir o problema de fragmentao se no se escolher bem qual o bloco a atribuir. A deciso deixa de ser trivial como no caso da memria paginada Existem vrios algoritmos Best-Fit Worst-Fit First-Fit Next-Fit Buddy (binrio)166

Sistemas Operativos

Instalao e Manuteno de Redes e Sistemas Informticos 11

Gesto de memria Algoritmos de alocaoAlgoritmo Best-Fit Procura o bloco que melhor se adapte dimenso pedida (que ser o menor bloco que ainda consiga conter aquilo que foi pedido) Este algoritmo visa optimizar a ocupao da memria. No entanto, geralmente o bloco atribudo excede em pouco a dimenso pedida. O excesso vai formar um novo bloco, geralmente demasiado pequeno para servir para alguma coisa. A estrutura de dados associada consiste numa lista de blocos, ordenada por ordem crescente. Em mdia ser preciso percorrer metade da lista at encontrar o bloco desejado. O bloco resultante do excedente tem que ser inserido na posio adequada na lista.Sistemas Operativos 167

Instalao e Manuteno de Redes e Sistemas Informticos 11

Gesto de memria Algoritmos de alocaoAlgoritmo Worst-Fit Procura o maior bloco, sendo esse o bloco atribudo. Este algoritmo tenta prevenir o aparecimento de blocos pequenos como no caso do best-fit. A ideia a seguinte: o excedente do bloco (a diferena entre o que foi atribudo e o que foi pedido) ainda ser suficientemente grande para ser til a pedidos posteriores. No entanto os blocos grandes desaparecem rapidamente tendo como consequncia a possibilidade de pedidos grandes posteriores no poderem ser satisfeitos. A estrutura de dados associada ser uma lista de blocos ordenada por ordem decrescente. A determinao de qual o maior bloco fica bastante facilitada. O bloco resultante do excedente tem que ser inserido na posio adequada na lista.Sistemas Operativos 168

Instalao e Manuteno de Redes e Sistemas Informticos 11

Gesto de memria Algoritmos de alocaoAlgoritmo First-Fit Escolhe para atribuio o primeiro bloco que suficientemente grande para satisfazer o pedido. Este algoritmo tem como objectivo diminuir o tempo de pesquisa do bloco a atribuir sem ter a desvantagem do worstfit. gerada fragmentao num dos extremos de memria enquanto se salvaguarda a existncia de blocos grandes livres no outro extremo. A estrutura de dados associada consiste numa lista de blocos ordenada pelo endereo do bloco. Os blocos resultantes do excedente entre o bloco atribudo e o bloco pedido so mais facilmente reintroduzidos que nos algoritmos anteriores.Sistemas Operativos 169

Instalao e Manuteno de Redes e Sistemas Informticos 11

Gesto de memria Algoritmos de alocaoAlgoritmo Next-Fit Verso modificada do first-fit, em que cada pesquisa comea no ponto onde a anterior terminou. Esta modificao visa evitar o aparecimento de fragmentao apenas num dos extremos da lista, melhorando a velocidade de pesquisa, tendo no entanto como consequncia a disperso de blocos pequenos por toda a memria.

Sistemas Operativos

170

Instalao e Manuteno de Redes e Sistemas Informticos 11

Gesto de memria Algoritmos de alocaoAlgoritmo Buddy-Binrio Este algoritmo atribui blocos de tamanho 2n de tal forma que a dimenso pedida TAM verifica 2n-1 < TAM 2n. Se no existir nenhum bloco livre nessa condio, tenta-se encontrar um bloco maior (sempre com uma dimenso potncia de 2), o qual ser dividido em dois de uma forma recursiva at se obter um bloco que verifique a condio. Os outros blocos resultantes deste processo de diviso ficam livres para outros pedidos. Este algoritmo tem a vantagem de conseguir um bom equilbrio entre a velocidade de pesquisa e a fragmentao: A quantidade de blocos manipulados nunca demasiado grande; por outro lado os blocos libertos vo sendo recombinados, reconstruindo-se facilmente os blocos maiores originais.

Sistemas Operativos

171

Instalao e Manuteno de Redes e Sistemas Informticos 11

Gesto de memria - AlgoritmosAlgoritmos de transferncia So invocados em trs situaes Por pedidoO S.O. (ou um processo) determina quando se deve carregar um bloco em memria (ex.: na criao de um processo)

Por necessidadeO bloco de memria acedido numa altura em que no se encontrava em memria principal; d-se uma falta de pgina ou segmento e torna-se necessrio carregar o bloco em memria fsica

Por antecipaoPara tentar aumentar o desempenho, o bloco carregado em memria quando h fortes probabilidades de ele vir a ser necessrio nos prximos instantes (mas antes de ser efectivamente necessrio)Sistemas Operativos 172

Instalao e Manuteno de Redes e Sistemas Informticos 11

Gesto de memria Algoritmos de transfernciaTransferncia de pginas As transferncias de pginas so geralmente feitas por necessidade: Quando um processo criado, as suas tabelas de pginas so inicializadas mas as pginas no so colocadas em memria; medida que o processo vai progredindo, ir gerar endereos que iro causar faltas de pginas - nessas ocasies, o S.O. colocar as pginas em memria de uma forma transparente para o processo (porque esto a ser necessrias); As pginas que nunca chegam a ser necessrias (cdigo que no chegou a ser executado ou dados que no chegaram a ser necessrios, por exemplo) nunca sero carregadas, tendo-se poupado tempo.

Sistemas Operativos

173

Instalao e Manuteno de Redes e Sistemas Informticos 11

Gesto de memria Algoritmos de transfernciaTransferncia de segmentosNormalmente, um processo precisa de vrios segmentos em simultneo para se poder executar: cdigo, dados, pilha, heap, etc. Em processos pequenos pode coincidir com a totalidade da sua memria Quando o sistema coloca o processo em execuo, coloca em memria os seus segmentos. As transferncias de segmentos so, geralmente, feitas por pedido Se o processador suportar excepes do tipo falta de segmento, ento tambm se podem efectuar transferncias de segmento por necessidade. No entanto, mesmo que o processador suporte este tipo de excepes, raramente os SOs as utilizam pois uma falta de segmento tem um overhead muito maior que uma falta de pginaSistemas Operativos 174

Instalao e Manuteno de Redes e Sistemas Informticos 11

Gesto de memria Algoritmos de SubstituioSubstituio de pginas O factor decisivo quanto escolha das pginas que so retiradas de memria para dar lugar a outras est relacionado com a sua utilizao. Idealmente, as pginas a retirar sero aquelas que apenas sero necessrias em ltimo lugar. Este algoritmo no directamente concretizvel pois depende de conhecimento acerca do futuro. Atravs do princpio de localidade de referncia, pode-se utilizar o conhecimento da utilizao passada das pginas para inferir qual ir ser a sua utilizao futura. Os seguintes algoritmos consistem na tentativa de aproximao ao algoritmo ideal: FIFO First In First Out LRU Least Recently Used NRU Not Recently UsedSistemas Operativos 175

Instalao e Manuteno de Redes e Sistemas Informticos 11

Gesto de memria Substituio de pginas FIFOAlgoritmo FIFO First In First Out Este algoritmo mantm as pginas numa lista ordenada pelo tempo em que foram carregadas em memria. Quando se carrega uma pgina em memria, coloca-se no fim da lista. Quando necessrio remover uma pgina, escolhe-se a que est no incio da lista.

Este algoritmo tem a desvantagem de no conseguir distinguir uma pgina que j no necessria (foi carregada muito tempo) de uma que est a ser sempre necessria (de tal forma que foi das primeiras a serem carregadas). Pode acontecer retirar-se uma pgina que vai voltar a ser necessria da a pouco tempo.Sistemas Operativos 176

Instalao e Manuteno de Redes e Sistemas Informticos 11

Gesto de memria Substituio de pginas LRUAlgoritmo LRU Least Recently Used (menos usadarecentemente) Este algoritmo baseia-se no tempo em que a pgina foi acedida em vez de o tempo em que a pgina foi carregada. Desta forma consegue-se distinguir pginas que esto sempre a ser acedidas e que foram carregadas h muito tempo das que foram carregadas h muito tempo mas que j no so utilizadas. Idealmente, o prprio processador manteria a idade da pgina desde o ltimo acesso nas PTE. No entanto, tal soluo seria demasiado custosa em termos de complexidade de hardware, pelo que no vulgar. A contabilizao do tempo que passou desde o ultimo acesso a cada pgina ser feita pelo S.O.Sistemas Operativos 177

Instalao e Manuteno de Redes e Sistemas Informticos 11

Gesto de memria Substituio de pginas LRUAlgoritmo LRU (cont.) A cada pgina associado um contador, inicializado a zero quando a pgina carregada. Sempre que uma pgina acedida, o bit R da PTE atravs do qual foi acedida colocado a 1 . Normalmente, esta actualizao feita pelo prprio processador (caso o processador no suporte esta caracterstica, ainda possvel ao S.O. conseguir efectuar esta actualizao mas com grande penalizao em termos de eficincia). Periodicamente todas as tabelas de pginas so inspeccionadas; se o bit R estiver a 0 , o contador associado ser incrementado (a pgina est a ficar velha por no ser utilizada); se o bit R estiver a 1 , o contador e esse bit so recolocados a zero (a pgina voltou a ser nova porque est a ser utilizada). Quando o contador atinge o valor mximo, a pgina associada marcada como invlida (o bit P posto a zero) para todos os efeitos, o espao ocupado por ela em memria fsica est livre.

Sistemas Operativos

178

Instalao e Manuteno de Redes e Sistemas Informticos 11

Gesto de memria Substituio de pginas NRUAlgoritmo NRU Not Recently Used (no usada recentemente) Simplificao do algoritmo LRU e que consiste analisar os bits R e M das PTE para classificar as pginas quanto sua utilizao. Interessa averiguar apenas se uma pgina foi ou no acedida ou modificada recentemente (no interessando distinguir o tempo decorrido); as pginas sero classificadas consoante as 4 combinaes possveis de valores para estes dois bits. Periodicamente as tabelas de pginas so percorridas: O bit R posto a zero pelo processo paginador O bit M posto a zero quando a pgina gravada em disco

Convm lembrar que: O bit R colocado a 1 sempre que a pgina acedida; O bit M colocado a 1 sempre que a pgina modificada; Normalmente, estas duas actualizaes so feitas automaticamente pelo prprio processador quando traduz os endereos virtuais.Sistemas Operativos 179

Instalao e Manuteno de Redes e Sistemas Informticos 11

Gesto de memria Substituio de pginas NRUAlgoritmo NRU (cont.) As pginas so escolhidas como vtimas para sairem da memria pela seguinte ordemordem 1 2 3 4 R 0 0 1 1 M 0 1 0 1

Nem referida nem modificada No referida mas modificada Referida mas no modificada Referida e modificada (pior caso)

Referida est a ser necessria (utilizada recentemente) provavelmente ser necessria brevemente (pelo princpio da localidade de referncia) Modificada Tem que se gravar em memria secundria para no se perderem as modificaes tem o custo adicional de I/O

Sistemas Operativos

180

Instalao e Manuteno de Redes e Sistemas Informticos 11

Gesto de memria Algoritmos de SubstituioSubstituio de segmentosComo cada segmento tem o seu prprio tamanho, a escolha do(s) segmentos(s) a ser(em) retirado(s) de memria j no pode ser feito da mesma forma que em memria paginada Normalmente retiram-se segmentos em funo do processo a que pertencem Interessa ver qual o processo que no precisa (no se prev que v) executar nos prximos instantes; tal processo uma boa vitima para ter os seus segmentos retirados de memria principal Factores a levar em conta em relao ao processo (cujos segmentos vo ser retirados) Qual a sua importncia / prioridade Qual a sua utilizao do processador Qual a sua dimenso (total dos seus segmentos)Sistemas Operativos 181

Instalao e Manuteno de Redes e Sistemas Informticos 11

Gesto de memria Substituio de pginasModelo de espao de trabalho Observa-se que compensa nunca colocar em memria mais do que uma determinada percentagem das suas pginas: No aumenta muito o nmero de faltas de pgina Ficam mais pginas livres para outros processos% de faltas de pgina do processo 100%

Programa sem qualquer localidade de referncia Programa real

100%

% de pginas do processo presentes

Variao das faltas de pginas em funo da percentagem de pginas presentesSistemas Operativos 182

Instalao e Manuteno de Redes e Sistemas Informticos 11

Gesto de memria Substituio de pginasModelo de espao de trabalho (cont.)Espao de trabalho : quantidade de pginas que um processo deve ter presentes em memria A dimenso do espao de trabalho no necessariamente a mesma para todos os processos. Quando um processo criado, so carregadas algumas pginas (por antecipao) at se atingir um espao de trabalho mnimo. medida que o processo vai pedindo mais pginas, sem exceder o seu espao de trabalho mximo, as novas pginas so obtidas do espao atribudo a outros processos. Quando o processo atinge o valor mximo do seu espao de trabalho, as novas pginas que lhe so atribudas so obtidas do seu prprio espao. Quando a quantidade de pginas de um processo presentes em memria desce abaixo do seu valor mnimo de espao de trabalho (por lhe terem sido tiradas por outros processos), todo o processo enviado para memria secundria.Sistemas Operativos 183

Instalao e Manuteno de Redes e Sistemas Informticos 11

CheckPoint Qual a teoria subjacente no algoritmo Worst Fit? Como funcionam os algoritmos de transferncia quando so invocados por antecipao? Como funciona o algoritmo NRU ao substituir as pginas? O que est subjacente no modelo espao de trabalho?Sistemas Operativos 184