Your SlideShare is downloading. ×
0
Sistemas Operacionais I
Gerência de Memória: Memória Principal
Prof. Alexandre Duarte : http://alexandrend.com
Centro de I...
Objetivos
 Fornecer uma descriç ão detalhada sobre
várias formas de organizar o hardware de
memó ria
 Discutir técnicas ...
Antecedentes
 Os programas precisam ser trazidos para a memó ria principal para
poderem ser executados (criaç ão de um pr...
Registradores de base e limite
 Um par de registradores (base e limite)
definem um espaç o de endereç amento ló gico
Vinculando instruções e dados à memória
 Tempo de compilaç ão: Se a localizaç ão de
memó ria for conhecida a priori, o co...
Etapas do processamento de um programa
do usuário
Endereçamento Lógico x Físico
 O conceito de espaç o de endereç amento
ló gico, que é vinculado a um espaç o de
endereç a...
Unidade de Gerência de Memória (MMU)
 Dispositivo de hardware que mapeia um
endereç o virtual em um endereç o físico
 Na...
Uso do registrador de relocação
Carregamento dinâmico
 Uma rotina não é carregada até ser invocada
 Melhor utilizaç ão do espaç o de memó ria;
rotinas n...
Ligação dinâmica
 A ligaç ão é adiada até o momento da execuç ão
 Um pequeno pedaç o de có digo (stub) é utilizado
para ...
Swapping
 Um processo pode ser removido temporariamente da memó ria
para um armazenamento secundário e depois trazido de ...
Visão esquemática de swapping
Alocação contínua
 A memó ria principal é geralmente dividida em duas
partições:
 Sistema operacional residente, geralme...
Suporte de hardware para relocação e
limite
Alocação contínua
 Alocaç ão com múltiplas partiç ões
 Buraco – bloco de memó ria disponível; buracos de vários
tamanhos...
O problema da alocação dinâmica
de espaço
 First-fit: Aloca o primeiro buraco que for
grande o suficiente
 Best-fit: Alo...
Fragmentação
 Fragmentaç ão externa – exige memó ria suficiente
para atender uma requisiç ão mas ela não é contigua
 Fra...
Paginação
 O espaç o de endereç amento ló gico de um processo
pode ser não-contínuo; o processo recebe memó ria
física na...
Esquema de tradução de endereços
 Os endereç os gerados pela CPU são divididos em duas partes:
 Número da página (p) – u...
Hardware de paginação
Modelo de paginação de memórias lógica e física
Exemplo de paginação
Memó ria de 32-bytes com páginas de 4 bytes
Quadros livres
Antes da alocaç ão Apó s alocaç ão
Implementação da tabela de
paginação
 Tabela de paginaç ão é mantida na memó ria principal
 Page-table base register (PT...
 Busca paralela
Traduç ão de endereç o (p, d)
 Se p estána memó ria associativa o valor de f é obtido
 Se não, obter o ...
Paginação utilizando TLBs
Tempo efetivo de acesso
 Busca associativa = ε unidades de tempo
 Assumir que um ciclo de memó ria dura 1
microssegundo
...
Proteção de memória
 O mecanismo de proteç ão de memó ria
associa um bit de proteç ão a cada quadro
 Um bit Válido-invál...
O bit Válido (v) ou Inválido (i) na tabela
de paginação
Páginas compartilhadas
 Có digo compartilhado
 Uma có pia apenas de leitura do có digo
compartilhada entre vários proces...
Exemplo do uso de páginas
compartilhadas
Estrutura da tabela de paginação
 Paginaç ão hierárquica
 Tabelas de paginaç ão com hash
 Tabela de paginaç ão invertida
Tabela de paginação hierárquica
 Quebra o espaç o de endereç amento ló gico
em múltiplas tabelas de paginaç ão
 Uma técn...
Paginação em dois níveis
 Espaç o de endereç amento ló gico (máquina de 32-bit com páginas de 4K) é divido
em :
 Um número de página de 20 bits
...
Esquema de tradução de endereço
Paginação em três níveis
Tabelas de paginação com hash
 Comum em espaç o de endereç amento com mais de
32 bits
 O número da página virtual é subm...
Tabela de paginação com hash
Tabela de paginação invertida
 Uma entrada para cada quadro na memó ria principal
 As entradas da tabela são os endereç ...
Arquitetura de uma tabela de
paginação invertida
Segmentação
 Esquema de gerência de memó ria que reflete a
visão que o usuário tem da memó ria
 Um programa é uma coleç ...
Visão do usuário sobre um programa
Arquitetura de segmentação
 O espaço de endereçamento ló gico consiste em uma tupla:
<número do segmento, deslocamento>,
...
Arquitetura de segmentação
 Proteç ão
 A cada entrada na tabela de segmentação associamos:
 Bit de validade = 0 ⇒ segme...
Hardware para segmentação
Exemplo do uso de segmentação
Upcoming SlideShare
Loading in...5
×

Gerência de Memória: Memória Principal

2,230

Published on

Fornecer uma descrição detalhada sobre várias formas de organizar o hardware de memória

Discutir técnicas de gerência de memória, incluindo paginação e segmentação

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
2,230
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
188
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Gerência de Memória: Memória Principal"

  1. 1. Sistemas Operacionais I Gerência de Memória: Memória Principal Prof. Alexandre Duarte : http://alexandrend.com Centro de Informática | Universidade Federal da Paraíba Estes slides são baseados no material que acompanha o livro Operating Systems Concepts de Silberschatz, Galvin and Gagne
  2. 2. Objetivos  Fornecer uma descriç ão detalhada sobre várias formas de organizar o hardware de memó ria  Discutir técnicas de gerência de memó ria, incluindo paginaç ão e segmentaç ão
  3. 3. Antecedentes  Os programas precisam ser trazidos para a memó ria principal para poderem ser executados (criaç ão de um processo)  Memó ria principal e registrados são as únicas unidades de armazenamento acessadas diretamente pela CPU  O acesso a um registrador é feito em um (ou menos) ciclos de CPU  Acessos à memó ria principal podem levar mais ciclos  A memó ria cache se situa entre a memó ria principal e os registradores  Mecanismos de proteç ão de memó ria são necessários para garantir a operaç ão correta
  4. 4. Registradores de base e limite  Um par de registradores (base e limite) definem um espaç o de endereç amento ló gico
  5. 5. Vinculando instruções e dados à memória  Tempo de compilaç ão: Se a localizaç ão de memó ria for conhecida a priori, o compilador pode gerar có digo absoluto; requer recompilaç ão caso a localizaç ão mude  Tempo de carga: Requer a geraç ão de có digo relocável se a localizaç ão de memó ria não for conhecida em tempo de compilaç ão  Tempo de execuç ão: A vinculaç ão é adiada até o momento da execuç ão caso o processo possa ser movido de um segmento de memó ria para outro durante a execuç ão. Requer suporte de hardware para mapas de endereç amento
  6. 6. Etapas do processamento de um programa do usuário
  7. 7. Endereçamento Lógico x Físico  O conceito de espaç o de endereç amento ló gico, que é vinculado a um espaç o de endereç amento físico separado é crucial para a gerência de memó ria  Endereç o ló gico: gerado pela CPU, também conhecido como endereç o virtual  Endereç o físico: endereço visto pela unidade de memó ria  Endereç os ló gicos e físicos são os mesmos em esquemas de vinculaç ão de endereç os em tempo de compilaç ão ou tempo de carga e são diferentes em esquemas de vinculaç ão de endereç os em tempo de execuç ão
  8. 8. Unidade de Gerência de Memória (MMU)  Dispositivo de hardware que mapeia um endereç o virtual em um endereç o físico  Na MMU, o valor de um registrador de relocaç ão é somado a todo endereç o gerado por um processo do usuário no momento em que ele é enviado a memó ria  O programa lida apenas com endereç os ló gicos; ele nunca vêos endereç os físicos reais
  9. 9. Uso do registrador de relocação
  10. 10. Carregamento dinâmico  Uma rotina não é carregada até ser invocada  Melhor utilizaç ão do espaç o de memó ria; rotinas não utilizadas nunca são carregadas  Útil quando grandes quantidade de có digo são necessárias para lidar com casos infrequentes  Não requer nenhum suporte especial do sistema operacional
  11. 11. Ligação dinâmica  A ligaç ão é adiada até o momento da execuç ão  Um pequeno pedaç o de có digo (stub) é utilizado para localizar a rotina apropriada em uma biblioteca residente na memó ria  O stub substitui a si pró prio com o endereç o da rotina e a executa  O sistema operacional é necessário para verificar se a rotina estáno espaç o de endereç amento do processo  Ligaç ão dinâmica é particularmente útil para bibliotecas compartilhadas
  12. 12. Swapping  Um processo pode ser removido temporariamente da memó ria para um armazenamento secundário e depois trazido de volta para continuar sua execuç ão  Armazenamento secundário – disco rápido, grande o suficiente para armazenar copias dos programas em memó ria de todos os usuários; precisa fornecer acesso direto a essas có pias de memó ria  Roll out, roll in – variante de swapping, utilizada em algoritmos de escalonamento com prioridade; processos de baixa prioridade são removidos para que processos de mais alta prioridade possam ser carregados e executados  A maior parte do tempo de swap é gasto transferindo dados  Versões modificadas de um esquema de swapping são encontradas em praticamente todos os sistemas operacionais
  13. 13. Visão esquemática de swapping
  14. 14. Alocação contínua  A memó ria principal é geralmente dividida em duas partições:  Sistema operacional residente, geralmente na memó ria baixa, junto com o vetor de interrupç ões  Processos do usuário na parte alta da memó ria  Registradores de relocação são utilizados para proteger os processos dos usuários uns dos outros e também para evitar alterações em dados e có digos do sistema operacional  O registrador base contem o menor endereç o de memó ria permitido  O registrado de limite define o tamanho do espaç o de endereç amento – cada endereç o ló gico deve ser menor que o registrador de limite  A MMU mapeia os endereç os ló gicos dinamicamente
  15. 15. Suporte de hardware para relocação e limite
  16. 16. Alocação contínua  Alocaç ão com múltiplas partiç ões  Buraco – bloco de memó ria disponível; buracos de vários tamanhos são espalhados na memó ria  Quando um processo é criado ele é alocado em um buraco grande o suficiente para suas necessidades de memó ria  O sistema operacional mantem informaç ões sobre: a) partiç ões alocadas b) partiç ões livres (buracos) SO processo 5 processo 8 processo 2 SO processo 5 processo 2 SO processo 5 processo 2 SO processo 5 processo 9 processo 2 processo 9 processo 10
  17. 17. O problema da alocação dinâmica de espaço  First-fit: Aloca o primeiro buraco que for grande o suficiente  Best-fit: Alocar o menor buraco que for grande o suficiente; precisa pesquisar a lista inteira a menos que esteja ordenada por tamanho  Produz o menor buraco remanescente  Worst-fit: Aloca o maior buraco; também precisa percorrer toda a slista  Produz o maior buraco remanescente First-fit e best-fit são melhores que o worst-fit em termos de velocidade e utilizaç ão do espaç o!
  18. 18. Fragmentação  Fragmentaç ão externa – exige memó ria suficiente para atender uma requisiç ão mas ela não é contigua  Fragmentaç ão interna – a memó ria alocada pode ser levemente maior que a memó ria requisitada; esta diferenç a de memó ria faz parte da partiç ão mas não é utilizada  Reduzir fragmentaç ão utilizando compactaç ão  Ordena o conteúdo da memó ria em uma localidade para juntar todo o espaço livre em um grande bloco  Compactação só é possível com relocação dinâmica
  19. 19. Paginação  O espaç o de endereç amento ló gico de um processo pode ser não-contínuo; o processo recebe memó ria física na medida em que ela se torna disponível  A memó ria física é dividida em blocos de tamanho fixo chamados quadros (o tamanho é uma potência 2, entre 512 bytes e 8,192 bytes)  A memó ria ló gica é dividida também em blocos do mesmo tamanho chamados páginas  Para executar um programa de n páginas é preciso encontrar n quadros para carregar o programa  Uma tabela de paginaç ão é utilizada para traduzir endereç os ló gicos em endereç os físicos
  20. 20. Esquema de tradução de endereços  Os endereç os gerados pela CPU são divididos em duas partes:  Número da página (p) – utilizado como índice na tabela de paginaç ão que contem o endereç o base de cada página na memó ria física  Deslocamento (d) – combinado com o endereç o base define o endereç o físico a ser enviado para a unidade de memó ria  Para um determinado espaç o de endereç amento com 2m bits e páginas de tamanho 2n
  21. 21. Hardware de paginação
  22. 22. Modelo de paginação de memórias lógica e física
  23. 23. Exemplo de paginação Memó ria de 32-bytes com páginas de 4 bytes
  24. 24. Quadros livres Antes da alocaç ão Apó s alocaç ão
  25. 25. Implementação da tabela de paginação  Tabela de paginaç ão é mantida na memó ria principal  Page-table base register (PTBR) aponta para a base  Page-table length register (PRLR) indica o tamanho  Neste esquema, cada acesso a dados ou instruç ões requer dois acessos à memó ria. Um para a tabela de paginaç ão e outro para o dado/instruç ão  Este problema de dois acessos pode ser amenizado utilizando um cache de hardware especial chamado translation look-aside buffers (TLBs)
  26. 26.  Busca paralela Traduç ão de endereç o (p, d)  Se p estána memó ria associativa o valor de f é obtido  Se não, obter o valor de f da tabela de paginaç ão na memó ria Memória associativa Page # Frame #
  27. 27. Paginação utilizando TLBs
  28. 28. Tempo efetivo de acesso  Busca associativa = ε unidades de tempo  Assumir que um ciclo de memó ria dura 1 microssegundo  Taxa de acerto – porcentagem das vezes em que o número de uma página é encontrado no TLB; Taxa de acerto = α  Tempo efetivo de acesso (EAT) EAT = (1 + ε) α + (2 + ε)(1 – α) = 2 + ε – α
  29. 29. Proteção de memória  O mecanismo de proteç ão de memó ria associa um bit de proteç ão a cada quadro  Um bit Válido-inválido anexado a cada entrada na tabela de paginaç ão:  “válido” indica que a página associada estáno espaç o de endereç amento ló gico do processo  “inválido” indica que a página não estáno espaç o de endereç amento ló gico do processo
  30. 30. O bit Válido (v) ou Inválido (i) na tabela de paginação
  31. 31. Páginas compartilhadas  Có digo compartilhado  Uma có pia apenas de leitura do có digo compartilhada entre vários processos  O có digo compartilhado precisa aparecer no mesmo local no espaç o de endereç amento ló gico de todos os processos  Có digo e dados privados  Cada processo mantém uma có pia separada dos dados e có digo  As páginas para o có digo privado podem aparecer em qualquer lugar no espaç o de endereç amento ló gico
  32. 32. Exemplo do uso de páginas compartilhadas
  33. 33. Estrutura da tabela de paginação  Paginaç ão hierárquica  Tabelas de paginaç ão com hash  Tabela de paginaç ão invertida
  34. 34. Tabela de paginação hierárquica  Quebra o espaç o de endereç amento ló gico em múltiplas tabelas de paginaç ão  Uma técnica simples é paginaç ão em dois níveis
  35. 35. Paginação em dois níveis
  36. 36.  Espaç o de endereç amento ló gico (máquina de 32-bit com páginas de 4K) é divido em :  Um número de página de 20 bits  Um deslocamento na página de 12 bits  Uma vez que a tabela de paginaç ão é também paginada, o número da página é também dividido em duas partes:  Um número de página de 10 bits  Um deslocamento na página de 10 bits  Portanto, os endereç os ló gicos são construídos da seguinte forma: onde pi é o índice na tabela de paginaç ão externa e p2 é o deslocamento dentro da página da tabela de paginaç ão externa Exemplo de paginação em dois níveis
  37. 37. Esquema de tradução de endereço
  38. 38. Paginação em três níveis
  39. 39. Tabelas de paginação com hash  Comum em espaç o de endereç amento com mais de 32 bits  O número da página virtual é submetido a uma funç ão hash e o resultado aponta para uma entrada na tabela de paginaç ão  Cada entrada na tabela de paginação contem uma lista de elementos cujo hash apontou para a mesma localidade (colisões)  O número da página virtual é então comparado com os valores nessa lista para localizar o quadro na memó ria física
  40. 40. Tabela de paginação com hash
  41. 41. Tabela de paginação invertida  Uma entrada para cada quadro na memó ria principal  As entradas da tabela são os endereç os das páginas virtuais armazenadas nessas localizaç ão de memó ria, com informaç ão sobre o processo proprietário  Diminui a quantidade de memó ria necessária para armazenar a tabela de paginaç ão mas aumenta o tempo necessário para consultar a tabela  Usar hash para limitar a busca a uma, ou pelo menos, a umas poucas entradas
  42. 42. Arquitetura de uma tabela de paginação invertida
  43. 43. Segmentação  Esquema de gerência de memó ria que reflete a visão que o usuário tem da memó ria  Um programa é uma coleç ão de segmentos  Um segmento representa uma unidade ló gica, como: Programa principal Procedimento Funç ão Método Objeto Variáveis locais Variáveis globais Pilha Tabela de símbolos
  44. 44. Visão do usuário sobre um programa
  45. 45. Arquitetura de segmentação  O espaço de endereçamento ló gico consiste em uma tupla: <número do segmento, deslocamento>,  Tabela de segmentos – mapeia os endereços virtuais em endereços físicos; cada entrada tem:  base – contem o endereç o inicial do segmento na memó ria  limite – especifica o tamanho do segmento  Segment-table base register (STBR) aponta para a base da tabela de segmentação na memó ria  Segment-table length register (STLR) indica o número de segmentos utilizados por um programa; o número de segmento s é legal se s < STLR
  46. 46. Arquitetura de segmentação  Proteç ão  A cada entrada na tabela de segmentação associamos:  Bit de validade = 0 ⇒ segmento ilegal  Privilégios de leitura/escrita/execuç ão  Bits de proteç ão associados a segmentos; compartilhamento de có digo ocorre no nível dos segmentos  Uma vez que o tamanho dos segmentos varia, alocaç ão de memó ria passa a ser uma problema de alocaç ão dinâmica de armazenamento
  47. 47. Hardware para segmentação
  48. 48. Exemplo do uso de segmentação
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×