Reserva de memória não-contígua significa que a memória atribuída a um objecto pode ser composta de bocados espalhados pela memória física.

Documentos relacionados
Memória. Gestão do espaço lógico Paginação Segmentação com paginação

Gerenciamento de memória

SSC0640 Sistemas Operacionais I

Sistemas operacionais P A G I N A Ç Ã O D E M E M Ó R I A

Gerência de Memória. Paginação

Sistemas Operacionais

Gerência de Memória. Endereçamento Virtual (1) Paginação. Endereçamento Virtual (2) Endereçamento Virtual (3)

Gestão de Memória. Espaço de Endereçamento

AULA Nº 11 SISTEMAS OPERACIONAIS. Técnicas de Memória Virtual

Arquitetura de Sistemas Operacionais

Sistemas Operacionais Gerenciamento de Memória. Carlos Ferraz Jorge Cavalcanti Fonsêca

Infra-Estrutura de Software IF677

Sistemas Operacionais

Gestão de Memória. Espaço de Endereçamento

Sistemas Operacionais. Prof. MSc. André Yoshimi Kusumoto

UFRJ IM - DCC. Sistemas Operacionais I. Unidade III Memória Primária. 29/04/2014 Prof. Valeria M. Bastos

Fundamentos de Sistemas Operacionais

Organização e Arquitetura de Computadores I

Organização de um Sistema Operativo

Administração de Memória

Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer Localidade

Divisão da lacuna em espaços na base 2: Eficiente quanto à velocidade e Ineficiente quanto à fragmentação.

Organização e Arquitetura de Computadores I

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar

Gestão de Memória. Algoritmos de Gestão de Memória

CURSO TÉCNICO EM INFORMÁTICA SISTEMAS OPERACIONAIS II MEMÓRIA VIRTUAL

Memoria. UNIVERSIDADE DA BEIRA INTERIOR Faculdade de Engenharia Departamento de Informática

Arquitectura de Computadores (ACom)

Capítulo 8: Memória Principal. Operating System Concepts 8 th Edition

Sistemas Operacionais Aula 16 Memória Virtual

Arquitectura de Computadores

Sistemas Operacionais Memória Virtual

Universidade Federal de Campina Grande Departamento de Sistemas e Computação Curso de Bacharelado em Ciência da Computação.

Segmentação de Memória

Sistemas de Memória III

Sistemas Operacionais. Prof. André Y. Kusumoto

Gerência de memória III

Gestão de memória - Memory Management Unit (MMU)

Sistemas Operacionais I Memória Virtual

Memória virtual. Pedro Cruz. EEL770 Sistemas Operacionais

Arquitectura de Computadores (ACom)

Sistemas Operacionais. - Gerência de Memória -

Gestão de memória - Memory Management Unit (MMU)

Infra-Estrutura de Software

Memória virtual. Sistemas de Computação

Memória para CAD. Aleardo Manacero Jr.

Gerenciamento de memória Memória Virtual

Infra-Estrutura de Software

Capítulo 6 Nível do Sistema Operacional

Sistemas Operacionais

Durante a evolução das arquiteturas de computadores e principalmente dos Sistemas Operacionais, muitas tecnologias tiveram que ser aprimoradas para

MEMÓRIA LÓGICA E FÍSICA (1)

Modelação de algoritmos de substituição de páginas Anomalia Belady

Memória Virtual. Ciclo 4 AT2. Prof. Hermes Senger

UFRJ IM - DCC. Sistemas Operacionais I. Unidade III Memória Virtual. 26/05/2014 Prof. Valeria M. Bastos

Capítulo 4 Gerenciamento de Memória

AULA 14 - Memória Virtual

Espaço de Endereçamento

Gerenciamento de Memória

Arquitectura de Computadores

Níveis de memória. Diferentes velocidades de acesso. Memória Cache. Memórias Auxiliar e Auxiliar-Backup

Memoria Virtual (parte 2) Algoritmos de substituicao (cont)

SSC0611 Arquitetura de Computadores

Arquitectura de Computadores

Gerenciamento de Memória

Gerência de memória II

Infra-Estrutura de Software

Sistemas de Informação. Sistemas Operacionais

Segmentação com paginação Intel 386. Esquema de tradução de endereço Intel 386

UFRJ IM - DCC. Sistemas Operacionais I. Unidade III Memória Virtual. Prof. Antonio Carlos Gay Thomé Prof. Aux. Simone Markenson Pech 1

Sistemas Operacionais

EA075 Memória virtual

Sistemas Opera r cionais Gerência de Memória

Algoritmos de Gestão de Memória

Fundamentos de Sistemas Operacionais

Hierarquia de Memória

Arquitectura de Computadores (ACom)

Arquitectura de Computadores (ACom)

ESTRATÉGIAS DE ALOCAÇÃO AULA 11 Sistemas Operacionais Gil Eduardo de Andrade

GERENCIAMENTO DE MEMÓRIA

Sistemas Operacionais: Memória Virtual

Arquitetura e Organização de Computadores 2. Organização Hierárquica da Memória. Uma afirmação antiga, mas perfeitamente atual

Gerência da Memória. Adão de Melo Neto

LISTA DE EXERCICIOS 2

Gerenciamento de Memória

Memória Cache. Walter Fetter Lages.

Gestão de Memória algoritmos e políticas

Organização e Arquitetura de Computadores

Sistemas de Computação. Gerenciamento de memória

Swapping. Desvantagem:

13 de Maio de Aula 17

Memórias cache: uma introdução

Sistemas de Memória. CES-25 Arquiteturas para Alto Desmpenho. Paulo André Castro

Sistemas Operativos Cap. VII Gestão Memória

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar

Algoritmos de Gestão de Memória

Transcrição:

Gestão de Memória Não-Contígua Reserva de memória não-contígua significa que a memória atribuída a um objecto pode ser composta de bocados espalhados pela memória física. Embora os endereços virtuais sejam contíguos, os endereços físicos não o são. Motivação: Resolver os problemas de fragmentação apresentados pelos métodos baseados em memória contígua. MNC:1 Paginação Divisão da memória física em quadros de tamanho fixo e constante Divisão da memória virtual em páginas A reserva de memória resume-se a encontrar um n o suficiente de quadros para suportar as páginas. Ex: Sistema com 16M - 24 bits e páginas de 4K 4096 Páginas Endereço Virtual = NumerodeP agina Offset {}}{ { }}{ 110110111011 }{{} 101010101010 }{{} 12bits 12bits MNC:2

Tradução de Endereços Page-Map Table (PMT) - Construída durante o carregamento do processo para estabelecer a relação entre os endereços virtuais e físicos. Exemplo de conversão de 0000 01000 02000 03000 LD A 0 0 3 4 5 0 0 1 2 3 0 1 2 3... PMT FFD 100 103 DE0... C DE0450h endereços virtuais, gerados pelo processo, em endereços físicos através da utilização de PMT. MNC:3 Reserva de Páginas A eficiência depende essencialmente da rapidez com que se consegue localizar páginas livres. Para facilitar a operação utilizam-se listas ligadas em vez de tabelas. Assumindo que os quadros livres estão distribuidas pela memória de forma aleatória. O número de entradas x da MMT que tem de ser pesquisadas para encontrar n quadros livres é x = n q (1) onde q é a probabilidade de um quadro estar disponível, que se relaciona com a quantidade de memória disponível u da seguinte forma. q = u 100 (2) MNC:4

Hardware de suporte à paginação As funções são essencialmente as de conservar a memória necessária para armazenar as tabelas de mapeamento e acelerar a tradução dos endereços virtuais em físicos. As PMTs tendem a ter um tamanho elevado, pois deverão ser suficientemente grandes para suportar o tamanho máximo do espaço de endereçamento de um processo. Ex: Sistema com 16M, com páginas de 256bytes, o tamanho das PMT deverá ser de 64K entradas. Sendo nestes sistema as entradas de 16 bits, o que implica o uso de 128K para armazenar a PMT. Dado que existe uma PMT por processo activo, o armazenamento de todas as PMT consome uma parte significante da memória. MNC:5 Como o espaço de um processo pode ser muito inferior ao máximo, não faz sentido ter tamanhos fixos para as PMTs. PMTLR - Page-Map-Table Limit Register PMTBR - Page-Map-Table Base Register Estes dois registos são guardados no PCB Mesmo com estes registos, a tradução de endereços introduz um acesso à memória adicional o que vai reduzir a largura de banda da memória disponível em 50%. Solução: Utilizar memória associativa de elevada velocidade para armazenar um subconjunto das entradas das PMTs. Esta memória é designada por Translation Lookaside Buffer (TLB), ou cache de mapeamento. MNC:6

Uso de TLB CPU Endereço Virtual N. Pagina PAGE IN CACHE? NAO Offset SIM TLB i j k l 600 c PMT < PMTLR? SIM + c NAO PMTBR FAULT MNC:7 Tempo Efectivo de Acesso Com TLB, o tempo de tradução passa a ser t eff = t traducao + t acesso (3) t traducao = h.t tlb + (1 h)(t tlb + t acesso = t tlb + (1 h).t acesso (4) em que h é hit ratio e t tlb é o tempo de resposta da TLB. Logo em sistemas com TLB. t eff = t tlb + (2 h).t acesso (5) MNC:8

Protecção A protecção pode ser conseguida utilizando bits de protecção ou chaves de acesso. Não permite isolar zonas do processo, pois não há separação de zonas de código, dados, pilha ou outras como acontece com a utilização da segmentação. Partilha A partilha é simples, pois pode-se facilmente mapear uma página no espaço de endereçamento de varios processos. MNC:9 Vantagens Reserva e libertação de páginas é muito simples Não há fragmentação externa Não requer compactação Desvantagens Overhead: PMT por processo Overhead: MMT por sistema Fragmentação de página, na última página de cada processo MNC:10

Memória Virtual Memória Virtual é um esquema de gestão de memória em que Apenas uma parte do espaço de endereçamemto dos processos é carregado em memória física. Permite a execução de processos parcialmente carregados A soma dos espaços virtuais dos vários processos pode exceder a memória física instalada Ex: O processador Vax suporta 4Giga Bytes de memória virtual, no entanto os modelos antigos apenas suportam 8Mega de memória física. A memória restante é mantida em memória secundária. MNC:11 Características Transparente para o programador. Dá a ilusão de existir muito mais memória instalada Vantajoso para o S.O. pois um processo pode ser carregado em memória mesmo que exista pouca memória disponível. Pode-se acelerar a execução de processos importantes, dando-lhes mais memória física. NOTA: A velocidade de execução com memória virtual é sempre menor ou igual do que sem memória virtual. MNC:12

Funcionamento Formalismo Considerando um espaço V e um espaço M em que V = {0, 1,, v 1} M = {0, 1,, m 1} O S.O faz o mapeamento f : V M (6) Sendo a função f(x) definida como r x V : f(x) = falha se r M : r = x se r M : r = x (7) MNC:13 OK, gostei do formalismo e agora? A função de mapeamento f : V M é suportada pela PMT. Como detectar a não existência de determinada página em memória física? Adicionando à PMT um bit de presença a cada entrada que indica se a página está presente ou não. E depois, se a página não estiver presente em memória física? Se não está em memória física RAM, teremos que a ir buscar ao disco (ao ficheiro de swap) ou outro. Mas para isso teremos que arranjar um quadro disponível para nele carregar a página. A localização da página em disco é feita com o auxílio de mais uma tabela - File Map Table (FMT). MNC:14

Interrupção de Instruções Consideremos a instrução seguinte DECBRZ R1,addr 1. Fetch e descodificação do opcode (lê M[PC]) 2. R1- -; 3. PC++; 4. if (R1==0) PC=PC=M[PC]; else PC++; Esta instrução implica duas referências a memória: leitura do opcode, leitura do endereço destino do salto. O que fazer se o endereço destino estiver numa página não presente em memória principal? MNC:15 Hipoteses desfazer e recomeçar continuar do ponto onde foi interrompida teste prévio das referências Outro exemplo: BLOCK MOVE ou BLOCK TRANSLATE Todas as hipoteses requerem que o processador possua suporte específico. Por exemplo o processador 68000 da Motorola não suportava a interrupção de instruções. Isto levou a que fosse reescrito o microcódigo e assim surgiu o 68010. MNC:16

Gestão de memória virtual Componentes 1 PMT por processo. Neste caso a PMT pode ser maior do que as utilizadas sem memória virtual. MMT + lista de quadros livres 1 FMT/processo para endereçar as páginas residentes em disco registos PMTBR e PMTLR TLB MNC:17 Pretendendo-se carregar em memória apenas uma parte de um processo é necessário definir um conjunto de políticas: Reserva: Que quantidade de memoria física reservar para cada processo activo? Carregamento: Que partes do processo carregar de memória secundária e quando devem ser carregados? Substituição: Quando é necessário trazer um item de memória secundária para memória principal e não existem páginas livres, quais os items a sofrer a acção de despejo? Colocação: Onde colocar um item novo? MNC:18

Padrões de comportamento dos programas Os padrões das referências a memória, durante a execução dos programas, são de extrema importância em sistema de memória virtual. No padrão acima é visivel a existência de localidade espacial e temporal. MNC:19 O processo que gera a falha de página é suspenso até existir memória disponível para carregar a página em falta. 1 página é retirada de memória principal para dar lugar aquela que falta. A primeira opção raramente é utilizada, a segunda implica 1. escolha da vítima 2. página (vítima) modificada? Não... Sim É necessário gravar o seu conteúdo É necessário a introdução de um bit para se saber se a página foi ou não modificada: dirty bit ou written into bit. MNC:20

Cadeias de Referência a Memória...,14489,1448B,14494,14496,A1F8,14497,14499,2638E,1449A,... Interessa apenas o número das páginas referenciadas, assumindo que utilizamos páginas de 4K temos..., 14, 14, 14, 14, A, 14, 14, 26, 14,... (8) Como apenas interessam as referências a páginas diferentes removemos as referências sucessivas à mesma página..., 14, A, 14, 26, 14,... (9) A cadeia de referências obtida é utilizada para analizar o comportamento dos algoritmos de substituição. MNC:21 Politicas de Substituição First-in-First-Out (FIFO) Least Recently Used (LRU) Optimal (OPT) Clock As politicas de substituição podem ser LOCAIS ou GLOBAIS. MNC:22

Políticas de Reserva Menos memória por processo menos page faults menor grau de multiprogramação Mais memória por processo mais page faults maior turnaround time Problema Com pouca memória e com um processador que efectue o reinício das instruções a instrução add @X,@Y pode levar à ocorrência de thrashing. Endereçamento indirecto: 8 referências a memória = 3 fetch opcode e dados + 2 endereços + 2 operandos + 1 resultado MNC:23 Paranchor Curve MNC:24

Frequência de Faltas de Página (PFF) O S.O. define um valor crítico P para a frequência crítica de faltas de página O S.O. mede o tempo virtual do processo e guarda o tempo da PF mais recente no PCB respectivo Quando ocorre uma falha de página: Se a última F.P. ocorreu há menos de T = 1/P, o processo está a operar acima do limiar PFF. É adicionada mais uma página ao conjunto. Caso contrário, o processo está abaixo do PFF, e um quadro ocupado por uma página cujo bit referenced não está a 1 é libertado para albergar a nova página O S.O. varre e põe a 0 os bits de todas as páginas residentes. As páginas que não acedidas desde o último varrimento são libertadas. MNC:25 Working Set Durante determinado periodo de tempo, um processo em execução, utiliza um subconjunto das suas páginas. Os padrões de referência a memória de um processo exibem uma grande correlação entre o passado e o futuro imediatos. A frequência com que cada página é acedida é uma função que varia lentamente com o tempo. Princípios do Working Set: 1. Um programa só deverá ser executado se o seu WS estiver em memória. 2. Uma página não deverá ser retirada de memória se esta pertence ao WS de um processo. MNC:26

Hardware de Suporte A Gestão de Memória requer: Capacidade de interromper as instruções e recomeçá-las Um conjunto de bits de estado por página associados comn o seu descritor. TLB para acelerar a tradução dos endereços (no caso da paginação). Bits utilizados na maioria das implementações: Presença, Dirty (written into), referenced. MNC:27 TLB Usar todas as entradas da TLB para o processo em execução ou para todo o sistema? A primeira opção implica o custo de carregar toda a TLB quando ha troca de processos e quando ocorrem interrupções. A outra opção requer TLBs multi-contexto. Isto implica que a cada entrada da TLB esteja associado o ID do processo. Escolha do tamanho das Páginas utilização da memória e custo eficiência do transporte das páginas MNC:28

Protecção e Partilha Mantêm-se as caracteristicas do sistema base (paginação ou segmentação). Quando há objectos partilhados estes deverão estar sempre em memória principal... Paginação / Segmentação Ambos os métodos apresentam vantagens e desvantagens, não havendo um que seja globalmente superior. Alguns sistemas utilizam combinações de segmentação e paginação. Uma abordagem comum é a de utilizar segmentação (visível para o utilizador) mas os segmentos são divididos em páginas. Nestes casos um endereço virtual terá 3 partes: número do segmento, número da página, offset na página. MNC:29 Segmentação e Paginação Combinados ENDEREÇO VIRTUAL SEG. PAGINA OFFSET + MEM NAO NAO <=LIMIT? SIM ACESSO AUTORIZADO SIM + <=SDTLR? SDTBR + PMT NAO BASE TAMANHO DIREITOS DE ACESSO MNC:30

Tradução Hierarquica de Endereços e MMUs PCB Endereço Virtual Nivel 1 Nivel 2 Offset + Nivel 1 de mapeamento + Tabelas do nivel 2 + Endereço Fisico MNC:31