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

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

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

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

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

Espaço de Endereçamento

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

GERENCIAMENTO DE PROCESSOS

Organização de um Sistema Operativo

Sistemas Operativos Cap. VII Gestão Memória

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

William Stallings Arquitetura e Organização de Computadores 8 a Edição

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

Sistemas Operacionais Aula 16 Memória Virtual

Segmentação de Memória

Sumário. Sistemas Operativos 1

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

Organização e Arquitetura de Computadores I

Memória virtual. Sistemas Segmentados

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

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

Gerência de memória III

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

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

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

Sistemas Operacionais

Sistemas Operacionais Memória Virtual

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

AULA 14 - Memória Virtual

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

Espaço de Endereçamento

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.

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

UNIX Gerência de Memória

Fundamentos de Sistemas Operacionais

SSC0640 Sistemas Operacionais I

Gerenciamento de Memória

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

Gerenciamento de Memória

Gerenciamento de Memória

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

Gestão de Memória. mecanismos de gestão de memória protecção da memória algoritmos de gestão de memória. P. Ferreira/J. A. Marques - INESC/IST 01/02 1

Infra-Estrutura de Software

Sistemas Opera r cionais Gerência de Memória

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

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

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

Gestão de Memória em Arquitecturas RISC

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

Administração de Memória

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

Paginação e Segmentação. Memória Principal

LISTA DE EXERCÍCIOS 02

Arquitetura de Sistemas Operacionais

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

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

Sistemas Operacionais

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

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

Gerenciamento de memória Memória Virtual

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

Transcrição:

Gestão de memória - Memory Management Unit (MMU) A distinção entre espaço de edereçamento virtual e espaço de endereçamento físico é fundamental na eficiente gestão do recurso memória física (RAM) por parte dos sistemas operativos. Há que atender nomeadamente a: protecção partilha memória virtual Criar a ilusão que cada processo tem disponível memória física para todo todo o seu espaço de endereçamento A ilusão é conseguida criando uma extensão em disco da memória disponível. Conseguir executar o maior de número de programas possível mantendo uma celeridade de execução global satisfatória (evitar trashing). A concretização destes objectivos com um misto de mecanismos hardware e políticas e algoritmos implementados pelo SO. Nesta primeira parte iremos estudar os mecanismo hardware de suporte, a chamada MMU. 13-03-2015 Sistemas Operativos 1

Arquitecturas de MMU Suporte hardware à construção de espaços de endereçamento virtual Arquitectura Segmentada Arquitectura Paginada Arquitectura Segmentada/Paginada Memória física Espaço de endereça mento virtual MMU 13-03-2015 Sistemas Operativos 2

Arquitectura Segmentada (Segmentação) Endereço Virtual Segmentado RAM S n-1 Selector S 0 O n-1 Offset O 0 Tabela de Descritores de segmento + Endereço Físico Segmento Físico Registo interno, alterável por instrução privilegiada, que indica o endereço físico da tabela de segmentos Limite Permissões A, M, P, R/W,E Endereço Base R/W r/w or r/o E - executable P- present A- accessed M- modified 13-03-2015 Sistemas Operativos 3

Visão aplicacional de arquitectura segmentada Na arquitectura segmentada os segmentos são visíveis às aplicações e resultam de um modelo de programação orientada à organização do código e dados em módulos, ocupando segmentos distintos. Daqui resultam mecanismo de ponteiros necessariamente mais sofisticados: Ex: necessidade de ponteiros dentro do mesmo segmento, que apenas necessitam de offset e ponteiros para segmentos externos, que têm de incluir selector e offset. Segmentos aplicacionais dentro de um processo.o espaço virtual é segmentado Memória Segmentos Físcos (SF) MMU Segmentada SFN SF1 Espaço livre Espaço ocupado 13-03-2015 Sistemas Operativos 4

Características da Segmentação Vantagens Mapeamento simples o que reduz a complexidade do hardware. A associação de uma cache de segmentos em uso evita o acesso constante à tabela de descritores. Facilita a recolocação de código e dados. Facilita a criação de regiões de memória partilhada entre processos. Desvantagens Modelo de ponteiros complexo. Gestão mais complexa da memória disponível. O facto dos blocos a gerir terem dimensões variáveis gera problemas já vistos na implementação de heaps, nomeadamente a fragmentação externa. Implementação de memória virtual pouco eficiente, devido ao tempo dispendido em escritas/leituras do disco. 13-03-2015 Sistemas Operativos 5

Arquitectura Paginada (Paginação) A N Endereço virtual linear Número da Página Offset A 0 RAM (page frames) Tabela de Páginas Índice da PTE Registo interno que indica o endereço físico da tabela de páginas Page Table Entry Flags Page Frame Number Endereço Base da Page Frame Page frame 13-03-2015 Sistemas Operativos 6

Visão aplicacional de arquitectura paginada Na arquitectura paginada as páginas são transparentes às aplicações: O espaço de endereçamento que as aplicações vêm é sempre linear, tal como o espaço de endereçamento físico. A organização lógica nada tem a ver com a organização física (ex: uma instrução ou uma variável global podem começar no final de uma página e terminar na página seguinte ocupando endereços físicos não adjacentes. Páginas lógicas e páginas físicas têm sempre a mesma dimensão. O espaço virtual é linear, dividido, de forma transparente, em páginas lógicas (ou virtuais), de dimensão constante Memória física MMU Paginada Espaço livre Espaço ocupado O tamanho das pág físicas (page frames) é igual ao das páginas virtuais 13-03-2015 Sistemas Operativos 7

Arquitectura Paginada (exemplo para x86) tabela de páginas de 1º nível (page directory) 1023 1023 tabelas de páginas de 2º nível Memória física (page frames) Flags Page Frame Number 0 Flags Page Frame Number 0 Page Frame CR3 31 22 21 12 11 0 index 1 index 2 offset Endereço virtual linear 13-03-2015 Sistemas Operativos 8

Entrada de tabela de páginas PTE (Page Table Entry) (exemplo para i386) 31 12 11 8 0 20 bits mais significativos do endereço da page frame Available S R 0 0 D A 0 0 / / P U W P Present (indica que a página está associada a uma page frame) R/W Read/Write (indica se a página pode ser modificada) S/U Supervisor/User (indique que a página pode ser usada em user mode) 0 bits reservados (já utilizados em versões mais recentes do CPU) Bits alterados automaticamente pela MMU: A Acessed (indica que a página for acedida) D Dirty (indica que a página foi modificada Available Disponíveis para uso pelo Sistema Operativo 13-03-2015 Sistemas Operativos 9

Arquitectura Segmentada/Paginada (exemplo para x86) Endereço Virtual Segmentado 15 Selector 0 31 Tabela de Descritores (GDT,LDT) Offset 0 1023 RAM (page frames) Descritor de Segmento Endereço Base + 0 PTE 1023 PTE Page frame 0 31 22 21 12 11 0 Endereço virtual linear Offset CR3 13-03-2015 Sistemas Operativos 10

Exercício Considere um processador com endereços virtuais de 36 bits que utiliza uma estrutura de paginação de dois níveis. Os endereços virtuais são divididos em: 11 bits para a diretoria de páginas e 11 bits para as tabelas de páginas de 2º nível. Sabendo que as tabelas de páginas ocupam sempre uma página, indique: qual a dimensão das tabelas de páginas e de cada PTE? quantas páginas existem no espaço de endereçamento virtual? 13-03-2015 Sistemas Operativos 11

Variantes em CPU s modernos da família x86 Physical Address Extensions (PAE) 40 Page Frame Base PTEs passaram a 64 bits devido ao aumento de bits na PTE para especificar a page frame 13-03-2015 Sistemas Operativos 12

Paginação na arquitectura x64 40 PTEs passaram a 64 bits devido ao aumento de bits na PTE para especificar a page frame 13-03-2015 Sistemas Operativos 13

Paginação A necessidade da cache TLB (Translation Lookaside Buffer) O que fazer à TLB na comutação de processos? Retirado do livro Operating Systems de William Stallings, 6ª Edição 13-03-2015 Sistemas Operativos 14

Cache (de PTE s e de dados) - overall system 13-03-2015 Sistemas Operativos 15

Inverted Page tables Process Id Estruturas globais e não por cada processo Retirado do livro Operating Systems de William Stallings, 6ª Edição 13-03-2015 Sistemas Operativos 16

Objectivos de aprendizagem Compreender e enunciar as principais características das arquitecturas segmentada e paginada. Identificar vantagens/desvantagens de cada um dos modelos. Nas arquitecturas paginadas: explicar a necessidade de existência de arquitecturas multi-nível explicar a necessidade da cache TLB sintetizar características da arquitectura (dimensões de PTE, de página (lógica e física), de espaços de endereçamento virtual e memória física, número de níveis, etc.), a partir de informações parcelares sobre a arquitectura. Enunciar e compreender as flags típicas presentes num PTE justificar as dimensões típicas das páginas nas arquitecturas actuais. 13-03-2015 Sistemas Operativos 17

Bibliografia Stallings, Operating Systems, 6ª Ed. Cap. 8, Virtual Memory Secção 8.1, Hardware and Control Structures Solomon,Russinovitch- Windows Internal, 5ªEd Cap. 9, Memory Management Secção 9.6, Address Translation 13-03-2015 Sistemas Operativos 18