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

Documentos relacionados
Arquitectura de Computadores (ACom)

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

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

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

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

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

Gerenciamento de Memória

Memória virtual. Sistemas Segmentados

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

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

Arquitectura de Computadores

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

Arquitectura de Computadores

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

Gerência de memória II

Arquitectura de Computadores (ACom)

AULA 14 - Memória Virtual

Gerência de memória III

Sistemas Operativos Cap. VII Gestão Memória

Gerenciamento de Memória

Arquitectura de Computadores (ACom)

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.

Segmentação de Memória

Espaço de Endereçamento

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

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

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

Sistemas Operacionais

Sistemas de Memória III

Gerenciamento de memória

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

Capítulo 6 Gerência de Memória 103

Sistemas Opera r cionais Gerência de Memória

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

SSC0640 Sistemas Operacionais I

Gerenciamento de Memória

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

EA075 Memória virtual

Capítulo 8: Gestão de Memória

Sistemas Operacionais. Rômulo Silva de Oliveira Alexandre da Silva Carissimi Simão Sirineo Toscani

SSC0640 Sistemas Operacionais I

Gerenciamento de Memória

Sistemas Operacionais

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

Memória virtual. Pedro Cruz. EEL770 Sistemas Operacionais

Fundamentos de Sistemas Operacionais

Sistemas Operacionais Aula 12: Gerência de Memória. Ezequiel R. Zorzal

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

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

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

Memória Virtual. MAC Arquitetura de Computadores Prof. Siang Wun Song. Baseado em W. Stallings Computer Organization and Architecture

Sistemas de Operação / Fernando Silva / Departamento 1 de Ciência de Computadores 6.1

Arquitetura e Organização de Computadores

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

GERENCIAMENTO DE MEMÓRIA

Infra-Estrutura de Software IF677

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

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

GERENCIAMENTO DE PROCESSOS

Aula 14. Memória Virtual. 1.1 Linha evolucionária 1.2 O que é 1.3 Implementação 1.4 Problemas. Universidade Federal de Minas Gerais

Sistemas Operacionais

Memória para CAD. Aleardo Manacero Jr.

Sistemas Operacionais: Memória Virtual

Administração de Memória

Gerência de Memória. Gerência de memória. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos. Memória: UCP. Unidade de controle

Capítulo 4 Gerenciamento de Memória

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

Organização de um Sistema Operativo

Sistemas Operacionais Aula 16 Memória Virtual

Organização e Arquitetura de Computadores I

Gerência de Memória Memória Virtual e Paginação

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

Espaço de Endereçamento

Sistemas Operacionais. Gerenciamento de Memória

Arquitetura de Sistemas Operacionais

Swapping. Desvantagem:

Aula 06. Slots para Memórias

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

13 de Maio de Aula 17

Organização e Arquitetura de Computadores

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

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

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

LISTA DE EXERCICIOS 2

Sistemas Operativos 7ª parte - Gestão de Memória

Arquitectura de Computadores

Organização e Arquitetura de Computadores I

INE5412 Sistemas Operacionais I

Sistemas Operacionais

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar

SISTEMAS OPERACIONAIS. 2ª. Lista de Exercícios Parte 2

7 Mecanismos de gestão de memória. Prof. Ricardo Silva

Fundamentos de Sistemas Operacionais

Módulo 3 - Estrutura e configuração de Sistemas Operativos monoposto

Arquitetura e Organização de Computadores

Sistemas de Computação

Transcrição:

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

Paginação Divide-se a memória física em pequenos blocos de tamanho fixo chamados de páginas físicas (ou frames) o tamanho é uma potência de 2 entre 52 bytes e 892 bytes. Divide-se o espaço de endereçamento lógico em blocos do mesmo tamanho chamados de páginas (ou páginas virtuais). A memória física de um processo não necessita de ser contígua atribui-se páginas de memória física ao processo onde quer que estas estejam disponíveis Não há fragmentação externa Há fragmentação interna (em média ½ página) Arquitectura de Computadores (28/29): Memória 562

Tabela de páginas MMU usa um tabela de páginas que traduz endereços virtuais do programa nos endereços físicos atribuídos O SO manterá informação sobre todas as frames livres e ocupadas Para executar um programa com n páginas, precisa de encontrar n frames livres e carregar lá o programa Gere, para cada programa, uma tabela de páginas que traduz endereços virtuais nos endereços físicos que lhe foram atribuídos Arquitectura de Computadores (28/29): Memória 563

Paginação: atribuição não contígua O processo B termina e inicia-se o processo D: 2 3 4 5 6 7 8 9 2 3 4 A. A. A.2 A.3 B. B. B.2 C. C. C.2 C.3 2 3 4 5 6 7 8 9 2 3 4 A. A. A.2 A.3 C. C. C.2 C.3 2 3 4 5 6 7 8 9 2 3 4 A. A. A.2 A.3 D. D. D.2 C. C. C.2 C.3 D.3 D.4 Arquitectura de Computadores (28/29): Memória 564

Gestão de memória física por páginas Transformação de endereços: A MMU converte endereços virtuais em endereços físicos através de um tabela gerida pelo SO (a tabela de páginas) Endereços virtuais : : Endereços físicos : : CPU P-: N-: Tabela de páginas Memória central Arquitectura de Computadores (28/29): Memória 565

Parâmetros Transformação de endereços P = 2 p = tamanho da página (usa p bits). N = 2 n = espaço virtual (endereço tem n bits) M = 2 m = espaço físico (endereço tem m bits) n p p Número de página virtual deslocamento Endereço virtual Note-se que os bits correspondentes ao deslocamento (dentro da página) Tabela de páginas não mudam durante a transformação m p p Número da página física deslocamento Endereço físico Arquitectura de Computadores (28/29): Memória 566

Suporte da tabela de páginas Onde se guarda a tabela de páginas de um processo? No caso do Pentium a tabela tem 2 2 entradas; se cada uma tiver 4 bytes, são 4 Mbytes! E há uma tabela de páginas por processo Não é tecnicamente viável guardar a tabela de páginas na MMU Solução: Guardar a tabela de páginas em memória central (RAM) Page-table base register (PTBR) base da tabela Page-table length register (PTLR) tamanho da tabela Arquitectura de Computadores (28/29): Memória 567

Suporte da tabela de páginas Endereço virtual: Página virtual Desloc. Endereço físico: Página física Desloc. RAM Interrupção < x Page table lengthregister Tamanho de uma entrada + Tabela de páginas Page table base register Arquitectura de Computadores (28/29): Memória 568

Suporte da tabela de páginas Neste esquema, cada acesso a dados ou código obriga a dois acessos à memória:.ler a tabela de páginas obtendo a página física 2.Ler/escrever o dado ou ler a instrução. O problema dos dois acessos à memória pode ser resolvido por hardware especial de consulta rápida chamado translation look-aside buffer (TLB) que se baseia numa memória associativa Funciona como uma cache da tabela de páginas Arquitectura de Computadores (28/29): Memória 569

TLB - Memória associativa Transformação de endereços: A A Se A está na memória associativa, TLB responde logo com o número da frame A MMU Senão está, obtém o número da frame da tabela de páginas na memória Arquitectura de Computadores (28/29): Memória 57

Tempo de acesso efectivo Pesquisa associativa = ε unidades de tempo Tempo de acesso à RAM é T unidades de tempo Hit rate (α) percentagem das vezes em que o número da frame está numa entrada do TLB Tempo de acesso efectivo (TAE) TAE = αε + ( α)(t + ε) + T tempo para obter o endereço real Nota: sem cache de memória Arquitectura de Computadores (28/29): Memória 57

Exemplo T de 5ns TLB de 5ns e supondo um hit-rate de 95% αε + ( α)(t + ε) + T =.95x5 +.5x55 + 5 = 57.5ns Considerando a cache de memória.? αε + ( α)(t + ε) + Tc Tc: Tempo médio tendo em conta a cache Supondo Tc=.9x5+.x5=9.5ns.95x5 +.5x55 + 9.5 = 7ns Arquitectura de Computadores (28/29): Memória 572

Memória virtual A separação de espaços permite que o programa use um espaço virtual: Endereços independentes da localização física do programa Cada programa tem o seu espaço de endereços ( etc ) Pode usar endereços que não existem na memória física Só ocupa na memória física o espaço realmente necessário Não precisa de ter tudo carregado na memória física carrega só as páginas usadas Espaço virtual pode ser maior que o físico (real) A arquitectura está limitada pela memória virtual não pela física possibilidade de expansão Permite partilha de partes do espaço de endereçamento entre processos Arquitectura de Computadores (28/29): Memória 573

Paginação a pedido VM pode ser suportada através de paginação a pedido Todas as páginas virtuais da imagem do processo estão em disco, chamado disco de paginação ou disco de swap As páginas só vêm para memória central (RAM) quando são referenciadas, i.e. quando há um endereço virtual emitido pelo CPU correspondente a essa página virtual Procura-se manter as páginas mais usadas em memória real Working Set É completamente transparente para o utilizador/programador Arquitectura de Computadores (28/29): Memória 574

Motivações para a memória virtual Simplificar a gestão de memória Múltiplos processos residem em memória central cada um com o seu próprio espaço de endereçamento cada um tem a sua tabela de páginas Fornece protecção só o SO pode alterar as tabelas de páginas Só o código e dados activos (working set) é que estão em RAM; mais RAM pode ser atribuída ao programa se necessário Usar a RAM como Cache para o Disco A soma dos espaços de endereçamento dos vários processos pode exceder o tamanho da memória física O espaço de endereçamento de um processo pode exceder a dimensão da memória física Arquitectura de Computadores (28/29): Memória 575

Tabela de páginas Arquitectura de Computadores (28/29): Memória 576

Tabela de páginas Número de página virtual Memória física resident Tabela de páginas (em memória) indica qual a página física ou o endereço em disco Armazenamento em disco (partição dedicada ou ficheiro de sistema) Arquitectura de Computadores (28/29): Memória 577

Falta de página (Page Fault) A primeira referência a uma página P provoca uma excepção (page fault) e o SO intervém SO olha para a tabela de páginas para decidir se é: Referência inválida aborta o programa Obtém uma frame (página física) vazia F Se a página está em disco: Carrega a página nessa frame Actualiza a tabela de páginas: Tab_paginas[P].frame = F Tab_paginas[P].residente = Retoma a execução da instrução que provocou a excepção F P Arquitectura de Computadores (28/29): Memória 578

Hardware/Software na paginação a pedido Hardware: trata das operações mais críticas: Obter o endereço real a cada acesso Software: o SO trata os casos excepcionais e que exigem politicas mais complicadas: Caso a página referenciada não esteja em memória o SO avalia qual dos casos seguintes se trata: Referência inválida abortar a execução do programa Página em disco é preciso trazer a página virtual para RAM O SO gere a memória, que páginas ocupadas por que programas Arquitectura de Computadores (28/29): Memória 579

Exemplo de arquitectura com paginação Características duma arquitectura (ISA) 6 bits de endereços (virtuais e reais) páginas de 2KBytes Endereços: endereço virtual 6bits espaço de 2 6 = 64K supondo uma RAM instalada 32KBytes, então o espaço real está limitado a esse valor Endereços de 6 bits, páginas de 2KBytes (bits): Espaço de endereços tem 64K/2K = 32 páginas Na realidade a RAM tem 32K/2K = 6 páginas Arquitectura de Computadores (28/29): Memória 58

Interpretação dos endereços Endereços de 6 bits, páginas de 2KBytes (bits) RAM instalada de 32KBytes 65535 5 bits bits Número de página deslocamento na página 2 2K 2 5 32 32767 6 páginas instaladas Espaço real instalado 32 páginas 2K Espaço Virtual Arquitectura de Computadores (28/29): Memória 58

65535 3 3 29 Tabela de páginas Tabela de páginas (32 entradas) válido residente dirty pág. física (5bits) 32767 5 4 3 2 3 2 3 3 Arquitectura de Computadores (28/29): Memória 582 3 2

65535 3 3 29 Exemplo de um programa pilha Tabela de páginas 2 3 4 5 válido residente dirty pág. física (5bits) 32767 5 4 3 SO 3 2 3 2 dados código 3 3 disco (memória secundária) Arquitectura de Computadores (28/29): Memória 583

65535 3 3 29 Exemplo de um programa pilha PC = fetch Mem[] válido residente pág. física (5bits) 2 3 4 5 dirty 249 32767 5 4 3 2 SO 3 2 3 2 dados código 3 3 Tabela de páginas disco (memória secundária) Arquitectura de Computadores (28/29): Memória 584

65535 3 3 29 Exemplo de um programa pilha 645 3 mov [645], 5 2 3 4 5 válido residente dirty pág. física (5bits) 2 4 4 28673 32767 5 4 3 2 SO 3 2 3 2 dados código 3 3 Tabela de páginas Arquitectura de Computadores (28/29): Memória 585 3 disco (memória secundária)

Resumo Mapear o espaço virtual de um programa em memória: Criar tabela de páginas Resolução de endereço Cache de endereços na TLB Carregamento dinâmico a pedido Tabela de páginas preenchida durante a execução Memória Virtual usando memória física e o disco Memória Física como cache do espaço virtual Arquitectura de Computadores (28/29): Memória 586

CPU com paginação e cache interna dados modo de endereço endereço endereçamento cálculo virtual cálculo do real do endereço real endereço efectivo (MMU) Cache L endereço real dados BUS interface TLB Arquitectura de Computadores (28/29): Memória 587

Segmentação vs. paginação Segmentação define porções lógicas de tamanho variável que são visíveis para o programador Exemplo: o segmento da pilha e do código No caso do IA-32 pode-se aceder a um endereço usando o SS ou CS como base Paginação é transparente para o programador. Consiste em dividir a memória e o espaço de endereçamento dos programas e porções do mesmo tamanho. Paginação é mais fácil de gerir pelo sistema Segmentação permite introduzir partilha e protecção de memória de uma forma simples Arquitectura de Computadores (28/29): Memória 588

Segmentação com paginação O programa é dividido em segmentos Cada segmento é dividido em páginas Com a sua tabela de páginas O programa tem então várias tabelas de páginas O endereço é dividido em 3 partes. Indica a tabela de páginas a utilizar: define o segmento 2. Número da página 3. Deslocamento Útil porque permite segmentação do ponto de vista do utilizador e paginação do ponto de vista do sistema Arquitectura de Computadores (28/29): Memória 589

Memória virtual no Intel Pentium 4 Páginas de 4KBytes Endereço de 32 bits 2 bits (página) + 2 bits (deslocamento) Tabela de páginas M entradas (cada 4 Bytes) TLB para acessos a dados de 64 entradas TLB para acessos a código de 64/28 entradas Também permite páginas de 4MBytes e segmentação com paginação Arquitectura de Computadores (28/29): Memória 59