![Page 1: GerenciamentoGerenciamento de de memmem …simone/scminter/contaulas/12_GERM.pdf• Melhor utiliza ç ão do espa ç o de mem ó ria; rotina não utilizada nunca é carregada • Particularmente](https://reader036.vdocuments.pub/reader036/viewer/2022070619/5e269064ab73815f733bb69b/html5/thumbnails/1.jpg)
Sistemas de Computação
Gerenciamento de memóriaGerenciamento de memória
![Page 2: GerenciamentoGerenciamento de de memmem …simone/scminter/contaulas/12_GERM.pdf• Melhor utiliza ç ão do espa ç o de mem ó ria; rotina não utilizada nunca é carregada • Particularmente](https://reader036.vdocuments.pub/reader036/viewer/2022070619/5e269064ab73815f733bb69b/html5/thumbnails/2.jpg)
Sistemas de Computação
Localização de processos
• Um programa fica armazenado em disco como um arquivo executável binário e tem que ser colocado na memória para começar a ser executado
• Os processos podem ser movidos entre a memória e o disco durante sua execução
• Fila de entrada – coleção de processos no disco que estão esperando para serem colocados na memória para poderem ser executados
• Processos podem ser carregados em qualquer endereço da memória
![Page 3: GerenciamentoGerenciamento de de memmem …simone/scminter/contaulas/12_GERM.pdf• Melhor utiliza ç ão do espa ç o de mem ó ria; rotina não utilizada nunca é carregada • Particularmente](https://reader036.vdocuments.pub/reader036/viewer/2022070619/5e269064ab73815f733bb69b/html5/thumbnails/3.jpg)
Sistemas de Computação
Mapeamento entre espaços de endereçamento
• Endereços no programa fonte são simbólicos
• Compiladores geram endereços relocáveis para os endereços simbólicos
• O linker ou loader irão transformar este endereços relocáveis em endereços absolutos
![Page 4: GerenciamentoGerenciamento de de memmem …simone/scminter/contaulas/12_GERM.pdf• Melhor utiliza ç ão do espa ç o de mem ó ria; rotina não utilizada nunca é carregada • Particularmente](https://reader036.vdocuments.pub/reader036/viewer/2022070619/5e269064ab73815f733bb69b/html5/thumbnails/4.jpg)
Sistemas de Computação
Definição de endereços para instruções e dados
• Tempo de compilação: Ocorre quando o endereço onde o processo irá ser carregado é conhecido. Um código absoluto com os endereços é gerado e caso o endereço mude, o programa tem que ser recompilado
• Tempo de carga: Caso o endereço não seja conhecido, o compilador tem que gerar código relócavel
• Tempo de execução: Caso um processo possa ser movido de um segmento de memória para outro durante a sua execução
![Page 5: GerenciamentoGerenciamento de de memmem …simone/scminter/contaulas/12_GERM.pdf• Melhor utiliza ç ão do espa ç o de mem ó ria; rotina não utilizada nunca é carregada • Particularmente](https://reader036.vdocuments.pub/reader036/viewer/2022070619/5e269064ab73815f733bb69b/html5/thumbnails/5.jpg)
Sistemas de Computação
Processamento do programa do usuário
![Page 6: GerenciamentoGerenciamento de de memmem …simone/scminter/contaulas/12_GERM.pdf• Melhor utiliza ç ão do espa ç o de mem ó ria; rotina não utilizada nunca é carregada • Particularmente](https://reader036.vdocuments.pub/reader036/viewer/2022070619/5e269064ab73815f733bb69b/html5/thumbnails/6.jpg)
Sistemas de Computação
Espaço lógico versus físico
• O conceito de espaço de endereçamento lógico ligado a um espaço de endereçamento físico é o ponto principal nos mecanismos de gerenciamento de memória
– Endereço lógico– gerado pela CPU: também conhecido como endereço virtual
– Endereço físico – endereço recebido pela memória
• Endereços lógicos (virtuais) diferem dos endereços físicos em tempo de execução
![Page 7: GerenciamentoGerenciamento de de memmem …simone/scminter/contaulas/12_GERM.pdf• Melhor utiliza ç ão do espa ç o de mem ó ria; rotina não utilizada nunca é carregada • Particularmente](https://reader036.vdocuments.pub/reader036/viewer/2022070619/5e269064ab73815f733bb69b/html5/thumbnails/7.jpg)
Sistemas de Computação
Unidade de gerenciamento de memória
• Dispositivo de hardware que mapeia endereços virtuais para físicos
• Um valor base armazenado no registrador de relocação é adicionado a cada endereço gerado pelo processo
• O programa do usuário manipula endereços lógicos; nunca vê os endereços reais
• A localização final de uma referência à memóriasó é definida quando a referência é executada.
![Page 8: GerenciamentoGerenciamento de de memmem …simone/scminter/contaulas/12_GERM.pdf• Melhor utiliza ç ão do espa ç o de mem ó ria; rotina não utilizada nunca é carregada • Particularmente](https://reader036.vdocuments.pub/reader036/viewer/2022070619/5e269064ab73815f733bb69b/html5/thumbnails/8.jpg)
Sistemas de Computação
Relocação dinâmica utilizando registrador de relocação
![Page 9: GerenciamentoGerenciamento de de memmem …simone/scminter/contaulas/12_GERM.pdf• Melhor utiliza ç ão do espa ç o de mem ó ria; rotina não utilizada nunca é carregada • Particularmente](https://reader036.vdocuments.pub/reader036/viewer/2022070619/5e269064ab73815f733bb69b/html5/thumbnails/9.jpg)
Sistemas de Computação
Carregamento dinâmico
• Rotina só é carregada quando ativada
• Melhor utilização do espaço de memória; rotina não utilizada nunca é carregada
• Particularmente útil quando grande quantidade de código é utilizado para casos que ocorrem raramente
• Não precisa de suporte do sistema operacional, mas S.O pode prover rotinas para que o programador possa realizá-lo
![Page 10: GerenciamentoGerenciamento de de memmem …simone/scminter/contaulas/12_GERM.pdf• Melhor utiliza ç ão do espa ç o de mem ó ria; rotina não utilizada nunca é carregada • Particularmente](https://reader036.vdocuments.pub/reader036/viewer/2022070619/5e269064ab73815f733bb69b/html5/thumbnails/10.jpg)
Sistemas de Computação
Ligação dinâmica
• A ligação é adiada até o tempo de execução
• Utilizada para otimizar uso de biblioteca de rotinas do sistema
• Pedaço de código denominado stub é utilizado para localizar a rotina necessária residente na memória
• O stub substitui o seu próprio código pelo endereço da rotina e a executa
• O sistema operacional tem que verificar se a rotina já está no espaço de endereçamento de algum processo e se pode ser compartilhada
![Page 11: GerenciamentoGerenciamento de de memmem …simone/scminter/contaulas/12_GERM.pdf• Melhor utiliza ç ão do espa ç o de mem ó ria; rotina não utilizada nunca é carregada • Particularmente](https://reader036.vdocuments.pub/reader036/viewer/2022070619/5e269064ab73815f733bb69b/html5/thumbnails/11.jpg)
Sistemas de Computação
Overlays
• Necessário quando o processo é maior que a quantidade de memória que pode ser alocada para ele
• Mantém na memória somente as instruções e dados necessários em um dado momento
• Implementado pelo usuário, não precisa de suporte do sistema operacional
• Usuário programa leitura de arquivos do disco para a memória e força o programa a ir para a posição de memória
• Complexo de utilizar
![Page 12: GerenciamentoGerenciamento de de memmem …simone/scminter/contaulas/12_GERM.pdf• Melhor utiliza ç ão do espa ç o de mem ó ria; rotina não utilizada nunca é carregada • Particularmente](https://reader036.vdocuments.pub/reader036/viewer/2022070619/5e269064ab73815f733bb69b/html5/thumbnails/12.jpg)
Sistemas de Computação
Overlays para um montador em doispassos
![Page 13: GerenciamentoGerenciamento de de memmem …simone/scminter/contaulas/12_GERM.pdf• Melhor utiliza ç ão do espa ç o de mem ó ria; rotina não utilizada nunca é carregada • Particularmente](https://reader036.vdocuments.pub/reader036/viewer/2022070619/5e269064ab73815f733bb69b/html5/thumbnails/13.jpg)
Sistemas de Computação
Swapping
• Um processo pode ser trocado ( swapped) temporariamente da memória para um outro dispositivo de apoio (disco), e trazido de volta para a memória para continuar a sua execução
• Roll out, roll in – variante do swapping utilizada para algoritmos de escalonamento baseados em prioridade; processo com menos prioridade vai para disco para processo de maior prioridade ser carregado e executado
• Caso a definição dos endereços físicos seja feita em tempo de compilação ou carga, o processo que foi para o disco tem que voltar para o mesmo lugar na memória
![Page 14: GerenciamentoGerenciamento de de memmem …simone/scminter/contaulas/12_GERM.pdf• Melhor utiliza ç ão do espa ç o de mem ó ria; rotina não utilizada nunca é carregada • Particularmente](https://reader036.vdocuments.pub/reader036/viewer/2022070619/5e269064ab73815f733bb69b/html5/thumbnails/14.jpg)
Sistemas de Computação
Swapping
• Caso a definição dos endereços físicos seja feita em tempo de execução, o processo que foi para o disco pode voltar para lugar diferente na memória
• O dispositivo de apoio tem que ser um disco rápido com capacidade suficiente para acomodar cópias de todas as imagens de programas de todos usuários e deve prover acesso direto e estas imagens
• Fila de prontos consiste dos processos que estão no dispositivo de apoio e na memória prontos para serem executados
• O dispatcher é acionado e no caso do processo selecionado não estar na memória e não existir espaço livre na memória, um processo é tirado da memória e colocado no disco
![Page 15: GerenciamentoGerenciamento de de memmem …simone/scminter/contaulas/12_GERM.pdf• Melhor utiliza ç ão do espa ç o de mem ó ria; rotina não utilizada nunca é carregada • Particularmente](https://reader036.vdocuments.pub/reader036/viewer/2022070619/5e269064ab73815f733bb69b/html5/thumbnails/15.jpg)
Sistemas de Computação
Esquema de swapping
![Page 16: GerenciamentoGerenciamento de de memmem …simone/scminter/contaulas/12_GERM.pdf• Melhor utiliza ç ão do espa ç o de mem ó ria; rotina não utilizada nunca é carregada • Particularmente](https://reader036.vdocuments.pub/reader036/viewer/2022070619/5e269064ab73815f733bb69b/html5/thumbnails/16.jpg)
Sistemas de Computação
Swapping
• A troca de contexto em um sistema com swappingé alta
– Ex. 1M bytes devem ser transferidos para um disco que tem taxa de transferência de 5MB/s e tempo de latência médio igual a 8 ms. Tempo total = 208 milisegundos, time slice deve ser substancialmente maior que 416 milisegundos
• A maior parte do tempo é utilizada para realizar a transferência entre a memória e dispositivo de apoio, então deve se fazer a transferência somente das posições de memória que estão sendo realmente utilizadas pelo processo
![Page 17: GerenciamentoGerenciamento de de memmem …simone/scminter/contaulas/12_GERM.pdf• Melhor utiliza ç ão do espa ç o de mem ó ria; rotina não utilizada nunca é carregada • Particularmente](https://reader036.vdocuments.pub/reader036/viewer/2022070619/5e269064ab73815f733bb69b/html5/thumbnails/17.jpg)
Sistemas de Computação
Swapping
• Processos que utilizam alocação dinâmica de memória devem informar ao sistema operacional as suas necessidades de memória através de chamadas ao sistema (request memory e release memory)
• Caso um processo vá para o disco e exista uma operação de E/S pendente para ele, podem ocorrer problemas, porque o dispositivo de E/S pode escrever na área de um novo processo que foi colocado no lugar dele
![Page 18: GerenciamentoGerenciamento de de memmem …simone/scminter/contaulas/12_GERM.pdf• Melhor utiliza ç ão do espa ç o de mem ó ria; rotina não utilizada nunca é carregada • Particularmente](https://reader036.vdocuments.pub/reader036/viewer/2022070619/5e269064ab73815f733bb69b/html5/thumbnails/18.jpg)
Sistemas de Computação
Swapping
• Soluções: não permitir swapping para processos com E/S pendente ou só permitir acesso pelo dispositivo de E/S a buffer do sistema operacional, que atualiza buffer do processo quando ele estiver na memória
• Mecanismo pouco utilizado e com algumas modificações
• Unix inicia swapping quando sistema muito carregado
– muitos processos no sistema– limite de memória livre é atingido
![Page 19: GerenciamentoGerenciamento de de memmem …simone/scminter/contaulas/12_GERM.pdf• Melhor utiliza ç ão do espa ç o de mem ó ria; rotina não utilizada nunca é carregada • Particularmente](https://reader036.vdocuments.pub/reader036/viewer/2022070619/5e269064ab73815f733bb69b/html5/thumbnails/19.jpg)
Sistemas de Computação
Alocação contígua
• Geralmente a memória principal é dividida em duas partições:
– Sistema operacional colocado nos endereços de memória mais baixos (memória baixa) junto com vetor de interrupções
– Processos do usuário ficam na memória mais alta
• Alocação contígua da memória – O sistema operacional tem que ser protegido do acesso dos
processos do usuário, os quais devem ser protegidos de acesso entre eles
– O registrador de relocação contém o valor do menor endereço físico e o registrador de limite contém a faixa de endereçamento lógico - cada endereço lógico tem que ser menor que o registrador limite
![Page 20: GerenciamentoGerenciamento de de memmem …simone/scminter/contaulas/12_GERM.pdf• Melhor utiliza ç ão do espa ç o de mem ó ria; rotina não utilizada nunca é carregada • Particularmente](https://reader036.vdocuments.pub/reader036/viewer/2022070619/5e269064ab73815f733bb69b/html5/thumbnails/20.jpg)
Sistemas de Computação
Suporte de hardware para registradoreslimite e de relocação
![Page 21: GerenciamentoGerenciamento de de memmem …simone/scminter/contaulas/12_GERM.pdf• Melhor utiliza ç ão do espa ç o de mem ó ria; rotina não utilizada nunca é carregada • Particularmente](https://reader036.vdocuments.pub/reader036/viewer/2022070619/5e269064ab73815f733bb69b/html5/thumbnails/21.jpg)
Sistemas de Computação
Múltiplas partições
• Alocação de múltiplas partições– Hole (buracos)– bloco de memória disponível ; buracos de vários
tamanhos ficam espalhados pela memória– Quando um processo chega no sistema, o sistema procura por um
buraco que tenha uma quantidade de memória livre suficiente para acomodar o processo
– O sistema operacional mantém informações sobre:• partições alocadas • partições livres (buraco)
![Page 22: GerenciamentoGerenciamento de de memmem …simone/scminter/contaulas/12_GERM.pdf• Melhor utiliza ç ão do espa ç o de mem ó ria; rotina não utilizada nunca é carregada • Particularmente](https://reader036.vdocuments.pub/reader036/viewer/2022070619/5e269064ab73815f733bb69b/html5/thumbnails/22.jpg)
Sistemas de Computação
Múltiplas partições
OS
process 5
process 8
process 2
OS
process 5
process 2
OS
process 5
process 2
OS
process 5
process 9
process 2
process 9
process 10
![Page 23: GerenciamentoGerenciamento de de memmem …simone/scminter/contaulas/12_GERM.pdf• Melhor utiliza ç ão do espa ç o de mem ó ria; rotina não utilizada nunca é carregada • Particularmente](https://reader036.vdocuments.pub/reader036/viewer/2022070619/5e269064ab73815f733bb69b/html5/thumbnails/23.jpg)
Sistemas de Computação
Alocação dinâmica de memória
• Como satisfazer um pedido de tamanho n tendo uma lista de buracos livres ?
– First-fit: Aloca o primeiro buraco da lista que seja grande o suficiente para o processo
– Best-fit: Aloca o menor buraco que seja grande o suficiente para o processo; precisa procurar a lista toda, caso não esteja ordenada. Produz o menor buraco
– Worst-fit: Aloca o maior buraco possível; precisa procurar toda a lista Produz o maior buraco
First-fit e best-fit são melhores que worst-fit em termos de velocidade e utilização de armazenamento
![Page 24: GerenciamentoGerenciamento de de memmem …simone/scminter/contaulas/12_GERM.pdf• Melhor utiliza ç ão do espa ç o de mem ó ria; rotina não utilizada nunca é carregada • Particularmente](https://reader036.vdocuments.pub/reader036/viewer/2022070619/5e269064ab73815f733bb69b/html5/thumbnails/24.jpg)
Sistemas de Computação
Fragmentação
• Fragmentação externa – existe a quantidade de memória que o processo precisa, mas não écontígua
• Fragmentação interna – memória alocada é um pouco maior que a requerida pelo processo; esta diferença é memória interna a uma partição de tamanho fixo que não está sendo utilizada
![Page 25: GerenciamentoGerenciamento de de memmem …simone/scminter/contaulas/12_GERM.pdf• Melhor utiliza ç ão do espa ç o de mem ó ria; rotina não utilizada nunca é carregada • Particularmente](https://reader036.vdocuments.pub/reader036/viewer/2022070619/5e269064ab73815f733bb69b/html5/thumbnails/25.jpg)
Sistemas de Computação
Fragmentação
• Redução de fragmentação externa por compactação
– Arruma-se o conteúdo da memória de modo a colocar toda a memória livre junta em um único bloco
– Compactação só é possível caso a relocação seja dinâmica e seja realizada em tempo de execução
![Page 26: GerenciamentoGerenciamento de de memmem …simone/scminter/contaulas/12_GERM.pdf• Melhor utiliza ç ão do espa ç o de mem ó ria; rotina não utilizada nunca é carregada • Particularmente](https://reader036.vdocuments.pub/reader036/viewer/2022070619/5e269064ab73815f733bb69b/html5/thumbnails/26.jpg)
Sistemas de Computação
Paginação
• Gerenciamento de memória que permite que o espaço de endereçamento físico não precise ser contíguo
• Divide a memória física em blocos de tamanho fixo denominados frames (tamanho é em potência de 2, entre 512 bytes e 8192 bytes).
• Divide memória lógica em blocos de mesmo tamanho denominadas páginas.
• Gerencia os frames livres
![Page 27: GerenciamentoGerenciamento de de memmem …simone/scminter/contaulas/12_GERM.pdf• Melhor utiliza ç ão do espa ç o de mem ó ria; rotina não utilizada nunca é carregada • Particularmente](https://reader036.vdocuments.pub/reader036/viewer/2022070619/5e269064ab73815f733bb69b/html5/thumbnails/27.jpg)
Sistemas de Computação
Paginação
• Para executar um programa de tamanho igual a npáginas, precisa-se encontrar n frames livres e carregar o programa nestes frames
• Possui uma tabela de páginas para traduzir o endereço lógico em físico
• Não ocorre fragmentação externa, mas pode ocorrer interna
![Page 28: GerenciamentoGerenciamento de de memmem …simone/scminter/contaulas/12_GERM.pdf• Melhor utiliza ç ão do espa ç o de mem ó ria; rotina não utilizada nunca é carregada • Particularmente](https://reader036.vdocuments.pub/reader036/viewer/2022070619/5e269064ab73815f733bb69b/html5/thumbnails/28.jpg)
Sistemas de Computação
Esquema de tradução de endereço
• O endereço gerado pela CPU é dividido em duas partes:
– Número de página (p) – utilizada como um índice para a tabela de páginas que contém o endereço base de cada página na memória física
– Deslocamento de página (d) – combinada com o endereço base da página para definir o endereço da memória física que será enviado para a unidade de memória
![Page 29: GerenciamentoGerenciamento de de memmem …simone/scminter/contaulas/12_GERM.pdf• Melhor utiliza ç ão do espa ç o de mem ó ria; rotina não utilizada nunca é carregada • Particularmente](https://reader036.vdocuments.pub/reader036/viewer/2022070619/5e269064ab73815f733bb69b/html5/thumbnails/29.jpg)
Sistemas de Computação
Arquitetura para tradução de endereços
![Page 30: GerenciamentoGerenciamento de de memmem …simone/scminter/contaulas/12_GERM.pdf• Melhor utiliza ç ão do espa ç o de mem ó ria; rotina não utilizada nunca é carregada • Particularmente](https://reader036.vdocuments.pub/reader036/viewer/2022070619/5e269064ab73815f733bb69b/html5/thumbnails/30.jpg)
Sistemas de Computação
Exemplo de paginação
![Page 31: GerenciamentoGerenciamento de de memmem …simone/scminter/contaulas/12_GERM.pdf• Melhor utiliza ç ão do espa ç o de mem ó ria; rotina não utilizada nunca é carregada • Particularmente](https://reader036.vdocuments.pub/reader036/viewer/2022070619/5e269064ab73815f733bb69b/html5/thumbnails/31.jpg)
Sistemas de Computação
Exemplo de paginação
![Page 32: GerenciamentoGerenciamento de de memmem …simone/scminter/contaulas/12_GERM.pdf• Melhor utiliza ç ão do espa ç o de mem ó ria; rotina não utilizada nunca é carregada • Particularmente](https://reader036.vdocuments.pub/reader036/viewer/2022070619/5e269064ab73815f733bb69b/html5/thumbnails/32.jpg)
Sistemas de Computação
Frames livres
Antes da alocação Depois da alocação
![Page 33: GerenciamentoGerenciamento de de memmem …simone/scminter/contaulas/12_GERM.pdf• Melhor utiliza ç ão do espa ç o de mem ó ria; rotina não utilizada nunca é carregada • Particularmente](https://reader036.vdocuments.pub/reader036/viewer/2022070619/5e269064ab73815f733bb69b/html5/thumbnails/33.jpg)
Sistemas de Computação
Implementação da tabela de páginas
• Tabela de páginas é mantida na memória
• Registrador base da tabela de páginas (PTBR) aponta para a tabela de páginas
• Registrador de tamanho de tabela de página (PRLR) indica o tamanho da tabela
• Neste esquema, cada acesso à memória para obter dado ou instrução requer dois acessos à memória: um para acessar a tabela de páginas e outro para obter a instrução ou dado
![Page 34: GerenciamentoGerenciamento de de memmem …simone/scminter/contaulas/12_GERM.pdf• Melhor utiliza ç ão do espa ç o de mem ó ria; rotina não utilizada nunca é carregada • Particularmente](https://reader036.vdocuments.pub/reader036/viewer/2022070619/5e269064ab73815f733bb69b/html5/thumbnails/34.jpg)
Sistemas de Computação
Implementação da tabela de páginas
• O problema de acessar a memória duas vezes pode ser resolvido utilizando-se uma memória cache denominada translation look-aside buffers (TLBs)
![Page 35: GerenciamentoGerenciamento de de memmem …simone/scminter/contaulas/12_GERM.pdf• Melhor utiliza ç ão do espa ç o de mem ó ria; rotina não utilizada nunca é carregada • Particularmente](https://reader036.vdocuments.pub/reader036/viewer/2022070619/5e269064ab73815f733bb69b/html5/thumbnails/35.jpg)
Sistemas de Computação
Hardware de paginação com TLB
![Page 36: GerenciamentoGerenciamento de de memmem …simone/scminter/contaulas/12_GERM.pdf• Melhor utiliza ç ão do espa ç o de mem ó ria; rotina não utilizada nunca é carregada • Particularmente](https://reader036.vdocuments.pub/reader036/viewer/2022070619/5e269064ab73815f733bb69b/html5/thumbnails/36.jpg)
Sistemas de Computação
Tempo efetivo de acesso
• Procura na TLB = unidades de tempo
• Assuma que o ciclo de memória é 1 microsegundo
• Taxa de acerto – percentagem de vezes que o número de página é encontrado na TLB (depende do tamanho da TLB)
• Taxa de acerto =
• Tempo efetivo de acesso (EAT)
EAT = (1 + ) + (2 + )(1 – )
= 2 + –
![Page 37: GerenciamentoGerenciamento de de memmem …simone/scminter/contaulas/12_GERM.pdf• Melhor utiliza ç ão do espa ç o de mem ó ria; rotina não utilizada nunca é carregada • Particularmente](https://reader036.vdocuments.pub/reader036/viewer/2022070619/5e269064ab73815f733bb69b/html5/thumbnails/37.jpg)
Sistemas de Computação
Proteção de memória
• Proteção de memória é implementada utilizando-se um bit de proteção para cada frame
• Bit válido-inválido é adicionado a cada entrada da tabela de páginas:
– “válido” indica que a página associada pode estar no espaço de endereçamento lógico do processo e portanto é uma página legal
– “inválido” indica que a página não pode estar no espaço de endereçamento lógico do processo
![Page 38: GerenciamentoGerenciamento de de memmem …simone/scminter/contaulas/12_GERM.pdf• Melhor utiliza ç ão do espa ç o de mem ó ria; rotina não utilizada nunca é carregada • Particularmente](https://reader036.vdocuments.pub/reader036/viewer/2022070619/5e269064ab73815f733bb69b/html5/thumbnails/38.jpg)
Sistemas de Computação
Bit válido (v) ou inválido (i) na tabela de páginas
![Page 39: GerenciamentoGerenciamento de de memmem …simone/scminter/contaulas/12_GERM.pdf• Melhor utiliza ç ão do espa ç o de mem ó ria; rotina não utilizada nunca é carregada • Particularmente](https://reader036.vdocuments.pub/reader036/viewer/2022070619/5e269064ab73815f733bb69b/html5/thumbnails/39.jpg)
Sistemas de Computação
Estruturação da tabela de páginas
• Paginação hierárquica
• Paginação por hash
• Tabela de página invertida
![Page 40: GerenciamentoGerenciamento de de memmem …simone/scminter/contaulas/12_GERM.pdf• Melhor utiliza ç ão do espa ç o de mem ó ria; rotina não utilizada nunca é carregada • Particularmente](https://reader036.vdocuments.pub/reader036/viewer/2022070619/5e269064ab73815f733bb69b/html5/thumbnails/40.jpg)
Sistemas de Computação
Tabelas de páginas hierárquicas
• Divide o espaço lógico de endereçamento em múltiplas tabelas de páginas
• Uma opção simples é dividir a tabela de ´páginas em dois níveis
![Page 41: GerenciamentoGerenciamento de de memmem …simone/scminter/contaulas/12_GERM.pdf• Melhor utiliza ç ão do espa ç o de mem ó ria; rotina não utilizada nunca é carregada • Particularmente](https://reader036.vdocuments.pub/reader036/viewer/2022070619/5e269064ab73815f733bb69b/html5/thumbnails/41.jpg)
Sistemas de Computação
Exemplo de paginação em dois níveis
• Um endereço lógico (em uma máquina de 32 bits com tamanho de página de 4K) é dividida em: – um número de pagina consistindo de 20 bits– um deslocamento de página consistindo de 12
bits.
• Com o tabela de página é paginada, o número de página é dividido em: – um número de página de 10 bits – um deslocamento de página de 10 bits
![Page 42: GerenciamentoGerenciamento de de memmem …simone/scminter/contaulas/12_GERM.pdf• Melhor utiliza ç ão do espa ç o de mem ó ria; rotina não utilizada nunca é carregada • Particularmente](https://reader036.vdocuments.pub/reader036/viewer/2022070619/5e269064ab73815f733bb69b/html5/thumbnails/42.jpg)
Sistemas de Computação
Exemplo de paginação em dois níveis
• Formato do endereço lógico:
onde p1 é um índice para a tabela de página mais externa e p2 é o deslocamento na página da tabela mais externa
número de página deslocamento de página
p1 p2 d
10 10 12
![Page 43: GerenciamentoGerenciamento de de memmem …simone/scminter/contaulas/12_GERM.pdf• Melhor utiliza ç ão do espa ç o de mem ó ria; rotina não utilizada nunca é carregada • Particularmente](https://reader036.vdocuments.pub/reader036/viewer/2022070619/5e269064ab73815f733bb69b/html5/thumbnails/43.jpg)
Sistemas de Computação
Esquema de tabela de páginas em dois níveis
![Page 44: GerenciamentoGerenciamento de de memmem …simone/scminter/contaulas/12_GERM.pdf• Melhor utiliza ç ão do espa ç o de mem ó ria; rotina não utilizada nunca é carregada • Particularmente](https://reader036.vdocuments.pub/reader036/viewer/2022070619/5e269064ab73815f733bb69b/html5/thumbnails/44.jpg)
Sistemas de Computação
Esquema de tradução de endereços
![Page 45: GerenciamentoGerenciamento de de memmem …simone/scminter/contaulas/12_GERM.pdf• Melhor utiliza ç ão do espa ç o de mem ó ria; rotina não utilizada nunca é carregada • Particularmente](https://reader036.vdocuments.pub/reader036/viewer/2022070619/5e269064ab73815f733bb69b/html5/thumbnails/45.jpg)
Sistemas de Computação
Tabelas de páginas com hash
• Comum em espaço de endereçamento > 32 bits.
• O número da página virtual é mapeado por hashing na tabela de páginas.
• A entrada da tabela de páginas pode conter uma cadeia de elementos que estão mapeados na mesma entrada
• ´Procura-se nesta cadeia pelo número da página virtual desejada e caso ela seja encontrada, obtém-se o frame físico correspondente
![Page 46: GerenciamentoGerenciamento de de memmem …simone/scminter/contaulas/12_GERM.pdf• Melhor utiliza ç ão do espa ç o de mem ó ria; rotina não utilizada nunca é carregada • Particularmente](https://reader036.vdocuments.pub/reader036/viewer/2022070619/5e269064ab73815f733bb69b/html5/thumbnails/46.jpg)
Sistemas de Computação
Tabela de páginas com hashing
![Page 47: GerenciamentoGerenciamento de de memmem …simone/scminter/contaulas/12_GERM.pdf• Melhor utiliza ç ão do espa ç o de mem ó ria; rotina não utilizada nunca é carregada • Particularmente](https://reader036.vdocuments.pub/reader036/viewer/2022070619/5e269064ab73815f733bb69b/html5/thumbnails/47.jpg)
Sistemas de Computação
Tabela de páginas invertida
• Uma entrada para cada página real da memória
• Cada entrada contém, para um determinado endereço real, o endereço virtual da página que está ali armazenada, com informações do processo que a possui
• Diminui a memória necessária para armazenar cada tabela de páginas, mas aumenta o tempo necessário para a procura na tabela quando ocorre uma referência de página
• Utiliza-se tabelas hash para limitar a procura para uma ou poucas entradas na tabela de páginas
![Page 48: GerenciamentoGerenciamento de de memmem …simone/scminter/contaulas/12_GERM.pdf• Melhor utiliza ç ão do espa ç o de mem ó ria; rotina não utilizada nunca é carregada • Particularmente](https://reader036.vdocuments.pub/reader036/viewer/2022070619/5e269064ab73815f733bb69b/html5/thumbnails/48.jpg)
Sistemas de Computação
Arquitetura de tabela de páginas invertida
![Page 49: GerenciamentoGerenciamento de de memmem …simone/scminter/contaulas/12_GERM.pdf• Melhor utiliza ç ão do espa ç o de mem ó ria; rotina não utilizada nunca é carregada • Particularmente](https://reader036.vdocuments.pub/reader036/viewer/2022070619/5e269064ab73815f733bb69b/html5/thumbnails/49.jpg)
Sistemas de Computação
Páginas compartilhadas
• Código compartilhado– Uma cópia de código somente-leitura (reentrante) é compartilhada
entre processos (editores de texto, compiladores, sistemas de janelas)
– Código compartilhado deve aparecer no mesmo local no espaço de endereçamento lógico de todos os processos
• Códigos e dados privados– Cada processo mantém uma cópia separada do código e dos dados – As páginas para o código e dados privados podem aparecer em
qualquer local do espaço de endereçamento lógico
![Page 50: GerenciamentoGerenciamento de de memmem …simone/scminter/contaulas/12_GERM.pdf• Melhor utiliza ç ão do espa ç o de mem ó ria; rotina não utilizada nunca é carregada • Particularmente](https://reader036.vdocuments.pub/reader036/viewer/2022070619/5e269064ab73815f733bb69b/html5/thumbnails/50.jpg)
Sistemas de Computação
Exemplo de páginas compartilhadas
![Page 51: GerenciamentoGerenciamento de de memmem …simone/scminter/contaulas/12_GERM.pdf• Melhor utiliza ç ão do espa ç o de mem ó ria; rotina não utilizada nunca é carregada • Particularmente](https://reader036.vdocuments.pub/reader036/viewer/2022070619/5e269064ab73815f733bb69b/html5/thumbnails/51.jpg)
Sistemas de Computação
Segmentação
• Esquema de gerenciamento de memória que suporta uma visão da memória física mais próxima à do usuário
• Um programa é uma coleção de segmentos. Um segmento é uma unidade lógica, tal como um programa principal, procedimento, método, objeto, variáveis locais e globais, blocos comuns, pilha, tabela de símbolos, arrays
![Page 52: GerenciamentoGerenciamento de de memmem …simone/scminter/contaulas/12_GERM.pdf• Melhor utiliza ç ão do espa ç o de mem ó ria; rotina não utilizada nunca é carregada • Particularmente](https://reader036.vdocuments.pub/reader036/viewer/2022070619/5e269064ab73815f733bb69b/html5/thumbnails/52.jpg)
Sistemas de Computação
Visão do usuário de um programa
![Page 53: GerenciamentoGerenciamento de de memmem …simone/scminter/contaulas/12_GERM.pdf• Melhor utiliza ç ão do espa ç o de mem ó ria; rotina não utilizada nunca é carregada • Particularmente](https://reader036.vdocuments.pub/reader036/viewer/2022070619/5e269064ab73815f733bb69b/html5/thumbnails/53.jpg)
Sistemas de Computação
Visão lógica da segmentação
1
3
2
4
1
4
2
3
espaço do usuário espaço de memória física
![Page 54: GerenciamentoGerenciamento de de memmem …simone/scminter/contaulas/12_GERM.pdf• Melhor utiliza ç ão do espa ç o de mem ó ria; rotina não utilizada nunca é carregada • Particularmente](https://reader036.vdocuments.pub/reader036/viewer/2022070619/5e269064ab73815f733bb69b/html5/thumbnails/54.jpg)
Sistemas de Computação
Arquitetura de segmentação
• Um endereço lógico consiste da tupla: <número-segmento, deslocamento>
• Tabela de segmentos – mapeia endereços físicos de duas dimensões
• Cada entrada na tabela possui:– base – contém o endereço físico inicial onde o segmento reside na
memória – limite – especifica o tamanho do segmento
![Page 55: GerenciamentoGerenciamento de de memmem …simone/scminter/contaulas/12_GERM.pdf• Melhor utiliza ç ão do espa ç o de mem ó ria; rotina não utilizada nunca é carregada • Particularmente](https://reader036.vdocuments.pub/reader036/viewer/2022070619/5e269064ab73815f733bb69b/html5/thumbnails/55.jpg)
Sistemas de Computação
Arquitetura de segmentação
• Registrador base de segmento de tabela (STBR)aponta para a localização do segmento na memória
• Registrador de tamanho do segmento da tabela (STLR) indica o tamanho do segmento
![Page 56: GerenciamentoGerenciamento de de memmem …simone/scminter/contaulas/12_GERM.pdf• Melhor utiliza ç ão do espa ç o de mem ó ria; rotina não utilizada nunca é carregada • Particularmente](https://reader036.vdocuments.pub/reader036/viewer/2022070619/5e269064ab73815f733bb69b/html5/thumbnails/56.jpg)
Sistemas de Computação
Arquitetura de segmentação
• Relocação– dinâmica– realizada por tabela de segmentação
• Compartilhamento– segmentos compartilhados– mesmo número de segmento
• Alocação– first fit/best fit– fragmentação externa
![Page 57: GerenciamentoGerenciamento de de memmem …simone/scminter/contaulas/12_GERM.pdf• Melhor utiliza ç ão do espa ç o de mem ó ria; rotina não utilizada nunca é carregada • Particularmente](https://reader036.vdocuments.pub/reader036/viewer/2022070619/5e269064ab73815f733bb69b/html5/thumbnails/57.jpg)
Sistemas de Computação
Arquitetura de segmentação
• Proteção é fornecida com associação a cada entrada da tabela de segmentos das seguintes informações:
– bit de validação = 0 segmento ilegal– privilégios read/write/execute
• Bits de proteção são associadas com segmentos; compartilhamento de código ocorre no nível de segmento
• Como os segmentos variam em tamanho, a alocação de memória é um problema de alocação dinâmica de memória
![Page 58: GerenciamentoGerenciamento de de memmem …simone/scminter/contaulas/12_GERM.pdf• Melhor utiliza ç ão do espa ç o de mem ó ria; rotina não utilizada nunca é carregada • Particularmente](https://reader036.vdocuments.pub/reader036/viewer/2022070619/5e269064ab73815f733bb69b/html5/thumbnails/58.jpg)
Sistemas de Computação
Hardware para segmentação
![Page 59: GerenciamentoGerenciamento de de memmem …simone/scminter/contaulas/12_GERM.pdf• Melhor utiliza ç ão do espa ç o de mem ó ria; rotina não utilizada nunca é carregada • Particularmente](https://reader036.vdocuments.pub/reader036/viewer/2022070619/5e269064ab73815f733bb69b/html5/thumbnails/59.jpg)
Sistemas de Computação
Exemplo de segmentação
![Page 60: GerenciamentoGerenciamento de de memmem …simone/scminter/contaulas/12_GERM.pdf• Melhor utiliza ç ão do espa ç o de mem ó ria; rotina não utilizada nunca é carregada • Particularmente](https://reader036.vdocuments.pub/reader036/viewer/2022070619/5e269064ab73815f733bb69b/html5/thumbnails/60.jpg)
Sistemas de Computação
Compartilhamento de segmentos
![Page 61: GerenciamentoGerenciamento de de memmem …simone/scminter/contaulas/12_GERM.pdf• Melhor utiliza ç ão do espa ç o de mem ó ria; rotina não utilizada nunca é carregada • Particularmente](https://reader036.vdocuments.pub/reader036/viewer/2022070619/5e269064ab73815f733bb69b/html5/thumbnails/61.jpg)
Sistemas de Computação
Tradução de endereços no Intel 30386