Memória Virtual

26
Memória Virtual ARQUITETURAS DE COMPUTADORES II Prof. César Augusto M. Marcon

description

ARQUITETURAS DE COMPUTADORES II. Memória Virtual. Prof. César Augusto M. Marcon. Memória Virtual. Na gerência de memória convencional páginas ou segmentos (unidades) de um programa são todos carregados para MP antes de sua execução - PowerPoint PPT Presentation

Transcript of Memória Virtual

Page 1: Memória Virtual

Memória Virtual

ARQUITETURAS DE COMPUTADORES II

Prof. César Augusto M. Marcon

Page 2: Memória Virtual

2 / 18

Memória Virtual

• Na gerência de memória convencional páginas ou segmentos (unidades) de um programa são todos carregados para MP antes de sua execução

• Devido a localidade, um programa só precisa de algumas dessas unidades em um dado momento– É possível gerenciar a memória de forma que só unidades necessárias em

um dado momento estejam na MP

• Memória física pode ser melhor aproveitada, sendo possível:– Executar um programa maior que a MP

– Executar vários programas “ao mesmo tempo” que somados são maiores que a MP

• UCP gera endereços para espaço de endereçamento lógico maior que tamanho da MP física (daí o nome virtual)

Page 3: Memória Virtual

3 / 18

Memória Virtual

• SO aplica regras– Quando processo inicia não são carregadas todas suas unidades para MP

– Tabelas de conversão de endereços indicam unidades que estão na MP (bit de validade)

Page 4: Memória Virtual

4 / 18

Memória Virtual

• SO aplica regras (continuação)– Quando necessário, sistema gera um page-fault e manda buscar página do

disco• Carregadas por demanda

– O processo perde o processador

– Processo só retorna para fila de pronto quando unidade estiver disponível na MP

• Se MP ficar cheia, novas unidades são colocadas no lugar das menos recentemente usadas (LRU)

– Essa técnica tem os seguintes custos associados• Miss-penalty alto pois unidades têm que ser buscadas do disco• Aumenta número de trocas de contexto por causa de page-faults e de eventos a

serem tratados (evento gerado quando a unidade foi trazida)

Page 5: Memória Virtual

5 / 18

Memória Virtual - Trashing

• Problema que pode ocorrer na gerência de memória virtual é o Trashing– Trashing vem de trash (lixo) e indica que nada de produtivo está sendo feito

– Ocorre quando sistema fica maior parte do tempo trocando páginas e processador não consegue executar nenhum processo

– Ocorre quando muitos processos estão ativos e MP é proporcionalmente pequena para acomodar as unidades

• Assim, quando processo ganha CPU ele manda trazer suas unidades e volta a dormir, quando essas unidades são trazidas. A gerência de memória apaga unidades de outro processo por causa da falta de espaço na memória. Quando for a vez desse outro, suas páginas já não estão mais na memória, e assim por diante ...

– Acima de um certo número de processos ativos o desempenho da máquina começa a diminuir

– Este número é bastante dinâmico e depende:• Da arquitetura da máquina• Do tamanho da MP• Do número de processos ativos• Do tipo de processos que estão ativos (io-bound, cpu-bound)

Page 6: Memória Virtual

6 / 18

Memória Virtual - Trashing

• A taxa de utilização do processador cai exponencialmente, quando o mesmo está em trashing, assim como ilustrado abaixo

Page 7: Memória Virtual

7 / 18

Acesso Completo a Endereços

MEMÓRIA CACHE

TLB HIT

TLB MISS

CACHE HIT

Envia dado para a CPU

CACHE MISS

MEMÓRIA PRINCIPAL

PAGE HIT

Disco

PAGEFAULT

TABELADE

PÁGINAS TLB

ENDEREÇO LÓGICO

CPU

HITMISS

Page 8: Memória Virtual

8 / 18

Memória Virtual - Estudo de Casos

• Maioria dos SOs aplica técnicas de memória virtual na gerência de memória

• No caso de sistemas que executam em múltiplas plataformas a gerência de memória pode variar, dependendo do hardware disponível (MMU – Memory Management Unity)

• UNIX– Versões antigas do UNIX aplicavam um particionamento variável da memória

sem memória virtual– Versões mais modernas (SVR4 e Solaris2.x) implementam memória virtual

paginada– Substituição de páginas feita com variações do algoritmo do relógio

• Para o kernel (pequenos blocos) é utilizado uma variação do algoritmo de buddy

Page 9: Memória Virtual

9 / 18

Memória Virtual - Linux

• Linux– Tem várias características em comum com UNIX, mas tem suas

peculiaridades• Implementa memória virtual paginada com tabela de página de 3 níveis

(diretório, diretório intermediário, página)

Page 10: Memória Virtual

10 / 18

Memória Virtual - Linux

• Conceito de diretório reduz tamanho das tabelas– Aumenta complexidade de acesso (várias consultas para converter endereço)

• Tabelas usadas em conversão mas estrutura das tabelas não é linear e sim uma árvore

– Várias tabelas de diretórios intermediários para cada entrada da tabela de diretórios

– Várias tabelas de páginas para cada entrada de cada tabela de diretórios intermediários!!!

• Páginas de 4Kbytes na família X86 e 8Kbytes na família Alpha

• Para facilitar portabilidade tem um nível intermediário de gerência de memória Architecture Independent Memory Model

• Substituição de páginas feita com variação do algoritmo do relógio

• Alocação dinâmica feita na pilha do sistema (stack)

• Para o kernel é utilizado uma variação do algoritmo de buddy– Linux implementa o Buddy sobre páginas mas subdivide-as em menores

unidades para melhor atender as necessidades do kernel

Page 11: Memória Virtual

11 / 18

Memória Virtual – OS2

Page 12: Memória Virtual

12 / 18

Memória Virtual

• Windows 2000– Utiliza memória virtual paginada

– Divide espaço de memória virtual de 4 Gbytes (registrador de 32 bits) em 2 GB para processos de usuário e 2 GB para SO

– Quando processo de usuário é disparado recebe um número de frames de memória (Working Set - WS)

• Substituições de páginas efetuadas apenas dentro deste WS, ou seja, só páginas do mesmo processo são candidatas para a substituição

• Se número de substituições de um processo for grande e bastante memória estiver disponível, o WS pode ser aumentado

• Se memória livre ficar escassa, o SO diminui o WS dos processos de usuário retirando suas páginas menos recentemente utilizadas

Page 13: Memória Virtual

13 / 18

1. (POSCOMP 2004 - 32) Considere as seguintes afirmativas:I. Uma modificação em uma CPU fez o cycle time e o CPI aumentarem de 10%

enquanto o número de instruções executadas para uma dada aplicação decresceu de 20%. Podemos concluir que o tempo de execução desta aplicação será mantido.

II. Um page fault ocorre quando a entrada correspondente à página requerida não é encontrada no translation lookside buffer.

III. Para armazenar uma mesma quantidade de dados, uma cache direct mapped é tipicamente menor que uma cache set associative, assumindo blocos de mesmo tamanho.

IV. Aumentando–se o tamanho do bloco de uma cache aumentam–se as vantagens obtidas com a localidade espacial.

V. Memória virtual tipicamente usa a estratégia write–through ao invés de estratégia write–back.

Quais são as alternativas verdadeiras?a) Somente as afirmativas I, II, III e IV são verdadeiras.

b) Somente as afirmativas I, III e IV são verdadeiras.

c) Somente as afirmativas II, III e IV são verdadeiras.

d) Somente as afirmativas III e IV são verdadeiras.

e) Todas as afirmativas são verdadeiras.

Exercícios

Page 14: Memória Virtual

14 / 18

1. (POSCOMP 2004 - 32) Considere as seguintes afirmativas:I. Uma modificação em uma CPU fez o cycle time e o CPI aumentarem de 10%

enquanto o número de instruções executadas para uma dada aplicação decresceu de 20%. Podemos concluir que o tempo de execução desta aplicação será mantido.

II. Um page fault ocorre quando a entrada correspondente à página requerida não é encontrada no translation lookside buffer.

III. Para armazenar uma mesma quantidade de dados, uma cache direct mapped é tipicamente menor que uma cache set associative, assumindo blocos de mesmo tamanho.

IV. Aumentando–se o tamanho do bloco de uma cache aumentam–se as vantagens obtidas com a localidade espacial.

V. Memória virtual tipicamente usa a estratégia write–through ao invés de estratégia write–back.

Quais são as alternativas verdadeiras?a) Somente as afirmativas I, II, III e IV são verdadeiras.

b) Somente as afirmativas I, III e IV são verdadeiras.

c) Somente as afirmativas II, III e IV são verdadeiras.

d) Somente as afirmativas III e IV são verdadeiras.

e) Todas as afirmativas são verdadeiras.

Resposta de Exercícios

Page 15: Memória Virtual

15 / 18

2. (ENADE 2005 - questão 22) Com relação ao gerenciamento de memória com paginação em sistemas operacionais, assinale a opção correta.A. As páginas utilizadas por um processo, sejam de código ou de dados, devem ser

obrigatoriamente armazenadas na partição de swap do disco, quando o processo não estiver sendo executado

B. Todas as páginas de um processo em execução devem ser mantidas na memória física enquanto o processo não tiver terminado

C. Um processo somente pode ser iniciado se o sistema operacional conseguir alocar um bloco contíguo de páginas do tamanho da memória necessária para execução do processo

D. O espaço de endereçamento virtual disponível para os processos pode ser maior que a memória física disponível

E. Um processo somente pode ser iniciado se o sistema operacional conseguir alocar todas as páginas de código desse processo

Exercícios

Page 16: Memória Virtual

16 / 18

2. (ENADE 2005 - questão 22) Com relação ao gerenciamento de memória com paginação em sistemas operacionais, assinale a opção correta.A. As páginas utilizadas por um processo, sejam de código ou de dados, devem ser

obrigatoriamente armazenadas na partição de swap do disco, quando o processo não estiver sendo executado

B. Todas as páginas de um processo em execução devem ser mantidas na memória física enquanto o processo não tiver terminado

C. Um processo somente pode ser iniciado se o sistema operacional conseguir alocar um bloco contíguo de páginas do tamanho da memória necessária para execução do processo

D. O espaço de endereçamento virtual disponível para os processos pode ser maior que a memória física disponível

E. Um processo somente pode ser iniciado se o sistema operacional conseguir alocar todas as páginas de código desse processo

Resposta de Exercícios

Page 17: Memória Virtual

17 / 18

3. Porque utilizar sistemas de memória virtual?4. Diga quando pode ocorrer page-fault5. Quais são as técnicas de escrita em memória virtual? Compare vantagens e

desvantagens de cada uma6. O mapeamento em sistemas de memória virtual é indexado ou associativo? Por

quê?

7. (ENADE 2010 - questão 36) Técnicas eficientes para o uso de memória, como memória virtual e caching, podem ser utilizadas, por quê?

a) aumentou o espaço de armazenamento em RAM

b) memórias dinâmicas são mais rápidas que memórias estáticas

c) aumentou a velocidade de acesso para a memória RAM

d) o princípio da localidade pode ser aplicado

e) o thrashing não pode ocorrer em memórias modernas

Exercícios

Page 18: Memória Virtual

18 / 18

3. Porque utilizar sistemas de memória virtual?4. Diga quando pode ocorrer page-fault5. Quais são as técnicas de escrita em memória virtual? Compare vantagens e

desvantagens de cada uma6. O mapeamento em sistemas de memória virtual é indexado ou associativo? Por

quê?

7. (ENADE 2010 - questão 36) Técnicas eficientes para o uso de memória, como memória virtual e caching, podem ser utilizadas, por quê?

a) aumentou o espaço de armazenamento em RAM

b) memórias dinâmicas são mais rápidas que memórias estáticas

c) aumentou a velocidade de acesso para a memória RAM

d) o princípio da localidade pode ser aplicado

e) o thrashing não pode ocorrer em memórias modernas

Resposta de Exercícios

Page 19: Memória Virtual

19 / 18

8. (POSCOMP 2009 questão 26) Considere uma arquitetura de memória com as seguintes características:– Memória logicamente particionada em segmentos paginados.

– Endereços virtuais de 32 bits:• 8 para segmentos• 11 para páginas• O restante para o endereçamento na página• Endereços físicos de 20 bits e páginas de 8KB;

Caso o particionamento lógico fosse o de paginação pura, a relação entre o número de páginas virtuais e o número de frames seria equivalente a:

A) 8192

B) 4096

C) 1024

D) 128

E) 32

Exercícios

Page 20: Memória Virtual

20 / 18

8. (POSCOMP 2009 questão 26) Considere uma arquitetura de memória com as seguintes características:– Memória logicamente particionada em segmentos paginados.

– Endereços virtuais de 32 bits:• 8 para segmentos• 11 para páginas• O restante para o endereçamento na página• Endereços físicos de 20 bits e páginas de 8KB;

Caso o particionamento lógico fosse o de paginação pura, a relação entre o número de páginas virtuais e o número de frames seria equivalente a:

A) 8192

B) 4096

C) 1024

D) 128

E) 32

Resposta de Exercícios

Page 21: Memória Virtual

21 / 18

9. (POSCOMP 2012 questão 47) O fenômeno de thrashing de um sistema é caracterizado por:

a) Excesso de processos executando no sistema.

b) Impossibilidade de uso de memória virtual.

c) Execução excessiva de coleta de lixo (garbage collection) na memória.

d) Falhas eventuais no atendimento ao princípio da localidade na memória.

e) Uso de algoritmos de paginação que causem a anomalia de Belady.

Exercícios

Page 22: Memória Virtual

22 / 18

9. (POSCOMP 2012 questão 47) O fenômeno de thrashing de um sistema é caracterizado por:

a) Excesso de processos executando no sistema.

b) Impossibilidade de uso de memória virtual.

c) Execução excessiva de coleta de lixo (garbage collection) na memória.

d) Falhas eventuais no atendimento ao princípio da localidade na memória.

e) Uso de algoritmos de paginação que causem a anomalia de Belady.

Resposta de Exercícios

Page 23: Memória Virtual

23 / 18

10. (POSCOMP 2012 questão 49) O gerenciamento de memória virtual (MV) pressupõe a existência de tabelas de páginas e mecanismos para ranqueamento de páginas, além da existência do princípio da localidade. Considerando que o algoritmo de MV, utilizado em um dado sistema, permite que as páginas envolvidas na operação de swapping sejam de conjuntos residentes diferentes, assinale a alternativa que apresenta o impacto disso sobre os processos em execução

a) Deve piorar a taxa de faltas de páginas por não respeitar o princípio da localidade

b) Pode criar a ocorrência de deadlocks entre os processos que usam os conjuntos residentes envolvidos

c) deve melhorar a taxa de faltas de páginas por ajustar o tamanho dos vários conjuntos residentes

d) Não altera a taxa de faltas de páginas pois essas não dependem dos conjuntos residentes

e) Força o bloqueio desnecessário de um processo que não teve falta de página enquanto o swapping estava sendo realizado

Exercícios

Page 24: Memória Virtual

24 / 18

10. (POSCOMP 2012 questão 49) O gerenciamento de memória virtual (MV) pressupõe a existência de tabelas de páginas e mecanismos para ranqueamento de páginas, além da existência do princípio da localidade. Considerando que o algoritmo de MV, utilizado em um dado sistema, permite que as páginas envolvidas na operação de swapping sejam de conjuntos residentes diferentes, assinale a alternativa que apresenta o impacto disso sobre os processos em execução

a) Deve piorar a taxa de faltas de páginas por não respeitar o princípio da localidade

b) Pode criar a ocorrência de deadlocks entre os processos que usam os conjuntos residentes envolvidos

c) Deve melhorar a taxa de faltas de páginas por ajustar o tamanho dos vários conjuntos residentes

d) Não altera a taxa de faltas de páginas pois essas não dependem dos conjuntos residentes

e) Força o bloqueio desnecessário de um processo que não teve falta de página enquanto o swapping estava sendo realizado

Resposta de Exercícios

Page 25: Memória Virtual

25 / 18

11. (POSCOMP 2013, Questão 46) Apesar de a alocação de memória em blocos implicar em um mecanismo mais complexo para a conversão entre endereços virtuais e endereços físicos, é a partir do seu conceito que o gerenciamento de memória evoluiu para o que se tem hoje, com o uso de memória cache e memória virtual. Com base nessas informações, considere as afirmativas a seguir

I. O endereçamento é facilitado por hardware especializado.

II. O uso de páginas de tamanho igual a potência de 2 permite um melhor gerenciamento.

III. O uso de memória cache elimina a necessidade de endereçamento, pois trata as informações como linhas de cache.

IV. Endereços virtuais não são necessários se não se usar memória virtual.

Assinale a alternativa correta.

a) Somente as afirmativas I e II são corretas.

b) Somente as afirmativas I e IV são corretas.

c) Somente as afirmativas III e IV são corretas.

d) Somente as afirmativas I, II e III são corretas.

e) Somente as afirmativas II, III e IV são corretas.

Exercícios

Page 26: Memória Virtual

26 / 18

11. (POSCOMP 2013, Questão 46) Apesar de a alocação de memória em blocos implicar em um mecanismo mais complexo para a conversão entre endereços virtuais e endereços físicos, é a partir do seu conceito que o gerenciamento de memória evoluiu para o que se tem hoje, com o uso de memória cache e memória virtual. Com base nessas informações, considere as afirmativas a seguir

I. O endereçamento é facilitado por hardware especializado.

II. O uso de páginas de tamanho igual a potência de 2 permite um melhor gerenciamento.

III. O uso de memória cache elimina a necessidade de endereçamento, pois trata as informações como linhas de cache.

IV. Endereços virtuais não são necessários se não se usar memória virtual.

Assinale a alternativa correta.

a) Somente as afirmativas I e II são corretas.

b) Somente as afirmativas I e IV são corretas.

c) Somente as afirmativas III e IV são corretas.

d) Somente as afirmativas I, II e III são corretas.

e) Somente as afirmativas II, III e IV são corretas.

Resposta de Exercícios