Sistemas Processadores e Periféricos Aula 9 - Revisão



Documentos relacionados
Organização e Arquitetura de Computadores

Infraestrutura de Hardware. Memória Virtual

Memória cache. Prof. Francisco Adelton

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

Memória Cache. Prof. Leonardo Barreto Campos 1

Diminui o gargalo existente entre processador e memória principal; 5 a 10 vezes mais rápidas que a memória principal; Ligada diretamente à MP;

Sistemas Operacionais

ARQUITETURA DE COMPUTADORES

Memória Virtual. Prof. Dr. José Luís Zem Prof. Dr. Renato Kraide Soffner Prof. Ms. Rossano Pablo Pinto

Sistemas Operacionais

Arquitetura de Computadores. Sistemas Operacionais IV

Notas da Aula 17 - Fundamentos de Sistemas Operacionais

Memória - Gerenciamento. Sistemas Operacionais - Professor Machado

Aula 3. Sistemas Operacionais. Prof: Carlos Eduardo de Carvalho Dantas

A memória é um recurso fundamental e de extrema importância para a operação de qualquer Sistema Computacional; A memória trata-se de uma grande

Sistemas de Informação. Sistemas Operacionais 4º Período

Disciplina: Sistemas Operacionais - CAFW-UFSM Professor: Roberto Franciscatto

CAPÍTULO 2 CARACTERÍSTICAS DE E/S E PORTA PARALELA

O hardware é a parte física do computador, como o processador, memória, placamãe, entre outras. Figura 2.1 Sistema Computacional Hardware

Estruturas do Sistema de Computação

Sistemas Operacionais. Prof. André Y. Kusumoto

Capítulo 4 Gerenciamento de Memória

BC Sistemas Operacionais Sistema de Arquivos (aula 10 Parte 2) Prof. Marcelo Z. do Nascimento

Gerenciamento de memória. Carlos Eduardo de Carvalho Dantas

Introdução a Informática. Prof.: Roberto Franciscatto

Componentes básicos de um sistema computacional. Cap. 1 (Stallings)

Sistemas Operacionais

Exercícios Gerência de Memória

Cap. 10 Gerência de Memória Virtual 1

Introdução. Principio de Localidade. Localidade temporal: Localidade Espacial:

Os textos nestas caixas foram adicionados pelo Prof. Joubert

Sistemas Operacionais

BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia

ARQUITETURA DE COMPUTADORES II

Análises Geração RI (representação intermediária) Código Intermediário

Sistemas Operacionais Gerência de Dispositivos

Gerenciamento de memória

Sistemas Operacionais

Arquitetura e Organização de Computadores

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira

Fundamentos de Sistemas Operacionais

SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA

Organização e Arquitetura de Computadores

Sistemas Operacionais Arquivos. Carlos Ferraz Jorge Cavalcanti Fonsêca

Exercícios Gerência de Memória

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Notas da Aula 15 - Fundamentos de Sistemas Operacionais

Capítulo 2 (Livro Texto*) - Notas de Aula - Parte II

CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM

Funções de um SO. Gerência de processos Gerência de memória Gerência de Arquivos Gerência de I/O Sistema de Proteção

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

Armazenamento Secundário. SCE-183 Algoritmos e Estruturas de Dados II

Gerência de Entrada/Saída

Sistemas Operacionais

Visão Geral de Sistemas Operacionais

Programação de Sistemas

Capítulo 4 Livro do Mário Monteiro Introdução Hierarquia de memória Memória Principal. Memória principal

Arquitetura de Computadores - Arquitetura RISC. por Helcio Wagner da Silva

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 10

Sistemas Operacionais. Prof. André Y. Kusumoto

Arquitetura de Computadores. Tipos de Instruções

Tecnologias de Construção de Memórias e Memórias RAM, entrelaçada e Virtual

Prof.: Roberto Franciscatto. Capítulo 1.1 Introdução

Sistemas Operativos I

Setores Trilhas. Espaço entre setores Espaço entre trilhas

Desenvolvimento de um Simulador de Gerenciamento de Memória

Estruturas de Armazenamento e Indexação. Rafael Lage Moreira Barbosa

Capítulo 8: Gerenciamento de Memória

Visão geral do sistema de armazenamento e hierarquia de memória

Fundamentos de Arquivos e Armazenamento Secundário

Arquitetura de Computadores I

Sistema de Arquivos EXT3

Estrutura de um Computador

Capacidade = 512 x 300 x x 2 x 5 = ,72 GB

Organização e Arquitetura de Computadores

Sistemas Operacionais: Sistema de Arquivos

3/9/2010. Ligação da UCP com o barramento do. sistema. As funções básicas dos registradores nos permitem classificá-los em duas categorias:

discos impressora CPU memória AULA 04 - Estruturas de Sistemas Computacionais Operação dos sistemas de computação Controlador de disco

Gerência do Sistema de Arquivos. Adão de Melo Neto

Memórias Prof. Galvez Gonçalves

Sistema de Arquivos. Ambientes Operacionais. Prof. Simão Sirineo Toscani

Sistemas Operacionais Processos e Threads

Sistemas Operacionais. Roteiro. Hardware. Marcos Laureano

Ministério da Educação Secretaria de Educação Profissional e Tecnológica Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Sul

MEMÓRIA. A memória do computador pode ser dividida em duas categorias:

Capítulo Sistemas de Memória Memória Virtual. Ch7b 1

Gerenciamento de memória

Organização de Computadores 1

MEMÓRIA. 0 e 1 únicos elementos do sistema de numeração de base 2

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Organização e Arquitetura de Computadores I

Visão Geral da Arquitetura de Computadores. Prof. Elthon Scariel Dias

Sistema de Memórias de Computadores

Capítulo 4. MARIE (Machine Architecture Really Intuitive and Easy)

Fundamentos de Sistemas Operacionais. Sistema de Arquivos. Prof. Edwar Saliba Júnior Março de Unidade Sistemas de Arquivos

ANHANGUERA EDUCACIONAL. Capítulo 2. Conceitos de Hardware e Software

AULA 13 - Gerência de Memória

Transcrição:

Sistemas Processadores e Periféricos Aula 9 - Revisão Prof. Frank Sill Torres DELT Escola de Engenharia UFMG Adaptado a partir dos Slides de Organização de Computadores 2006/02 do professor Leandro Galvão DCC/UFAM - galvao@dcc.ufam.edu.br e do Ricardo de Oliveira Duarte (UFMG) 1

Hierarquia de Memória Registradores Custo, Velocidade Memória Cache Memória Principal Memória Auxiliar Tempo de Acesso, Capacidade 2

Localidade Localidade temporal: Um item referenciado tende a ser referenciado novamente em um curto espaço de tempo Ex: loops Localidade espacial: Os itens próximos na memória a um item referenciado tendem a ser também referenciados Ex: matrizes e estruturas 3

Memória Cache Transferência de words Transferência de blocos CPU Cache Memória Principal 4

Memória Cache :: Terminologia Sejam dois níveis adjacentes na hierarquia de memória: Nível superior próximo à CPU Nível inferior longe da CPU Bloco menor unidade de dados transferidos de um nível inferior para a cache Hit ocorre quando o dado requisitado pelo processador se encontra na memória cache Miss ocorre quando o dado requisitado pelo processador não se encontra na memória cache, sendo necessário lê-lo do nível inferior 5

P1 Posicionamento do bloco :: Esquemas de endereçamento Set no. Block no. 01234567 Block no. 01234567 Block no. Cache Totalmente Associativa Mapeamento direto (12 % 8) = 4 Parc. associativa (12 % 4) = Set 0 0 0 1 1 2 3 2 4 5 3 6 7 Block no. 0123456789 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 2 0 2 1 2 2 2 3 2 4 2 5 2 6 2 7 2 8 2 9 3 0 3 1 Memory 6

P2 Identificação do bloco :: Mapeamento direto Os (n-m-2) bits restantes do endereço de memória são usados como tag bits em cada bloco da cache Os tag bits servem para identificar de que parte da memória superior veio o bloco copiado para a cache Endereço de memória 31 n-m-2 m 1 0 Tag Índice Word 7

P2 Identificação do bloco :: Associatividade cache associativa de conjunto de 1 via (mapeamento direto) Índice de bloco 0 1 2 3 4 5 6 7 Tag Dados cache associativa de conjunto de 2 vias Conjunto 0 1 2 3 Tag Dados Tag Dados 8

P3 Substituição do bloco :: Estratégias de seleção Aleatória o bloco a substituir é escolhido aleatoriamente Menos recentemente usado (LRU) substitui-se o bloco que não é usado há mais tempo Primeiro a entrar, primeiro a sair (FIFO) substituise o bloco mais antigo (ainda que tenha sido recentemente usado) 9

P4 Estratégia de gravação :: Escrita de dados Writethrough Write-back Processador atualizado ao mesmo tempo Processador atualizado na reposição de bloco Cache de dados Cache de dados Memória Memória 10

Sistemas, Processadores e Periféricos Memória Virtual (capítulo 7) Prof. Frank Sill Torres DELT Escola de Engenharia UFMG Adaptado a partir dos Slides de Organização de Computadores do professor 11 11 Leandro Galvão DCC/UFAM, e dos slides do Prof. Ricardo de Oliveira Duarte (DELT/UFMG)

Memória Virtual :: Introdução Memória Virtual é a técnica que dá ao programador a ilusão de poder acessar rapidamente um grande espaço de endereçamento Objetivos da técnica: Permitir que haja um meio seguro e eficiente de se compartilhar informações, armazenadas na memória, entre vários programas Minimizar os problemas causados aos programas pela existência de uma pequena quantidade de memória principal 12

Memória Virtual :: Introdução Os programas que compartilham a memória de determinada máquina mudam dinamicamente durante o processo de execução Cada programa deve ser compilado usando seu próprio espaço de endereçamento (ou seja, em uma região da memória acessível somente a esse programa) A técnica de memória virtual realiza a tradução do espaço de endereçamento de um programa para seus endereços reais 13

Memória Virtual :: Introdução A técnica de memória virtual permite que o tamanho de um único programa exceda a quantidade total de memória real disponível para sua execução A técnica de memória virtual gerencia automaticamente os seguintes dois níveis de hierarquia: memória principal (física) memória secundária Antigamente, os programas eram divididos em pedaços Os pedaços mutuamente exclusivos (overlays) eram identificados Carga/exclusão de overlays da memória era realizada sob controle do próprio programa 14

Memória Virtual :: Introdução A memória virtual faz com que a memória principal funcione como uma cache para memória secundária (discos magnéticos) Vantagens: Ilusão de ter mais memória física Realocação de programa Proteção entre processos Separação entre memória lógica e memória física: Memória Lógica: visão de um processo Memória Física: visão do processador 15

Memória Virtual Memória Cache Memória Virtual Página ou Segmento Memória cache Bloco Falta de página Miss (falha) Substituição de erros controlado pelo Sistema Operacional Substituição de erro controlada pelo hardware Tamanho determinado pelo tamanho do endereço do processador Independe do tamanho do endereço do processador Divide espaço do armazenamento secundário com sistema de arquivos Espaço totalmente utilizado como memória 16

Memória Virtual Memória Cache Parâmetro Cache L1 Memória virtual Tamanho do bloco (página) 16-128 bytes 4.096-65.536 bytes Tempo de acerto (hit) 1-3 ciclos 100-200 ciclos Penalidade de falha 8-200 ciclos 1 10 M ciclos (Acesso) (6-160 ciclos) 0,8 8 M ciclos (Transferência) (2-40 ciclos) 0,2 2 M ciclos Taxa de falha 0,1-10% 0,00001-0,001% Mapeamento de endereços 25-45 bits de endereço físico para 14-20 bits de endereço de cache 32-64 bits de endereços virtuais para 25-45 bits de endereços físicos

Memória Virtual :: Conceitos Página bloco de bytes de tamanho fixo Segmento bloco de bytes de tamanho variável Falta de página ocorre quando uma página acessada não está presente na memória principal Endereço físico (ou real) um endereço da memória principal Endereço virtual Tradução de endereço (ou mapeamento) endereço que corresponde a um local no espaço virtual processo de tradução de um endereço virtual para um endereço físico quando a memória principal é acessada

Memória Virtual :: Tradução de endereços Espaço de endereços do processo A Instruções Dados Pilha Memória física: Espaço de endereços do processo B Espaço de endereços do processo C 19

Memória Virtual :: Tradução de endereços Dá a ilusão de se ter uma quantidade de memória ilimitada à disposição 20

Memória Virtual :: Página Segmento A paginação utiliza blocos de tamanho fixo A segmentação utiliza blocos de tamanho variável Um segmento consiste de duas partes: Número de segmento Offset de segmento 21

Memória Virtual :: Página Segmento Por que utilizar segmentação? Suporte a métodos de proteção mais avançados Compartilhar um espaço de endereçamento Desvantagem: Divide o espaço de endereço em partes logicamente separadas, que precisam ser manipuladas como um endereço de duas partes 22

Memória Virtual :: Página Segmento A decisão de usar memória virtual paginada ou memória virtual segmentada afeta o desempenho da CPU Página Segmento Palavras por endereço Uma Duas (segmento e offset) Visível ao programador? Substituição de blocos Eficiência de uso de memória Eficiência de tráfego de disco Invisível ao programador de aplicação Trivial (todos os blocos são do mesmo tamanho) Fragmentação interna (porção não usada da página) Sim (ajuste do tamanho de página para balancear tempo de acesso e de transferência) Pode ser visível ao programador de aplicação Difícil (deve encontrar porções contínuas e sem uso da memória principal) Fragmentação externa (porções não usadas na memória principal) Nem sempre (pequenos segmentos podem transferir poucos bytes apenas)

Quatro Perguntas Básicas sobre a Hierarquia de Memória 1. Posicionamento da página: Onde a página deve ser colocada na memória principal? 2. Identificação da página: Como a página é encontrada na memória principal? 3. Substituição de página: Quais páginas serão trocadas em uma falta? 4. Estratégia de gravação: O que acontece em uma escrita de página? 24

P1. Posicionamento da página A penalidade de erro para a memória virtual é muito alta, pois envolve o acesso a um dispositivo de armazenamento magnético rotativo Em razão disso, para reduzir a frequência de faltas de páginas, os sistemas operacionais utilizam o esquema de posicionamento totalmente associativo 25

P2. Identificação da página A desvantagem da escolha do posicionamento totalmente associativo está em localizar uma entrada, já que ela pode estar em qualquer lugar da memória virtual Como o espaço ocupado pela memória virtual é maior que aquele ocupado pela memória cache, o tempo de busca aumenta substancialmente Para contornar essa desvantagem, utiliza-se uma tabela de páginas, uma estrutura que indexa as traduções de endereços virtuais para endereços físicos 26

P2. Identificação da página :: Tabela de Páginas A tabela de páginas está armazenada na memória principal É indexada com o número da página extraído do endereço virtual e contém o número da página física correspondente Como cada página virtual indexa uma entrada da tabela de páginas, nenhuma tag é necessária 27

P2. Identificação da página :: Tabela de Páginas Bit de validade Tabela de páginas 28

P2. Identificação da página :: Tabela de Páginas Para que mais um programa utilize alternadamente o processador, é necessário salvar seu estado: Registradores da CPU Contador de programa (PC) Tabela de páginas Em vez de se salvar a tabela de páginas inteira, o SO conserva apenas o registrador da tabela de páginas: Componente do HW de memória que aponta a posição inicial da tabela de páginas na memória principal Cada programa possui sua própria tabela de páginas 29

P2. Identificação da página :: Tamanho da Tabela de Páginas Considere: Espaço de endereçamento virtual: 48 bits Páginas de 4 kb 4 Bytes por entrada da tabela de páginas (18 bits + controle) Número de entradas da tabela de páginas: 2 48 = 236 212 Tamanho da tabela de páginas: 4 2 36 = 2 38 = 256 GB 30

P2. Identificação da página :: Tamanho da Tabela de Páginas Técnicas para reduzir tamanho da tabela de páginas: 1. Manter um registrador que limite o tamanho da tabela de páginas para um determinado processo 2. Usar o número da página física (em vez da virtual) como entrada da tabela e aplicar uma função de hashing para realizar a inversão 3. Utilizar múltiplos níveis de mapeamento 4. Permitir o paginamento da tabela de páginas 31

P3. Substituição de página :: Faltas de Páginas Bit de validade (residência) = 0 indica falta de página Nesse caso, o SO assume o controle, por meio do mecanismo de exceção O sistema operacional precisa: Encontrar a página faltante no nível hierárquico inferior (geralmente, no HD) Decidir em que lugar da memória principal deve ser colocada a página requisitada O endereço virtual não informa em que posição do HD está a página que gerou a falta de página 32

P3. Substituição de página :: Faltas de Páginas O SO cria espaço em disco para todas as páginas virtuais de um processo, quando da criação do processo Tal espaço é conhecido como área de swap Nesse momento, o SO também cria uma estrutura de dados para controlar onde cada página virtual está guardada no disco Tal estrutura pode ser: Parte da tabela de páginas, ou Estrutura auxiliar, indexada da mesma forma que a tabela de páginas 33

P3. Substituição de página Em uma memória totalmente associativa, todos os blocos são candidatos à substituição Estratégias para a substituição de blocos: Aleatória: os blocos candidatos à substituição são escolhidos ao acaso, possivelmente contando com algum auxílio de hardware Bloco menos usado recentemente (LRU): o bloco substituído é aquele menos utilizado recentemente 34

P4. Estratégia de gravação A escrita no disco consome de 1 a 10 milhões de ciclos de clock Esquema write-through não funciona para memória virtual Mesmo usando um buffer de escrita, este deveria ser muito maior que aquele utilizado em memórias cache, o que encareceria o hardware Esquema write-back é usado: Página é copiada para o disco no momento em que for substituída (nomenclatura: copy-back ) 35

Memória Virtual :: Exemplo Considere: Páginas de 32 (2 5 ) words Memória virtual de 256 (2 8 ) words: 8 páginas de 32 words Endereços de 8 bits Memória física de 128 (2 7 ) words: 4 páginas de 32 words Endereços de 7 bits Endereço Virtual

Memória Virtual :: Exemplo Montando uma tabela de páginas: 000 001 010 011 100 101 110 00 01 10 11 Página 000 001 010 011 100 101 110 111 Quadro 10 - - 00 01 - - 11 Bit de validade 1 0 0 1 1 0 0 1 111 37

Paginação sob demanda Pilha Pilha Pilha Pilha Dados Dados Dados Dados Código Código Código Código Memória Virtual 1 Memória Física Memória Virtual 2 Memória Física Memória Virtual 3 Memória Física... Memória Virtual N Memória Física

TLB Translation Lookaside Buffer Cada acesso à memória exige, na verdade, dois acessos à memória principal: Um para obter o endereço físico (consulta à tabela de páginas) Outro para buscar a informação Uma alternativa para melhorar o desempenho é lembrar das últimas conversões de endereços, baseando-se no princípio da localidade As traduções mais recentes são guardadas em uma memória cache especial: Translation lookaside buffer (TLB) 39

TLB Translation Lookaside Buffer A TLB é uma memória cache, de 16 a 512 entradas, acessada pelo número de página virtual Tradução de endereços sem TLB Tradução de endereços com TLB 40

TLB Translation Lookaside Buffer Cada entrada da TLB contém: Bit de referência Bit de modificação Bit de validade Tag Campo de dados (dirty-bit) monitora a escrita no esquema write-back (bit de uso) ajuda o SO a estimar as páginas usadas recentemente (LRU) guarda uma parte do endereço da página virtual guarda o endereço da página física correspondente 41

TLB Translation Lookaside Buffer Número de página virtual 1 1 0 1 1 1 1 1 1 1 1 0 1 0 0 0 1 0 1 Tag TLB Endereço de página física Memória Principal Endereços de página física ou de disco 2 Tabela de Páginas 1 1 1 1 0 0 1 0 0 1 0 1 0 0 0 1 0 1 1 0 1 0 0 0 1 1 1 1 1 1 0 0 0 1 1 1 3 Disco 42

Tratando Faltas de Página e Falhas na TLB Endereço virtual TLB falha Buscar pela página na tabela de páginas falta (bit de validade desligado)? acerto (bit de validade ligado) Tratar também a falta de página (além da falta no acesso à TLB) Criar entrada na TLB, colocando o n o. da página física que está na tabela de páginas

Tratando Faltas de Página e Falhas na TLB Falha na TLB pode ser tratada por SW ou por HW: Requer uma curta sequência de operações para copiar uma entrada válida da tabela de páginas da Mem. Princ. para a TLB O tratamento de faltas de página ou falhas na TLB requer uso do mecanismo de exceção para: Interromper o processo ativo Transferir o controle para o SO Retomar a execução do processo interrompido Falta de página geralmente é reconhecida durante o ciclo de clock usado para acessar a memória PC é salvo no registrador especial EPC, a fim de a execução ser retomada a partir da instrução seguinte 44

Integração da Memória Virtual, TLBs e Caches Dados não podem estar na memória cache a menos que estejam presentes na memória principal Quando o SO decide migrar uma página pouco usada para o disco, deve garantir: Remoção do conteúdo de qualquer página da cache Modificação das tabelas de páginas e da TLB de modo que uma tentativa de acessar dados da página antiga gere uma falta de página 45

Integração da Memória Virtual, TLBs e Caches CPU gera endereços virtuais Página Offset Não Use P como índice em uma tabela de páginas Está na Sim TLB? Quadro Offset Está na Tab. de Pág.? Não Sim Ler página do disco Transferir P na memória Não Memória cheia? Atualizar Tab. de Pág. Atualizar TLB Sim Quadro Offset Atualizar TLB Encontrar pág. vítima e escrever no disco Escrita? Não Sim Próximo slide 46

Integração da Memória Virtual, TLBs e Caches Endereço físico Não Escrita? Sim Tentar ler dados da cache Stall para tratar cache miss Não Hit? Sim Exceção de proteção a escrita Não Bit de acesso ligado? Sim Tentar escrever dados na cache Stall para tratar cache miss Não Hit? Sim Enviar dados para CPU Escrever dados na cache, atualizar bit sujo

Integração da Memória Virtual, TLBs e Caches Cache TLB Tabela de páginas Tradução possível? Se sim, em que circunstâncias? falta acerto acerto Possível, apesar de a tabela de páginas nunca ser verificada no caso de acerto no acesso à TLB acerto falta acerto Faltas no acesso à TLB, mas a entrada encontra-se na tabela de páginas; recuperadas as informações relativas ao mapeamento da tabela de páginas, a informação requisitada está na cache falta falta acerto Faltas no acesso à TLB, mas a entrada encontra-se na tabela de páginas; recuperadas as informações relativas ao mapeamento da tabela de páginas, a informação requisitada não está na cache falta falta falta Falta no acesso à TLB seguida de uma falta de página; após recuperar as informações de mapeamento, deve ser necessariamente gerada uma falta no acesso à cache falta acerto falta Impossível: não pode haver tradução na TLB se a página não está presente na memória acerto acerto falta Impossível: não pode haver tradução na TLB se a página não está presente na memória acerto falta falta Impossível: não é permitido que a informação esteja na cache se a página não está na memória principal

Integração da Memória Virtual, TLBs e Caches Condição ideal Pior caso Endereço virtual Endereço virtual TLB tratamento de falta na TLB TLB falta Memória Principal cache tratamento de falta na MP Memória Principal cache falta Processador tratamento de falta na cache Processador falta 49

Proteção com Memória Virtual Função de um sistema de memória virtual: Permitir que uma única memória principal seja compartilhada por vários processos, oferecendo proteção de memória entre eles e o SO Mecanismo de proteção precisa garantir que: Um processo rebelde não possa escrever no espaço de endereçamento de outro processo de usuário ou no espaço do SO Um determinado processo não leia dados de outro processo 50

Proteção com Memória Virtual Um processo deve operar corretamente, esteja em: Execução contínua, ou Interrupção repetida e alternante com outros processos A responsabilidade pelo comportamento correto dos processos é compartilhada entre: Arquitetura deve assegurar que o estado da CPU seja salvo e restaurado, ao rodar um determinado processo Sistema Operacional processos não podem interferir uns com os outros 51

Proteção com Memória Virtual Cada processo tem, ao mesmo tempo, na memória principal: Espaço de endereçamento virtual Estado da CPU Espaço de instruções Espaço de dados O SO deve manter as tabelas de páginas organizadas de modo que: Páginas virtuais independentes sejam mapeadas para páginas físicas disjuntas Assim, um processo não será capaz de acessar as informações de outro 52

Proteção com Memória Virtual Um processo de usuário não é capaz de modificar o mapeamento da tabela de páginas O SO proíbe o processo de usuário de modificar sua própria tabela de páginas. Mas o SO precisa poder modificar qualquer das tabelas de páginas Por isso, as tabelas de páginas são colocadas no espaço de endereçamento do SO 53

Proteção com Memória Virtual Suporte de hardware para que o SO implemente proteção no sistema de memória virtual: 1. Oferecer pelo menos dois modos de execução de processos: usuário (processo de usuário) supervisor/kernel (processo do SO) 2. Fornecer uma parte do estado que um processo usuário possa ler mas não possa escrever (bit de modo usuário/supervisor + TLB + um ponteiro para a tabela de páginas) 3. Fornecer mecanismos para trocar de modo: usuário supervisor: feita via exceção de chamada de sistema, implementada por uma instrução especial (syscall no MIPS) supervisor usuário: executar uma instrução retorno de exceção 54

Proteção com Memória Virtual :: Compartilhando informações entre processos Processos podem precisar compartilhar informações entre si para leitura, mas não para escrita Exemplos: Múltiplas instâncias de uma mesmo programa em execução Múltiplas instâncias de uma mesma biblioteca em uso por vários programas Portanto, um bit de acesso à escrita pode ser incluído na tabela de páginas a fim de restringir o compartilhamento apenas à leitura Como o restante da tabela de páginas, esse bit de acesso à escrita só pode ser modificado pelo SO 55

Proteção com Memória Virtual :: Compartilhando informações entre processos Para permitir que um processo A leia uma página pertencente ao processo B: B solicita ao SO a criação de uma entrada na tabela de páginas para uma página virtual no espaço de endereçamento de A que aponte para uma página física que B deseja compartilhar SO pode usar o bit de escrita para evitar que A escreva nas informações acessadas, se B assim o desejar Bits que determinam os direitos de acesso a uma página precisam ser incluídos na tabela de páginas e na TLB 56

Proteção com Memória Virtual :: Compartilhando informações entre processos Processos A e B compartilham várias páginas Suas tabelas de páginas informam onde as páginas virtuais estão alocadas na memória física Espaço de endereços do processo A Espaço de endereços do processo B Tabela de páginas de A Tabela de páginas de B Memória física 57

O que vocês aprenderam hoje? Memoria virtual Conceitos Tradução do endereços Tabelas de páginas Translation lookaside Buffer (TLB) Proteção 58

Questões Dado é um sistema de 32 Bits que tem uma memória física de 0,5 GB e que aplica a técnica memória virtual com páginas de 14 Bits. a) Quais são os espaços dos endereçamentos virtual e real? Virtual: 2^32 = 4 GB Real: 0,5 GB b) Qual é o tamanho da tabela de páginas? 0,5 GByte = 29 bit -> 29 bit - 14 bit = 15 bit 32 bit - 14 bit = 18 bit (bit de validade + 15) * 2^18 = 16 * 2^18 = 2^4*2^18 = 2^22 bit = 4 kbit = 2^19 Byte = 0,5 kbyte 59