Sistemas Operacionais Módulo 2 Gerência de Memória Virtual Prof. Maxwell Anderson www.maxwellanderson.com.br Agenda • Conceitos básicos • Espaço de endereçamento virtual • Memória virtual por paginação Maxwell Anderson 2 Conceitos básicos • Os esquemas vistos utilizando as técnicas de gerenciamento de memória são ineficientes. • O tamanho de um programa estava limitado à quantidade de memória disponível. • Os programadores eram obrigados a lidar com programas muito maiores que a memória disponível. • A solução era utilizar a técnica de overlay, que consistia em dividir o programa em módulos. Maxwell Anderson 3 Conceitos básicos Memória Principal 2 KB Sistema Operacional Programa 3 KB Módulo principal Módulo principal 3 KB 4 KB Área de overlay Módulo cadastramento Módulo impressão 2 KB 4 KB 1 KB Área livre Maxwell Anderson 4 Conceitos básicos • O overlay 0 seria o primeiro a ser executado; • Quando esse overlay terminasse, ele chamaria outro overlay, que seria carregado; • Os overlays eram mantidos em disco e carregados (ou removidos) dinamicamente da memória pelo S.O., à medida que se tornavam necessários. • A troca de overlays eram feitas pelo S.O., mas a divisão em módulos era feita pelo programador. Maxwell Anderson 5 Conceitos básicos • Memória Virtual é uma técnica sofisticada e poderosa de gerenciamento de memória, onde as memórias principal e secundária são combinadas. • O usuário tem a falsa impressão de existir uma memória muito maior que a capacidade real da memória principal. • O S.O. mantém as partes ativas na memória e o restante no disco. Exemplo: um programa de 16MB pode ser executado em uma máquina com apenas 4MB por meio de uma escolha sobre qual 4MB será mantido ativo na memória. Maxwell Anderson 6 Conceitos básicos • Possibilita a implementação do processamento multitarefa. • Permite um número maior de processos compartilhando a memória principal, já que apenas parte de cada processo será residente. • Consequentemente, isto leva a uma utilização mais eficiente do processador. • Minimiza o problema de fragmentação. Maxwell Anderson 7 Conceitos básicos • Esta técnica foi criada em 1960, no sistema Atlas, desenvolvido na Universidade de Manchester. • Depois, a IBM incorporou na família System/370 em 1972. • Hoje esta técnica é implementada na maioria dos Sistemas Operacionais, exceto em alguns SOs de supercomputadores. Maxwell Anderson 8 Paginação • A maioria dos sistemas operacionais com memória virtual utilizam uma técnica chamada paginação. • Ilustrando o espaço de endereçamento virtual: MOV REG, $1000 • Estes endereços são gerados pelos programas e são chamados endereços virtuais. • O conjunto de endereços virtuais constituem o espaço de endereçamento virtual. Maxwell Anderson 9 Espaço de endereçamento virtual • O conceito de memória virtual se aproxima muito da idéia de um vetor, das linguagens de programação. • O compilador se encarrega de gerar instruções que implementam o mecanismo de referência a um elemento do vetor. O programador não precisa se preocupar com isto. • 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. Maxwell Anderson 10 Memória virtual por paginação • A memória virtual por paginação é a técnica de gerência de memória onde o espaço de endereçamento virtual e o espaço de endereçamento real são divididos em blocos de mesmo tamanho chamado páginas. Maxwell Anderson 11 Memória virtual por paginação • O processador apenas executa instruções e referencia dados residentes no espaço de endereçamento real. • Existe um mecanismo chamado mapeamento que permite traduzir um endereço localizado no espaço virtual para um associado no espaço real. Maxwell Anderson 12 Memória virtual por paginação 60K-64K Espaço de endereçamento virtual 56K-60K 52K-56K Página virtual 48K-52K Esta relação é dada pela tabela de páginas 44K-48K 40K-44K 36K-40K 32K-36K Espaço de endereçamento físico 28K-32K 28K-32K 24K-28K 24K-28K 20K-24K 20K-24K 16K-20K 16K-20K 12K-16K 12K-16K 8K-12K 8K-12K 4K-8K 4K-8K 0K-4K 0K-4K Maxwell Anderson Moldura de página ou frame 13 Memória virtual por paginação Espaço de endereçamento virtual 60K-64K X 56K-60K X 52K-56K X 48K-52K X 44K-48K 7 40K-44K X 36K-40K 5 32K-36K X 28K-32K X 28K-32K 24K-28K X 24K-28K 20K-24K 3 20K-24K 16K-20K 4 16K-20K 12K-16K 0 12K-16K 8K-12K 6 8K-12K 4K-8K 1 4K-8K 0K-4K 2 0K-4K Página virtual Esta relação é dada pela tabela de páginas Espaço de endereçamento físico Maxwell Anderson Moldura de página ou frame 14 Memória virtual por paginação A CPU envia endereços virtuais à MMU MMU Unidade de Gerenciamento da Memória Barramento A MMU envia endereços físicos à memória Maxwell Anderson 15 Algoritmos de substituição de página • Ótimo • FIFO (First In, First Out) • LRU Maxwell Anderson 16 Algoritmos de substituição de página • Ótimo – Seleciona para substituição uma página que não será mais referenciada no futuro ou aquela que levará o maior intervalo de tempo para ser novamente utilizada; – Este algoritmo garantia as menores taxas de paginação para os processos; – Na prática é impossível de ser implementada, pois o sistema operacional não tem como conhecer o comportamento futuro das aplicações. Maxwell Anderson 17 Algoritmos de substituição de página • FIFO (First In, First Out) – A página que primeiro foi utilizada será a primeira a ser escolhida (a mais antiga); – Pode ser implementado associando-se a cada página o momento em que foi carregada para a memória (tempo) ou implementando-se uma estrutura de fila onde as páginas mais antigas estão no início e as mais novas no final; – No caso de uma página ser constantemente referenciada (páginas de dados, p.e.) o fator tempo torna-se irrelevante e o sistema tem que referenciar a página diversas vezes ao longo do processamento. Maxwell Anderson 18 Algoritmos de substituição de página • LRU (Least-Frequently-Used) – Seleciona a página na memória principal que está mais tempo sem ser referenciada; – Uma página que não foi recentemente utilizada provavelmente não será referenciada novamente em um futuro próximo; – Seria necessário que cada página tivesse a informação do momento do último acesso, que deve ser atualizado a cada referência a um frame; – Então, o sistema fará uma busca por um frame que esteja a mais tempo sem ser referenciado. Maxwell Anderson 19 Referência Bibliográfica [1] Machado, F. B.; Maia, L.P. Arquitetura de Sistemas Operacionais. 3ª edição. Rio de Janeiro: LTC, 2002. [2] Tanenbaum, A. Sistemas Operacionais Modernos. Maxwell Anderson 20