gerencia de memoria (2) - paginacao

36
 Gerência de Memória  Paginação

Upload: mylenemorato

Post on 01-Nov-2015

14 views

Category:

Documents


0 download

DESCRIPTION

j

TRANSCRIPT

  • Gerncia de MemriaGerncia de Memria

    Paginao

  • http://www.inf.ufes.br/~rgomes/so.htm

    Endereamento Virtual (1) Espao de endereamento dos processos no linearmente

    relacionado com a memria fsica

    Cada vez que so usados, os endereos virtuais so convertidos pela MMU para endereos reais

    2 Sistemas Operacionais LPRM/DI/UFES

  • http://www.inf.ufes.br/~rgomes/so.htm

    Endereamento Virtual (2)

    Exemplo Computador capaz de gerar endereos virtuais de 16 bits (0->64k).

    3 Sistemas Operacionais LPRM/DI/UFES

    >64k).

    Memria fsica de apenas 32k => programas no podem ser carregados por completo na memria fsica

    Soluo: dividir o pro-grama em Pginas

  • http://www.inf.ufes.br/~rgomes/so.htm

    Endereamento Virtual (3)

    Exemplo (cont.) Uma cpia completa do programa, de at 64k deve estar presente em disco, de modo que partes (pginas)

    4 Sistemas Operacionais LPRM/DI/UFES

    modo que partes (pginas) possam ser carregadas dinamicamente na memria quando necessrio

    Apenas precisam estar na memria principal as pginas que esto sendo utilizadas por cada processo

  • http://www.inf.ufes.br/~rgomes/so.htm

    Memria virtual: Paginao

    Processo dividido em Pginas

    A Memria dividida em Molduras (ou Frames) de mesmo tamanho Tamanho das Pginas = tamanho das Molduras

    Pginas/Molduras so de pequeno tamanho (e.g., 1K):

    5 Sistemas Operacionais LPRM/DI/UFES

    Pginas/Molduras so de pequeno tamanho (e.g., 1K): fragmentao interna pequena

    Processo no precisa ocupar rea contgua em memria Elimina fragmentao externa

    Processo no precisa estar completamente na MP

    SO mantm uma tabela de pginas por processo

    Endereos so gerados dinamicamente em tempo de execuo

  • http://www.inf.ufes.br/~rgomes/so.htm

    Paginao: Como funciona?

    Para minimizar a informao necessria converso, a memria virtual logicamente dividida em pginas Endereo virtual = (no da pgina , deslocamento)

    No exemplo anterior (end. virtuais de 16 bits=> processos de at 64k; memria fsica de 32k; pginas/molduras de 4k)

    6 Sistemas Operacionais LPRM/DI/UFES

    64k; memria fsica de 32k; pginas/molduras de 4k)

    So necessrios 4 bits para referenciar todas as 16 pginas do processo

    End. virtual = (no da pgina [4 bits] , deslocamento [16 4 bits])

    Instruo MOV REG, 0

    O end. virtual 0 enviado MMU

    Ela detecta que esse end. virtual situa-se na pgina virtual 0 (de 0 a 4095) que, de acordo com o seu mapeamento, corresponde moldura de pgina 2 (end. fsicos de 8192 12287)

  • http://www.inf.ufes.br/~rgomes/so.htm

    Paginao: Como funciona? (2) MOV REG, 20500

    Qual a pgina?

    Esta pgina est em qual moldura?

    Pag. 5, que contm os endereos de 20k (20480) at 24k-1 (24575)

    Na moldura 3, que contm end. fsicos de 12k (12288) a 16k-1 (16384)

    7 Sistemas Operacionais LPRM/DI/UFES

    Qual o deslocamento do endereo 20500 dentro da pgina?

    Qual ser o endereo fsico correspondendo ao end. virt. 20500?

    de 12k (12288) a 16k-1 (16384)

    Desl. = End. virtual End. virtual do

    1o byte da pgina

    = 20500 20480= 20

    = End. do 1o byte da moldura + desloca.

    = 12288 + 20 = 12308

  • http://www.inf.ufes.br/~rgomes/so.htm

    Paginao: Como funciona?

    Cada processo tem sua Tabela de Pginas

    Tabela de Pginas faz o mapeamento pgina x moldura

    O que acontece se o programa faz um acesso a

    8 Sistemas Operacionais LPRM/DI/UFES

    O que acontece se o programa faz um acesso a uma pgina que no est mapeada na memria?

    Tabela de pginas pode estar s parcialmente na MP

    Dois acessos MP

  • http://www.inf.ufes.br/~rgomes/so.htm

    Paginao: Endereamento

    pont. tab. de pginas

    # pgina deslocam.# moldura deslocam.

    Endereo Virtual

    Registrador

    Endereo Fsico

    9 Sistemas Operacionais LPRM/DI/UFES

    pont. tab. de pginas

    # moldura

    +

    Tabela dePginas

    memriaprincipal

  • http://www.inf.ufes.br/~rgomes/so.htm

    Paginao: Endereamento Exemplo (1)

    5 203 20

    Endereo Virtual 205000101 0000 0001 0100

    Registrador

    Endereo Fsico4 bits 12 bits

    3 bits

    12 bits

    10 Sistemas Operacionais LPRM/DI/UFES

    pont. tab. de pginas

    3

    +

    Tabela dePginas

    memriaprincipal

    Registrador

    5

  • http://www.inf.ufes.br/~rgomes/so.htm

    Paginao: Endereamento Exemplo (2)

    Operao interna de uma

    11 Sistemas Operacionais LPRM/DI/UFES

    interna de uma MMU com 16 pginas de 4 kB

    O no da pag. usado como

    ndice

  • http://www.inf.ufes.br/~rgomes/so.htm

    Paginao: Endereamento

    nmero da pgina deslocamento

    Endereo Virtual

    12 Sistemas Operacionais LPRM/DI/UFES

    outros bits de ctl.P M nmero do quadro

    Linha da Tabela de Pginas

    e.g., referenciada, proteo, compartilhamento, desabilita colocao na cache, etc.

  • http://www.inf.ufes.br/~rgomes/so.htm

    Paginao: Como funciona?

    O que acontece se o programa faz um acesso a uma pgina que no est mapeada na memria? Ocorre uma Page Fault => a MMU fora uma interrupo

    Ao do S.O.

    13 Sistemas Operacionais LPRM/DI/UFES

    Ao do S.O. Escolher uma pgina pouco usada, que encontra-se em alguma moldura da memria principal Salvar esta pgina no disco (caso ela tenha sido modificada)

    Carregar a pgina virtual referenciada pela instruo na moldura recm liberada

    Atualizar o mapeamento da tabela de pginas e reiniciar a instruo causadora da interrupo

  • http://www.inf.ufes.br/~rgomes/so.htm

    Tabela de Pginas (1)

    Problemas Ela pode ser muito grande

    Suponha uma mquina de 32 bits, 4k por pgina

    232 endereos virtuais = 220 entradas na tabela de pginas

    14 Sistemas Operacionais LPRM/DI/UFES

    2 endereos virtuais = 2 entradas na tabela de pginas

    4k = 2 x 210

    E uma mquina de 64bits !?!

    Deve-se utilizar mecanismos para diminuir o tamanho da tabela

    O mapeamento deve ser rpido Mapeamento para buscar a instruo na memria

    Instrues podem conter operandos que tambm encontram-se na memria

  • http://www.inf.ufes.br/~rgomes/so.htm

    Tabela de Pginas (2)

    Projeto mais simples: uma nica tabela de pginas que consista em um vetor de registradores rpidos em hardware (um reg. para cada entrada)

    Qdo o processo estiver para ser executado, o S.O.

    15 Sistemas Operacionais LPRM/DI/UFES

    Qdo o processo estiver para ser executado, o S.O. carregar esses reg. A partir de uma cpia da tab. de pginas desse processo mantida na memria

    Vantagem: requer nenhum acesso memria durante a traduo

    Desvantagens: CARO!!!

    Ter que carregar toda a tabela de pginas em cada traca de contexto

  • http://www.inf.ufes.br/~rgomes/so.htm

    Tabela de Pginas (3)

    Segunda opo: Tabela de pginas totalmente na memria

    O HW necessrio resume-se a um nico registrador (que aponta para o incio da tabela de pginas

    Desvantagem:

    16 Sistemas Operacionais LPRM/DI/UFES

    Desvantagem: A execuo de uma instruo implicar em pelo menos dois

    acessos a memria

    O primeiro, para acessar a tabela de pginas (e descobrir o endereo fsico desta instruo)

    O segundo, para buscar a respectiva instruo na memria

    Isso sem falar nos operandos da instruo que podem estar em memria...

  • http://www.inf.ufes.br/~rgomes/so.htm

    Tabela de Pgina Multinvel (1)

    O objetivo evitar manter toda a tabela de pginas na memria durante todo o tempo

    Apresenta-se como uma soluo para odimensionamento da tabela de pginas

    17 Sistemas Operacionais LPRM/DI/UFES

    dimensionamento da tabela de pginas

    Uso de dois apontadores e um deslocamento

    Exemplo: Tabela de dois nveis O endereo de 32 bits de endereo divido em 3 campos

    PT1 [10 bits] : indexa o primeiro nvel da tabela

    PT2 [10 bits] : indexa o segundo nvel da tabela

    Deslocamento [12 bits]: => paginas de 4 KB

  • http://www.inf.ufes.br/~rgomes/so.htm

    Tabela de Pgina Multinvel (2)

    1o nvel com 1024 entradas

    Cada uma dessas entradas representa 4 MB 4 GB / 1024

    18 Sistemas Operacionais LPRM/DI/UFES

  • http://www.inf.ufes.br/~rgomes/so.htm

    Tabela de Pgina Multinvel (3)

    No exemplo anterior: Suponha que um processo utilize apenas 12 MB do seu espao de endereos virtuais 4MB da base da memria para cdigo de programa

    Outros 4 MB para dados

    19 Sistemas Operacionais LPRM/DI/UFES

    Outros 4 MB para dados

    4 MB do topo da memria para pilha

    Portanto: A entrada 0 da tabela de nivel 1 aponta para a tab. de pginas de nvel 2 relativa ao cdigo do programa

    A entrada 1 da tabela de nivel 1 aponta para a tab. de pginas de nvel 2 relativa aos dados do processo

    A entrada 1023 da tabela de nivel 1 aponta para a tab. de pginas de nvel 2 relativa pilha do processo

  • http://www.inf.ufes.br/~rgomes/so.htm

    Tabela de Pgina Multinvel (3)

    Quando um endereo virtual chega MMU, ela primeiro extrai o campo PT1 e o utiliza como ndice da tabela de pginas do nvel 1

    A entrada da tab. de pginas de nvel 1 aponta para a tabela de pginas do nvel 2.

    20 Sistemas Operacionais LPRM/DI/UFES

    tabela de pginas do nvel 2.

    Ento PT2 usado como ndice nesta segunda tabela para localizar a entrada correspondente pagina virtual Esta entrada indicar em qual moldura fsica encontra-se o endereo

    a ser acessado

    No exemplo anterior: Suponha que um processo utilize apenas 12 MB do seu espao de

    endereos virtuais

    A entrada 0 da tab. de nivel 1 aponta para a tab. de pginas de nvel 2 relativa ao cdigo do programa

  • http://www.inf.ufes.br/~rgomes/so.htm

    Tabela de Pgina Multinvel (4)

    21 Sistemas Operacionais LPRM/DI/UFES

    Considere o end. virtual 0x00403004 (4206596d) Qual ser o endereo fsico correspondente?

  • http://www.inf.ufes.br/~rgomes/so.htm

    Tabela de Pgina Multinvel (5)

    PT1: Entrada 1 da tabela do 1o nvel 2o bloco de 4M (4M a 8M de memria virtual)

    0000000001 0000000011 0000 0000 0100

    PT1 PT2 Deslocamento

    22 Sistemas Operacionais LPRM/DI/UFES

    PT2: Entrada 3 da tabela do 2o nvel Esta entrada indica em qual moldura encontra-se esta pgina

    O endereo fsico do primeiro byte dessa moldura somado ao deslocamento

    Supondo a pgina encontre-se na moldura 1 (4k a 8k-1), o endereo fsico correspondente ser 4096 + 4 = 4100

    OU:

    0... 00001 0000 0000 0100 = 4100d

    DeslocamentoNo da moldura

  • http://www.inf.ufes.br/~rgomes/so.htm

    Para entender as vantagens, considere o exemplo anterior (endereo virtual de 32 bits pgina de 4kB) Usando tabela de pginas tradicional:

    1 tab. de 220 entradas (1 M entradas)

    Tabela de Pgina Multinvel (6)

    23 Sistemas Operacionais LPRM/DI/UFES

    1 tab. de 220 entradas (1 M entradas)

    Usando tabela de pginas em 2 nveis 4 tab. de 210 entradas cada (1 K entradas)

    Se cada entrada da tab. de pginas ocupa 16 bits primeiro caso: 220 x 24 = 16 Mbits p/ armazenar a tabela de pg.

    segundo caso: 4 x 210 x 24 = 64 Kbits p/ armazenar a tabela de 2 nveis

  • http://www.inf.ufes.br/~rgomes/so.htm

    Tabela de Pgina Multinvel (7)

    Paginao a trs nveis Tpico de arquiteturas de processadores de 64 bits

    24 Sistemas Operacionais LPRM/DI/UFES

  • http://www.inf.ufes.br/~rgomes/so.htm

    Registro Tpico de uma Entrada na Tabela de Pginas

    25 Sistemas Operacionais LPRM/DI/UFES

    Nmero da moldura

    Presente/ausente: diz se pgina est ou no mapeada em endereo fsico

    Proteo: bits de controle de acesso pgina (rwx)

    Modificada: indica se pgina foi alterada

    Referenciada: indica se pgina foi lida

    Desabilita cache

  • http://www.inf.ufes.br/~rgomes/so.htm

    TLB Translation Lookaside Buffer (1)

    Como diminuir o nmero de referncias MP introduzido pelo mecanismo de paginao?

    Os programas tendem a fazer um grande nmero de referncias a um mesmo pequeno conjunto de pginas virtuais

    26 Sistemas Operacionais LPRM/DI/UFES

    virtuais Princpio da localidade temporal e espacial

    Soluo: equipar a MMU com uma TLB Tambm chamada de Memria Associativa

    Dispositivo de hardware implementado com um reduzido nmero de entradas

    Contm algumas entradas (linhas) da tabela de pginas do processo em execuo

  • http://www.inf.ufes.br/~rgomes/so.htm

    deslocam.

    endereo virtual

    memriasecundriaTLB

    TLB Translation Lookaside buffer (2)

    # pgina

    27 Sistemas Operacionais LPRM/DI/UFES

    memriaprincipal

    # quadro deslocam.

    tabela depginas (memria)

  • http://www.inf.ufes.br/~rgomes/so.htm

    TLB Translation Lookaside buffer (3)

    28 Sistemas Operacionais LPRM/DI/UFES

    Exemplo de TLB Loop acessando pag. 19, 20, 21 Dados principais: pag. 129, 130, 141 Pilha: 860, 861

  • http://www.inf.ufes.br/~rgomes/so.htm

    HIT Ratio (Taxa de Sucesso) (1)

    Razo de referncias memria que podem ser satisfeitas a partir da TLB

    Hit Ratio => performance

    Tempo de acesso com HIT (sucesso) memria via TLB

    29 Sistemas Operacionais LPRM/DI/UFES

    Tempo de acesso com HIT (sucesso) memria via TLB

    THit = TTLB + TMEM

    Tempo de acesso com MISS (insucesso) memria via TLB

    TMiss = TTLB + TMEM + TMEM

    Tempo mdio de acesso= hr . THit + (1-hr) . TMiss Onde hr o Hit Ratio

  • http://www.inf.ufes.br/~rgomes/so.htm

    HIT Ratio (Taxa de Sucesso) (2)

    Suponha: THit = 20ns ; TMiss= 100 ns; H.R. = 90%

    Tempo mdio de acesso=

    Tempo mdio de acesso (ns)

    0.9 x 20 + 0,1 x 100 = 28ns

    30 Sistemas Operacionais LPRM/DI/UFES

    100

    20

    10050

    Todo mapeamento feito via TLB

    Todo mapeamento feito via Tab. de pginas

    Hit Ratio (%)

    de acesso (ns)

  • http://www.inf.ufes.br/~rgomes/so.htm

    Tabela de pginas invertida (1)

    Espao de endereamento virtual pode serexageradamente grande em mquinas de 64 bits. Pginas de 4KB

    252 entradas na tabela

    31 Sistemas Operacionais LPRM/DI/UFES

    252 entradas na tabela Se cada entrada ocupa 8 B => tabela de ~30.000.000 GB

    O armazenamento da tabela torna-se vivel se amesma for invertida, isto , ter o tamanho daquantidade de molduras (memria real) e no daquantidade de pginas (memria virtual) Se memria real de 256 Mbytes , e pginas de 4 KB:

    Tem-se 65536 entradas

  • http://www.inf.ufes.br/~rgomes/so.htm

    Tabela de pginas invertida (2)

    Uma entrada por moldura de memria real

    Cada entrada na tabela informa Par: (PID, # pgina virtual) alocado naquela moldura

    Entretanto

    32 Sistemas Operacionais LPRM/DI/UFES

    Entretanto Traduo de virtual/fsico mais complicada

    Quando o processo n enderea a pgina p p no serve de ndice da tabela

    Toda a tabela deve ser pesquisada em busca de uma entrada (p,n)

    Soluo muito lenta A busca feita para toda referncia memria

  • http://www.inf.ufes.br/~rgomes/so.htm

    Tabela de pginas invertida (3)

    33 Sistemas Operacionais LPRM/DI/UFES

    frame 0

    frame 1. . .

    invertida

  • http://www.inf.ufes.br/~rgomes/so.htm

    Tabela de pginas invertida (4)

    Acelerao pode ser obtida

    TLB para pginas mais referenciadas

    Indexar a tabela por hash

    34 Sistemas Operacionais LPRM/DI/UFES

    Uma funo hash que recebe o nmero da pgina e retorna um entre N valores possveis, onde N a quantidade de molduras (memria instalada).

    Pginas com mesmo hash sero encadeadas em uma lista

    Cada entrada da tabela armazena um par(pgina/quadro)

  • http://www.inf.ufes.br/~rgomes/so.htm

    Exemplo de tabela de pginas invertida

    35 Sistemas Operacionais LPRM/DI/UFES

    Comparao de uma page table tradicional com uma page table invertida

  • http://www.inf.ufes.br/~rgomes/so.htm

    Referncias

    A. S. Tanenbaum, ''Sistemas Operacionais Modernos'', 2a. Edio, Editora Prentice-Hall, 2003. Seo 4.3

    Silberschatz A. G.; Galvin P. B.; Gagne G.; ''Fundamentos de Sistemas Silberschatz A. G.; Galvin P. B.; Gagne G.; ''Fundamentos de Sistemas Operacionais'', 6a. Edio, Editora LTC, 2004.

    Seo 9.4

    Deitel H. M.; Deitel P. J.; Choffnes D. R.; Sistemas Operacionais, 3. Edio, Editora Prentice-Hall, 2005 ??

    36 Sistemas Operacionais LPRM/DI/UFES