Você está na página 1de 36

DCC062 Sistemas Operacionais

Cap. 4 Gerenciamento de Memria


Prof. Eduardo Pagani Julio
eduardo.pagani@ice.ufjf.br

Dep. Cincia da Computao

Gerenciamento de Memria
Todo programador deseja contar com memria:
Grande Rpida No voltil

Hierarquia de memrias
Pequena quantidade de memria rpida, de alto custo - cache Quantidade considervel de memria de velocidade mdia, custo mdio - memria principal Gigabytes de armazenamento no-voltil de velocidade e custo baixos - disco

O gerenciador de memria trata a hierarquia de memrias

Dep. Cincia da Computao

Gerenciamento Bsico de Memria


Monoprogramao

Dep. Cincia da Computao

Gerenciamento Bsico de Memria


Multiprogramao com parties fixas

Dep. Cincia da Computao

Relocao e Proteo
No se sabe com certeza onde o programa ser carregado na memria
Localizaes de endereos de variveis e de cdigo de rotinas no podem ser absolutos

Soluo 1: instrues do programa so modificadas segundo a partio de memria em que ele ser carregado
No resolve proteo! Bits de proteo podem ser usados, funcionando como chaves de acesso

Soluo 2: uso de valores base e limite


Localizaes de endereos so somadas ao valor base antes de serem mapeadas na memria fsica Localizaes de endereos maiores que o limite indicam erro

Dep. Cincia da Computao

Troca de Processos

Dep. Cincia da Computao

Troca de Processos

Dep. Cincia da Computao

Gerenciamento com Mapas de Bits

Dep. Cincia da Computao

Gerenciamento com Lista Encadeada

Dep. Cincia da Computao

Gerenciamento com Lista Encadeada

Dep. Cincia da Computao

Algoritmos para Seleo de Segmento


Algoritmos usados para a escolha do segmento a ser tomado para alocao por um processo
First fit Next Fit Best fit Worst fit Buddy System

Dep. Cincia da Computao

Seleo de Segmento - First fit

Dep. Cincia da Computao

Seleo de Segmento - Next fit

Dep. Cincia da Computao

Seleo de Segmento - Best fit

Dep. Cincia da Computao

Seleo de Segmento - Worst Fit

Dep. Cincia da Computao

Alocao Buddy System

Dep. Cincia da Computao

Memria Virtual

Dep. Cincia da Computao

Paginao

Dep. Cincia da Computao

Paginao

Dep. Cincia da Computao

Algoritmos para Substituio de Pginas


Algoritmos usados para a escolha de qual pgina ser removida da memria principal para dar lugar a outra
timo No usada recentemente (NRU) Primeira a Entrar, Primeira a Sair (FIFO) Segunda Chance (SC) Relgio (Clock) Menos recentemente usada (LRU) Conjunto de Trabalho (Working Set) WSClock
Dep. Cincia da Computao

Substituio de Pginas: timo


Algoritmo timo:
Rotular cada pgina com quantas instrues faltam para que ela seja realmente usada Substituir a pgina que ser necessria o mais a frente possvel, ou seja, a que possui maior rtulo Adia a ocorrncia da falta para o mais tarde possvel timo, mas no realizvel

Prximo uso pode ser estimado


Registro do uso da pgina em execues anteriores do processo

Muito bom para comparaes. Invivel na prtica.


Dep. Cincia da Computao

Substituio de Pginas: NRU


No Usada Recentemente (NRU)
Cada pgina tem os bits Referenciada (R) e Modificada (M) Bits so colocados em 1 sempre que a pgina referenciada (R) e modificada (M)

As pginas so classificadas
Classe 0: no referenciada, no modificada Classe 1: no referenciada, modificada Classe 2: referenciada, no modificada Classe 3: referenciada, modificada

NRU remove pgina aleatoriamente da classe de ordem mais baixa que no esteja vazia
Dep. Cincia da Computao

Substituio de Pginas: FIFO


Primeira a Entrar, Primeira a Sair (FIFO)
Mantm uma lista encadeada de todas as pginas
Pgina mais antiga na cabea da lista Pgina que chegou por ltimo na memria no final da lista

Na ocorrncia de falta de pgina


Pgina na cabea da lista removida Nova pgina adicionada no final da lista

Desvantagem
Pgina h mais tempo na memria pode ser usada com muita freqncia

Dep. Cincia da Computao

Substituio de Pginas: SC
Segunda Chance
Levar em conta o bit R da pgina mais antiga (cabea)

Dep. Cincia da Computao

Substituio de Pginas: Relgio


Relgio (Clock)
Manter as pginas em uma lista circular

Dep. Cincia da Computao

Substituio de Pginas: LRU


Menos Recentemente Usada (LRU) Assume que pginas usadas recentemente logo sero usadas novamente Retira da memria pgina que h mais tempo no usada Uma lista encadeada de pginas deve ser mantida
A pgina mais recentemente usada no incio da lista, a menos usada no final da lista Atualizao da lista cada referncia memria

Alternativamente, manter contador em cada entrada da tabela de pgina, com auxlio de hardware Escolhe pgina com contador de menor valor Zera o contador periodicamente
Dep. Cincia da Computao

Substituio de Pginas: LRU


Ou, ainda, hardware especial com matriz nxn
Ordem: 0,1,2,3,2,1,0,3,2,3

Dep. Cincia da Computao

Substituio de Pginas: LRU


Simulao em Software
Algoritmo No Usada Frequentemente (NUF) Com Aging

Dep. Cincia da Computao

Substituio de Pginas: Conjunto de Trabalho


Conjunto de Trabalho (Working Set) O conjunto de trabalho o conjunto de pginas usadas pelas k referncias mais recentes memria w(k,t) o tamanho do conjunto de trabalho no instante t

Dep. Cincia da Computao

Substituio de Pginas: Conjunto de Trabalho


Conjunto de Trabalho (Working Set)

Dep. Cincia da Computao

Substituio de Pginas: WSClock

Dep. Cincia da Computao

Substituio de Pginas: Comparao

Dep. Cincia da Computao

Envolvimento S.O e Paginao


Quatro circunstncias de envolvimento: Criao de processo determina tamanho do programa e cria tabela de pgina Execuo de processo MMU reinicializada com tabela para novo processo Ocorrncia de falta de pgina determina endereo virtual que causou a falta descarta, se necessrio, pgina antiga carrega pgina requisitada para a memria Terminao de processo Libera tabela de pginas, pginas, e espao em disco

Dep. Cincia da Computao

Tratamento de Faltas de Pgina


1. Hardware desvia a execuo para o ncleo 2. Salva contedo de registradores e outras informaes volteis 3. SO determina a pgina virtual necessria 4. SO checa validade de endereo, busca moldura de pgina 5. Se moldura de pgina selecionada foi modificada (suja), salv-la em disco 6. SO busca em disco pgina virtual referenciada 7. Tabela de pginas atualizada 8. Estado da instruo que causou falta de pgina recuperado 9. Processo que causou falta de pgina escalonado para executar 10.Programa continua

Dep. Cincia da Computao

Exerccios
Dado um sistema de memria virtual com pginas de 4K palavras, e como tabela de pginas:
Pg. Virtual Frame pgina Pede-se: (12 bits) (8 bits) a) O endereo fsico do endereo virtual 0x1ABC. 0x000 0x04 b) O endereo virtual do endereo fsico 0x4310. 0x001 0x01 c) O maior tamanho de processo possvel. 0x002 0x43 d) O tamanho mximo da memria fsica. 0x003 0x14 ... ... Obs.: 0x uma notao para nmeros hexadecimais

Dep. Cincia da Computao

Exerccios
Dado um sistema com memria virtual que utiliza o algoritmo de substituio de pginas Menos Recentemente Usada e que possua 4 frames de pgina. Mostre passo-a-passo a situao da memria fsica frente seguinte sequncia de acesso a pginas virtuais: 0, 1, 2, 3, 0, 4, 5, 0, 1, 2, 1, 3, 1, 0. Marque para cada passo se houve falha (MISS) ou acerto (HIT) no acesso pgina. Responda quantas falhas e acertos ocorrem no total.

Dep. Cincia da Computao

Você também pode gostar