Memória virtual. Sistemas de Computação

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

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

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

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

Sistemas Operacionais: Memória Virtual

Capítulo 9: Memória Virtual

Arquitetura de Sistemas Operacionais

SSC0640 Sistemas Operacionais I

Memória Virtual. Adriano J. Holanda 1/3/2016

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

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

Gerenciamento de Memória

Sistemas Operacionais Memória Virtual

Infra-Estrutura de Software

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

SISTEMAS OPERACIONAIS. 3ª. Lista de Exercícios

Aula 15. Memória Virtual - Desempenho. 1.1 Contexto 1.2 Políticas de Reposição de Páginas 1.3 Working-Set 1.4 Trashing

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

Sistemas Operacionais

Capítulo 4 Gerenciamento de Memória

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

Sistemas Operacionais

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

Gerenciamento de memória Memória Virtual

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

Sistemas Operacionais

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

Administração de Memória

Gerência de memória III

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

Capítulo 7 Gerência de Memória

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

Fundamentos de Sistemas Operacionais

Algoritmos de Substituição de Páginas. Igor Gustavo Hoelscher Renan Arend Rogério Corrêa Medeiros

LABORATÓRIO DE SISTEMAS OPERACIONAIS. PROFª. M.Sc. JULIANA HOFFMANN QUINONEZ BENACCHIO

Swapping. Desvantagem:

Organização e Arquitetura de Computadores I

Sistemas de Informação. Sistemas Operacionais

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar

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

Gerência de Memória Algoritmos de Substituição de Páginas

Gerenciamento de Memória

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

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

Organização e Arquitetura de Computadores I

Memória cache (cont.) Sistemas de Computação

Sistemas Opera r cionais Gerência de Memória

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

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

Capítulo 11 Sistemas de Arquivos

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

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO ACESSO, ATRIBUTOS E OPERAÇÕES COM ARQUIVOS PROFESSOR CARLOS MUNIZ

Capítulo 5 Livro do Mário Monteiro Conceituação. Elementos de projeto de memória cache

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

Transcrição:

Memória virtual

Fundamentos Memória virtual separação da memória lógica do usuário da memória física somente uma parte do programa precisa estar na memória para execução espaço de endereçamento lógico pode ser muito maior que espaço de endereçamento físico permite o compartilhamento de espaços de endereços por vários processos compartilhamento possibilita criação mais eficiente de processos Memória virtual pode ser implementada por: Paginação sob demanda Segmentação sob demanda

Memória virtual maior que memória física

Paginação sob demanda Uma página é colocada na memória somente quando se necessita dela Menos E/S para carregamento e swap de programas Menos memória para os processos Resposta mais rápida Maior número de usuários Se necessita de uma página quando uma referência é feita a ela referência inválida aborta não-está-na-memória traz para memória

Transferência de memória paginada para espaço de disco contínuo

Bit válido-inválido Cada entrada da tabela de páginas possui um bit válido-inválido associado (1 está na memória, 0 não está na memória) Inicialmente bit válido inválido é colocado em 0 em todas as entradas da tabela

Bit válido-inválido Exemplo: Frame # valid-invalid bit 1 1 1 1 0 page table Bit válido-inválido igual a 0 quando estiver sendo realizada uma tradução de endereços falta de página (page fault) 0 0

Tabela de páginas quando algumas páginas não estão na memória principal

Falta de página A primeira referência a uma página sempre irá gerar uma exceção ao sistema operacional indicando uma falta de página S.O consulta uma tabela interna para verificar se a referência é inválida (processo será abortado) ou se a página não está na memória Obtém um frame livre Traz a página do disco para o frame Atualiza bit válido nas entradas das tabelas

Tratando uma falta de página

O que acontece se não existir frame livre? Substituição de página encontra uma página que está na memória mas não está sendo utilizada e a coloca no disco algoritmo utilizado deve fornecer menor número de faltas de páginas. A mesma página pode ser trazida para a memória várias vezes

Desempenho de paginação sob demanda Taxa de falta de páginas 0 p 1.0 se p = 0 não ocorrem faltas de páginas se p = 1, toda referência é uma falta Tempo efetivo de acesso (EAT) EAT = (1 p) x acesso à memória + p x (overhead por falta + [escrita no disco] + leitura do disco + overhead de reinício)

Exemplo Tempo de acesso à memória = 1 microsegundo 50% do tempo a página na memória que vai ser substituída foi modificada e precisa ser escrita no disco Tempo de swap da página = 10 mseg = 10,000 microseg EAT = (1 p) x 1 + p (15000) = 1 + 15000P (em mseg)

Criação de processos - Copy-on-write -Mapeamento de arquivos em memória

Copy-on-Write Copy-on-Write (COW) permite que processos pai e filho inicialmente compartilhem as mesmas páginas na memória Se um dos processos modifica a página compartilhada, é feita uma cópia da página para o processo Possibilita uma criação mais eficiente de processos porque somente as páginas modificadas são copiadas para o novo processo Páginas livres são alocadas de um pool de páginas cujo conteúdo foi apagado

Mapeamento de arquivos em memória Permite que as operações em arquivos sejam tratadas com rotinas de acesso à memória mapeando um bloco de disco em uma página na memória Um arquivo é inicialmente lido utilizando-se paginação sob demanda Uma porção do arquivo do tamanho de uma página é colocada em uma página física pelo sistema de arquivos Operações subseqüentes de escrita e leitura de/para arquivo são tratadas como acessos à memória

Mapeamento de arquivos em memória Simplifica o acesso a arquivos tratando as operações de E/S através de operações de acesso à memória ao invés das rotinas do sistema read() e write() Permite que vários processos utilizem o mesmo arquivo permitindo que as páginas de memória a ele associadas sejam compartilhadas

Mapeamento de arquivos em memória

Substituição de páginas Quando um processo precisa de frame e não existe frame livre Utiliza bit dirty para reduzir o overhead de transferência de páginas somente páginas modificadas são escritas no disco Possibilita a existência de um espaço de memória virtual maior que o espaço físico real de memória

Exemplo de substituição de páginas

Substituição básica de páginas Encontra a localização da página desejada no disco Procura um frame livre: Se existe, aloca o frame Se não existe, utiliza um algoritmo de substituição para selecionar o frame a ser liberado Lê a página desejada no frame escolhido e atualiza a tabela de frames e páginas Reinicia o processo

Substituição de páginas

Algoritmos de substituição de páginas Deseja-se a menor taxa de falta de páginas Avalia-se o algoritmo executando-o para uma seqüência particular de referências à memória e calculando o número de faltas de página que ocorrem

Gráfico da falta de páginas versus número de frames

Algoritmo FIFO para substituição de páginas

Algoritmo First-In-First-Out (FIFO) Referências: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 3 frames 1 1 4 5 9 faltas de página 2 2 1 3 3 3 2 4

Algoritmo First-In-First-Out (FIFO) 4 frames 1 1 5 4 2 2 1 5 10 faltas de página 3 3 2 4 4 3 Substituição FIFO Anomalia de Belady mais frames mais falta de páginas

Anomalia de Belady para algoritmo FIFO

Algoritmo ótimo Substitui a página que não será utilizada pelo maior período de tempo futuro Difícil de implementar porque não sabemos quais serão as referências futuras (como algoritmo SJF para escalonamento de processos) Utilizada para comparar desempenho de outros algoritmos

Algoritmo ótimo

Algoritmo ótimo Exemplo com 4 frames 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 1 4 2 6 faltas de página 3 4 5

Algoritmo Least Recently Used (LRU)

Algoritmo Least Recently Used (LRU) Referências: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 1 5 2 3 5 4 8 faltas de página 4 3 Implementação com contador Cada página possui um campo para armazenar valor do contador e cada vez que ela é referenciada uma cópia do contador é colocada neste campo Quando é necessária a substituição de uma página, verificam-se os campos de cada página para escolher uma delas

Algoritmo LRU (Cont.) Implementação com stack mantém uma pilha de números de páginas implementada como uma lista duplamente encadeada: Página referenciada: move para o topo requer no pior caso modificação de 6 ponteiros Não realiza procura para substituição

Utilização de stack para LRU

Algoritmos LRU aproximados Bit de referência Associa-se um bit a cada página inicialmente com o valor 0 Quando uma página é referenciada, coloca-se seu bit em 1 Substitui a página que possui bit igual a 0, se existir, mas não se sabe a ordem de acesso das páginas com bit em 1 Algoritmo da segunda chance Necessita de bit de referência Caso a página a ser substituída (no sentido do relógio) tenha bit de referência=1, então: atualiza bit de referência para 0. deixa a página na memória substitui a próxima página (no sentido do relógio ), utilizando as mesmas regras

Algoritmo da segunda chance

Algoritmos que utilizam contadores Mantém um contador do número de referências que foram feitas para cada página Algoritmo LFU: substitui a página com menor valor de contador Algoritmo MFU: baseado no argumento de que a página com menor valor de contador foi provavelmente colocada mais recentemente na memória e tem grande chance de ser utilizada em um futuro próximo

Alocação de frames Cada processo necessita de um número mínimo de páginas definido pelo conjunto de instruções do processador Uma instrução load precisa de um frame para a instrução e um outro para a referência de memória Instruções podem necessitar de mais de um frame porque seu tamanho é maior que uma palavra e referências indiretas são realizadas à memória

Alocação de frames Exemplo: IBM 370 6 páginas para tratar instrução: instrução possui 6 bytes, pode necessitar de 2 páginas (palavra de 3 bytes) bloco de caracteres origem pode necessitar de 2 páginas área para onde os caracteres serão movidos pode necessitar de2 páginas Dois esquemas de alocação: alocação fixa alocação com prioridade

Alocação fixa Alocação igual se existem 100 frames e 5 processos, aloca 20 páginas a cada um Alocação proporcional Aloca de acordo com o tamanho do processo s S s m total number of a i i size of i process p allocation for p i i frames si m S m s s a a i 2 1 2 64 10 127 10 64 5 137 127 64 59 137

Alocação com prioridades Esquema de alocação proporcional que utiliza prioridades ao invés do tamanho do processo Se processo P i gera uma falta de página, seleciona para substituição um dos seus frames seleciona para substituição um frame de um processo de menor prioridade

Alocação global versus local Substituição global cada processo seleciona uma frame para ser substituída de um conjunto que possui todas as frames; um processo pode pegar uma frame de um outro processo Substituição local cada processo seleciona uma frame de um conjunto de frames restrito a ele