Gerenciamento de Memória
Table of Contents
1. Introdução
1.0.1. Introdução assíncrona ao Gerenciamento de Memória
Leia o material abaixo:
1.0.2. Vídeos sobre memória
1.0.3. Vídeos
1.1. Exercícios
- Considere um sistema cuja gerência de memória é feita através de partições variáveis.
- Nesse momento, existem as seguintes lacunas (áreas livres): 10K, 4K, 20K,18K, 7K, 9K, 12K e 13K, nessa ordem.
- Quais espaços serão ocupados pelas solicitações: 4K, 10K e 6K, nessa ordem, se:
- first-fit for utilizado?
- best-fit for utilizado?
- worst-fit for utilizado?
- Calcule o número de bits para página, quadro e deslocamento.
- Memória lógica = 512K, Memória física = 512K, Tamanho de página = 8K
- Tamanho de página = 4K, número de páginas = 8, número de quadros = 16
- O que é paginação?
- Qua é a diferença entre paginação e segmentação?
- Considere que os processos da tabela abaixo devem ser executados em um SO com paginação.
- A memória total é de 64K, o tamanho das páginas é de 4K e o SO ocupa 8K. Mostre como seria a alocação de quadros para cada processo.
Processo | Mem. (K) | T. Chegada | T. Execução |
P1 | 8 | 0 | 10 |
P2 | 6 | 1 | 15 |
P3 | 15 | 2 | 10 |
P4 | 5 | 3 | 14 |
P5 | 10 | 15 | 5 |
- Qual a diferença entre fragmentação interna e externa da memória principal?
- Qual a principal diferença entre os sistemas que implementam paginação e segmentação?
- Para que serve o bit de validade nas tabelas de páginas e segmentos?
- Nos sistemas com paginação, a rotina para tratamento de page faults está residente na memória principal
- Esta rotina pode ser removida da memória em algum momento?
- O que aconteceria se esta rotina não estivesse na memória principal durante a ocorrência de um page fault?
- Descreva como ocorre a fragmentação interna em um sistema que implementa paginação
- Na figura abaixo está representada um esquema de paginação que utiliza 4 bits para índice da página e 12 bits para deslocamento. :profIslene:
- Considerando esta tabela, indique para cada endereço virtual o
endereço físico correspondente ou escreva page fault
0010 0000 0000 0111
0011 0000 1010 0000
0100 0000 0000 0101
1111 1111 1111 1111
0000 0000 0000 0000
- Considerando esta tabela, indique para cada endereço virtual o
endereço físico correspondente ou escreva page fault
- Seria possível e/ou viável implementar as conversões de endereços realizados pelas MMU em software, ao invés de usar um hardware dedicado? Por quê?
- O que é memória virtual?
- Quais das seguintes técnicas e estruturas de programação são "boas" para um ambiente de paginação por demanda? Quais delas são "más"? Explique suas respostas.
- pilha
- Busca Sequencial
- Busca Binária
- Operações em vetor
- Simulação
- Considere os seguintes algoritmos de substituição de páginas. Classifique estes algoritmos em uma escala de cinco pontos do "ruim" ao "perfeito" de acordo com a sua taxa de erros de página. Separe os algoritmos afetados pela anomalia de Belady daqueles que não o são.
- Substituição LRU
- Substituição FIFO
- Substituição Ótima
- Substituição da segunda chance
- Considere a seguinte sequência de referências de páginas:
1,2,3,4,2,1,5,6,2,1,2,3,7,6,3,2,1,2,3,6
- Quantos erros de pághinas iriam ocorrer para os seguintes
algoritmos de substituição , considerando um, dois, três,
quatro, cinco, seis ou sete quadros? Lembre-se de que todos os
quadros estão inicialmente vazios, de modo que a primeira
página de cada um implicará em um erro de página.
- Substituição LRU
- Substituição Ótima
- Substituição do Relógio
- Substituição WSClock
- Quantos erros de pághinas iriam ocorrer para os seguintes
algoritmos de substituição , considerando um, dois, três,
quatro, cinco, seis ou sete quadros? Lembre-se de que todos os
quadros estão inicialmente vazios, de modo que a primeira
página de cada um implicará em um erro de página.
- Você consegue imaginar alguma situação em que dar suporte à memória virtual seria uma má ideia e o que se ganha quando não é necessário o suporte a memória virtual? Explique
- Exercícios do capítulo 3 do Tanembaum
- Qual é a diferença entre paginação e segmentação? Qual a principal diferença entre os sistemas que implementam paginação e segmentação? Por quê alguns sistemas implementam Segmentação com Paginação?
- Observe o programa abaixo:
1: #define PAGESIZE 4096 2: #define N 500000 3: char mat[N][PAGESIZE]; 4: void funcao_A(char c) { 5: int i, j; 6: for (i = 0; i < N; i++) 7: for (j = 0; j < PAGESIZE; j++) 8: mat[i][j] = c; 9: } 10: void funcao_B(char c) { 11: int i,j; 12: for (j = 0; j < PAGESIZE; j++) 13: for (i = 0; i < N; i++) 14: mat[i][j] = c; 15: } 16: int main() { 17: funcao_A('*'); 18: funcao_B('-'); 19: return 0; 20: }
Considere que o seu sistema utiliza paginação e que o endereço
mat[i][j]
é calculado da seguinte forma: mat[i][j] = mat + (i*PAGESIZE+j)*sizeof(char)
- Qual função (
funcao_A
oufuncao_B
) irá, provavelmente, ser executada mais rápido? - Descreva duas razões relacionadas ao gerenciamento de memória que justificam a sua resposta acima.