Baixe o app para aproveitar ainda mais
Prévia do material em texto
Disciplina: Sistemas Operacionais Professor(a): Erasmo Evangelista Aluno(a): Rodolfo Lima, Eduardo Sales Matrícula: 009360, 101275 Memória Virtual 1. Quais os benefícios oferecidos pela técnica de memória virtual? Como este conceito permite que um programa e seus dados ultrapassem os limites da memória principal? Os principais benefícios da técnica de memória virtual são possibilitar que programas e dados sejam armazenados independentemente do tamanho da memória principal, permitir um número maior de processos compartilhando a memória principal e minimizar o problema da fragmentação. O que possibilita que um programa e seus dados ultrapassem os limites da memória principal é a técnica de gerência de memória virtual que combina as memórias principal e secundária, estendendo o espaço de endereçamento dos processos. 2. Qual a principal diferença entre os sistemas que implementam paginação e segmentação? A principal diferença entre os dois sistemas está relacionada a forma como o espaço de endereçamento virtual está dividido logicamente. Na paginação, o espaço de endereçamento está dividido em blocos com o mesmo número de endereços virtuais (páginas), enquanto que na segmentação o tamanho dos blocos pode variar (segmentos). 3. Determinado computador fornece a seus usuários um espaço de memória virtual de 232 Kbytes. O computador tem 218 Kbytes de memória física. A memória virtual é implementada por paginação e o tamanho de página é 4096 bytes. Um processo de usuário gera o endereço virtual 123456. Explique como o sistema estabelece a posição física correspondente. Em um sistema de memória virtual baseada em paginação, o endereço virtual apresenta o formato (p, d), onde p = número da página e d = deslocamento dentro da página. A MMU (Memory Management Unit) deve, portanto, transformar primeiramente o endereço virtual “linear” 123456 para este formato (no exemplo da questão, o sistema possui 58 páginas virtuais (232K/4k = 58) e cada endereço virtual possui 18 bits, assim divididos: 6 bits para armazenar o número p da página e 12 bits para armazenar o deslocamento d). Para se determinar os valores de página e deslocamento, o endereço virtual 123456 é dividido pelo tamanho da página, que é de 4096 bytes. O resultado desta divisão implica em: página = 30, deslocamento = 576. De posse do número da página, a tabela de páginas do processo é então acessada para se descobrir se esta página está mapeada na memória. Se estiver, o número da moldura correspondente é usado para, juntamente com o deslocamento, calcular o endereço físico a ser acessado (endereço físico = número da moldura * tamanho da moldura + deslocamento). O tamanho da moldura é, obviamente, igual ao tamanho da página. Caso a página acessada não esteja na memória (o que pode ser deduzido observando-se o valor do bit de validade/presença da entrada na tabela de páginas), é gerada uma exceção (page fault – falta de página) e um algoritmo de substituição de páginas é executado para se determinar qual das páginas mapeadas na memória deve ser substituída para que a página recém-acessada seja carregada na moldura em que se encontra a página selecionada para expulsão. A tabela de páginas é atualizada. Por exemplo, supondo que a página 30 esteja mapeada na moldura 10 da memória real, a posição física correspondente seria assim calculada: 10 x 4096 + 576 (moldura x tamanho da moldura + deslocamento), resultando em acesso ao endereço físico 41.536. Caso o hardware possua um sistema de cache de páginas implementado via TLB - Translation Look Aside Buffer, a página a ser acessada é verificada antes se está na TLB Caso não esteja mapeada, somente depois é examinada a tabela de páginas do processo na memória. O endereço da tabela de páginas na memória faz parte do contexto do processo. MMU, formato do endereço virtual (página, deslocamento), tabela de páginas, moldura, bit de validade/presença, cálculo do endereço físico (moldura * tamanho da moldura + deslocamento), 1 Disciplina: Sistemas Operacionais Professor(a): Erasmo Evangelista Aluno(a): Rodolfo Lima, Eduardo Sales Matrícula: 009360, 101275 falta de página (page fault), algoritmo de substituição de página, atualização da tabela de páginas, TLB. 4. O que são tabelas de páginas e tabelas de segmentos? Para que serve o bit de validade nas tabelas de páginas e segmentos? São tabelas de mapeamento, utilizadas no mecanismo de memória virtual, que possibilitam que endereços virtuais sejam traduzidos em endereços reais; O bit de validade serve para indicar se a página ou segmento em questão encontra-se na memória principal. 5. Explique o conceito de falta de página (page fault). Quando ocorre e quem controla a sua ocorrência? Como uma elevada taxa de page fault pode comprometer o desempenho do sistema operacional? O page fault ocorre todas as vezes que um processo faz referência a um endereço virtual pertencente a uma página virtual que não se encontra mapeada em uma página real, ou seja, não está, no momento, na memória principal. A ocorrência de um page fault é verificada através do bit de validade presente na ETP da tabela de páginas referente à página virtual. Uma elevada taxa de page fault pode comprometer o desempenho do sistema devido ao excessivo overhead de operações de E/S gerados pela paginação. 6. Cite dois algoritmos de substituição de página. Faça um paralelo entre eles. FIFO – First In First Out • O SO mantém uma lista por tempo de permanência na TP • No page fault, a página mais antiga é removida • Mas a página mais antiga nem sempre é a menos usada Algoritmo Segunda Chance • Semelhante ao FIFO, mas com inspeção do bit R quando ocorre page fault • Se R = 0, substitui, caso contrário, manda a página para o fim da lista, zerando o bit R • Procura por uma página antiga que não foi referenciada recentemente • Se todas as páginas tenham sido referenciadas recentemente, usa FIFO São soluções de baixa performance, pois realiza movimentos de página na TP. 7. Descreva como ocorre a fragmentação interna em um sistema que implementa paginação. A fragmentação interna em um sistema que implementa paginação só é encontrada, realmente, na última página, quando o código não o culpa o frame por completo. 8. Explique como um endereço virtual de um processo é traduzido para um endereço real na memória principal? Um programa no ambiente de memória virtual não faz referência a endereços físicos de memória (endereços reais), mas apenas a endereços virtuais. No momento da execução de uma instrução, o endereço virtual referenciado é traduzido para um endereço físico, pois o processador manipula apenas posições da memória principal. O mecanismo de tradução do endereço virtual para endereço físico é denominado mapeamento. O dispositivo de hardware responsável por esta tradução é conhecido como unidade de gerência de memória (Memory Management Unit – MMU), sendo acionado sempre que se faz referência a um endereço virtual. Depois de traduzido, o endereço real pode ser utilizado pelo processador para o acesso à memória principal. 2 Disciplina: Sistemas Operacionais Professor(a): Erasmo Evangelista Aluno(a): Rodolfo Lima, Eduardo Sales Matrícula: 009360, 101275 9. Um sistema com gerência de memória virtual por paginação possui tamanho de página igual a 512, espaço de endereçamento virtual com 512 páginas endereçadas de 0 a 511 e memória real com 10 páginas numeradas de 0 a 9. O conteúdo atual da memória real contém apenas informações de um único processo e é descrito resumidamente na tabela abaixo: Endereço Físico Conteúdo 1536 Página Virtual 34 2048 Página Virtual 9 3072 Tabela de páginas 3584 Página Virtual 65 • Considere que a entrada da tabela de páginas contém, além do endereço do frame, também o número da página virtual. Mostre o conteúdo da tabela de páginas deste processo. NPV Frame 9 4 10 9 34 3 65 7 • Mostre o conteúdoda tabela de páginas após a página virtual 49 ser carregada na memória a partir do endereço real 0 e a página virtual 34 ser substituída pela página virtual 12. NPV Frame 9 4 10 9 12 3 49 0 65 7 • Como é o formato do endereço virtual deste sistema? O endereço virtual possui 9 bits para endereçar a tabela de páginas e 9 bits para o deslocamento dentro da página. • Qual endereço físico está associado ao endereço virtual 4613? O endereço virtual 4613 encontra-se na página virtual 9 (4613/512), que inicia no endereço virtual 4608. Como o deslocamento dentro do endereço virtual é 5, o endereço físico é a soma deste mesmo deslocamento ao endereço inicial do frame 2048, ou seja, 2053. 10. Um sistema operacional implementa gerência de memória virtual por paginação. Considere endereços virtuais com 16 bits, referenciados por um mesmo processo durante sua execução e sua tabela de páginas abaixo com no máximo 256 entradas, sendo que estão representadas apenas as páginas presentes na memória real. Indique para cada endereço virtual a seguir a 3 Disciplina: Sistemas Operacionais Professor(a): Erasmo Evangelista Aluno(a): Rodolfo Lima, Eduardo Sales Matrícula: 009360, 101275 página virtual em que o endereço se encontra, o respectivo deslocamento e se a página se encontra na memória principal neste momento. • 30710 Página virtual 1, deslocamento 51 e está na memória. • 204910 Página virtual 8, deslocamento 1 e não está na memória. • 230410 Página virtual 9, deslocamento 0 e está na memória. • 102710 Página virtual 5, deslocamento 3 e está na memória. Página Endereço Físico 0 8 Kb 1 4 Kb 2 24 Kb 3 0 Kb 4 16 Kb 5 12 Kb 9 20 Kb 11 28 Kb 11. Um sistema operacional implementa gerência de memória virtual por paginação, com molduras de 2Kb. A partir da tabela abaixo, que representa o mapeamento de páginas de um processo em um determinado instante de tempo, responda: Página Bit de Presença Moldura 0 Sim 20 1 Sim 40 2 Sim 100 3 Sim 10 4 Não 50 5 Não 70 6 Sim 1000 • Qual o endereço físico de uma variável que ocupa o último byte da página 3? Página 3 está mapeada no frame 10 que é o 11° frame da memória principal. Endereço físico: (11 x 2K) -1= 22.527 • Qual o endereço físico de uma variável que ocupe o primeiro byte da página 2? Página 2 está mapeada no frame 100 que é o 101° frame da memória principal. Endereço físico: (100 x 2K) = 204.800 4 Disciplina: Sistemas Operacionais Professor(a): Erasmo Evangelista Aluno(a): Rodolfo Lima, Eduardo Sales Matrícula: 009360, 101275 • Qual o endereço físico de uma variável que tenha deslocamento 10 na página 3? Página 3 está mapeada no frame 10 que é o 11° frame da memória principal. O primeiro endereço da página 3 é (10x2K) = 20.480 somando ao deslocamento 10 = 20.490 • Quais páginas do processo estarão na memória? 0, 1, 2, 3 e 6 12. Uma memória virtual possui páginas de 1024 endereços, existem 8 páginas virtuais e 4096 bytes de memória real. A tabela de páginas de um processo está descrita abaixo, sendo que o asterisco indica que a página não está na memória principal: • Faça a lista/faixa de todos os endereços virtuais que irão causar page fault. Pag. 2 (2048 / 3071), pag. 3 (3072 / 4095) e pag. 5 (5120 / 6143) • Indique o endereço real correspondente aos seguintes endereços virtuais: 0, 1023, 1024, 6500 e 3728. End. Virtual 0 (PV 0 / Deslocamento 0) - End. Real = 3072 + 0 = 3072 End. Virtual 1023 (PV 0 / Deslocamento 1023) - End. Real = 3072 + 1023 = 4095 End. Virtual 1024 (PV 1 / Deslocamento 0) - End. Real = 1024 + 0 = 1024 End. Virtual 6500 (PV 6 / Deslocamento 356) - End. Real = 0 + 356 = 356 End. Virtual 3728 (PV 3 / Deslocamento 656) - Page Fault Página Virtual Página Real 0 3 1 1 2 * 3 * 4 2 5 * 13. Por que existe a necessidade de uma política de substituição de páginas? Em algumas situações, quando um processo atinge o seu limite de alocação de frames de necessita alocar novas páginas na memória principal , o sistema operacional deve selecionar, dentre as diversas páginas alocadas, qual deverá ser liberada. Este mecanismo é chamado de politica de substituição de páginas. Uma página real, quando liberada por um processo, está livre para ser utilizada por qualquer outro processo. A partir dessa situação, qualquer estrategia de substituição de página deve considerar se uma página foi ou não modificada antes de liberá la; caso contrário, os dados armazenados na página podem ser perdidos. No caso de páginas contendo código executável. Que não sofrem alterações, não existe essa preocupação, pois exite uma cópia do código no arquivo executável em disco. As páginas modificáveis, que armazenam variáveis e estruturas de dados, podem sofrer alterações. Neste caso, o sistema deverá gravá-la na memória secundária antes do descarte, preservando seu conteúdo para uso em futuras referências. Este mecanismo é conhecido como page out. Com este propósito, o sistema mantém um arquivo de paginação (page file) onde todas as páginas modificadas e descartadas são armazenadas. Sempre que uma página modificada for novamente referenciada, ocorrerá uma page in, carregando-a para a memória principal a partir do arquivo de paginação. 5 Disciplina: Sistemas Operacionais Professor(a): Erasmo Evangelista Aluno(a): Rodolfo Lima, Eduardo Sales Matrícula: 009360, 101275 O sistema operacional consegue identificar as páginas modificadas através de um bit que existe em cada entrada da tabela de página, chamado bit de modificação (dirty bit ou modify bit). Sempre que uma página sofre uma alteração, o valor do bit de modificação é alterado, indicando que a página foi modificada. Na política de substituição de páginas pode ser classificada conforme seu escopo, ou seja, dentre os processos residentes na memória principal quais são candidatos a ter páginas realocadas. Em função desse escopo, a política de substituição pode ser pode ser definida como local ou global. 14. Para que serve o bit de modificação nas tabelas de páginas e segmentos? Para indicar se a página ou segmento foi modificado desde o momento em que foi carregado pela última vez na memória principal. 15. Como o princípio da localidade viabiliza a implementação da gerência de memória virtual por paginação? O princípio da localidade é fundamental para qualquer sistema que implemente a gerência de memória virtual, pois reduz a ocorrência de page/segments faults e, consequentemente, operações de E/S. 16. Descreva os algoritmos de substituição de páginas FIFO e LRU, apresentando vantagens e desvantagens. No algoritmo FIFO, a página que primeiro foi utilizada será a primeira a ser escolhida, ou seja, o algoritmo seleciona a página que está há mais tempo na memória principal. O algoritmo pode ser implementado associando-se a cada página o momento em que foi carregada para a memória ou utilizando-se uma estrutura de fila, onde as páginas mais antigas estão no início e as mais recentes no final. Parece razoável pensar que uma página que estejam há mais tempo na memória seja justamente aquela que deva ser selecionada, porém isto nem sempre é verdadeiro. No caso de uma página que contém dados, o fator tempo torna-se irrelevante e o sistema tem que referenciar a mesma página diversas vezes ao longo do processamento. O algoritmo FIFO é raramente implementado sem algum outro mecanismo que minimize o problema da seleção de páginas antigas que são constantemente referenciadas. O algoritmo LRU seleciona a página na memória principal que está há mais tempo sem ser referenciada. Se considerarmos o princípio da localidade, uma página que não foi utilizada recentemente provavelmente não será referenciada novamente em um futuro próximo. Para implementar esse algoritmo, é necessário que cada página tenha associada o momento do último acesso, que deve ser atualizado a cada referência aum frame. Quando for necessário substituir uma página, o sistema fará uma busca por um frame que esteja há mais tempo sem ser referenciado. Outra maneira de implementar o LRU seria através de uma lista encadeada, onde todas as páginas estariam ordenadas pelo momento da última referência. Neste caso, cada acesso à memória exigiria um acesso à lista. 17. Considere um sistema com memória virtual por paginação com endereço virtual com 24 bits e página com 2048 endereços. Na tabela de páginas abaixo, de um processo em determinado 6 Disciplina: Sistemas Operacionais Professor(a): Erasmo Evangelista Aluno(a): Rodolfo Lima, Eduardo Sales Matrícula: 009360, 101275 instante de tempo, o bit de validade 1 indica página na memória principal e bit de modificação 1 indica que a página sofreu alteração. Página BV BM End. do Frame 0 1 1 30720 1 1 0 0 2 1 1 10240 3 0 1 ******** 4 0 0 ******** 5 1 0 6144 • Quantos bits possui o campo deslocamento do endereço virtual? 11 bits. • Qual o número máximo de entradas que a tabela de páginas pode ter? 224 / 211 = 213 • Qual o endereço físico que ocupa o último endereço da página 2? 10.240 + 2.047 = 12.287 • Qual o endereço físico traduzido do endereço virtual 00080 A16 ? 00080 A16 = 2058, página virtual 1, deslocamento 100 e endereço físico igual a 100. • Caso ocorra um page fault e uma das páginas do processo deva ser descartada, quais páginas poderiam sofrer page out? Páginas 0 e 2 pois estão na memória principal e possuem BM=1. 18. Considere um sistema de memória virtual que implemente paginação, onde o limite de frames por processo é igual a três. Descreva para os itens abaixo, onde é apresentada uma sequência de referências a páginas pelo processo, o número total de page fault para as estratégias de realocação de páginas FIFO e LRU. Indique qual a mais eficaz para cada item. • 1 / 2 / 3 / 1 / 4 / 2 / 5 / 3 / 4 / 3 FIFO = TOTAL = 5 1 2 3 1 4 2 5 3 4 3 PF PF PF - PF (Sai 1) - PF (Sai 2) - - - (MELHOR POLÍTICA) LRU = TOTAL PF = 8 1 2 3 1 4 2 5 3 4 3 PF PF PF - PF(Sai 2) PF(Sai 3) PF (Sai 1) PF PF - • 1 / 2 / 3 / 1 / 4 / 1 / 3 / 2 / 3 / 3 7 Disciplina: Sistemas Operacionais Professor(a): Erasmo Evangelista Aluno(a): Rodolfo Lima, Eduardo Sales Matrícula: 009360, 101275 FIFO = TOTAL = 7 1 2 3 1 4 1 3 2 3 3 PF PF PF - PF (Sai 1) PF (Sai 1) - PF (Sai 3) PF (Sai 4) - LRU = TOTAL PF = 5 1 2 3 1 4 1 3 2 3 3 PF PF PF - PF (Sai 2) - - PF (Sai 4) - - (MELHOR POLÍTICA) 8
Compartilhar