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

Documentos relacionados
Infra-Estrutura de Software IF677

Capítulo 4 Gerenciamento de Memória

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

Gerência de Memória. Gerência de Memória Virtual. Gerência de Memória. Gerência de Memória. Gerência de Memória. Gerência de Memória 17/04/2017

GERENCIAMENTO DE MEMÓRIA

Substituição de Páginas

SSC0640 Sistemas Operacionais I

Sistemas Operacionais. Prof. André Y. Kusumoto

Infra-Estrutura de Software

Infra-Estrutura de Software

Infra-Estrutura de Software

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

Memória virtual. Pedro Cruz. EEL770 Sistemas Operacionais

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

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

Gerência de Memória. Algoritmos de Substituição de Páginas. (Aula 20)

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

Sistemas Operacionais

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

Administração de Memória

Sistemas Operacionais

Gerenciamento de memória

Sistemas Operacionais. Prof. MSc. André Yoshimi Kusumoto

Gerenciamento de Memória

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

Gerenciamento de Memória

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar

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

Capítulo 6 Nível do Sistema Operacional

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

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

Sistemas Operacionais

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

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

INFRA-ESTRUTURA DE SOFTWARE. Gerência de Memória

Sistemas Opera r cionais Gerência de Memória

Segmentação de Memória

SSC0611 Arquitetura de Computadores

Sistemas Operacionais Memória Virtual

SSC0112 Organização de Computadores Digitais I

Arquitetura de Sistemas Operacionais

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

Sistemas Operacionais Aula 16 Memória Virtual

Memória virtual. Sistemas de Computação

SISTEMAS OPERACIONAIS. 3ª. Lista de Exercícios

Gerenciamento de Memória

Organização de um Sistema Operativo

Gerência de memória III

Organização e Arquitetura de Computadores I

Fundamentos de Sistemas Operacionais

Sistemas de Informação. Sistemas Operacionais

Sistemas Operacionais

Sistemas Operacionais I Memória Virtual

Gerenciamento de Memória

Fundamentos de Sistemas Operacionais

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

GERÊNCIA DE MEMÓRIA. INF009 Laboratório de Sistemas Operacionais

SSC0640 Sistemas Operacionais I

AULA 14 - Memória Virtual

Exercícios de revisão V2

Sistemas Operacionais

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

Gerenciamento de Memória

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

INE5412 Sistemas Operacionais I

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

INE5412 Sistemas Operacionais I

Gerência de memória II

Arquitectura de Computadores

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Instituto de Ciência e Tecnologia - ICT

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

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

Arquitectura de Computadores

Gerenciamento de memória Memória Virtual

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

Organização de Computadores

Gerência de Memória. Aspectos de Projeto

Sistemas Operacionais. Gerenciamento de Memória

SSC0640 Sistemas Operacionais I

Arquitectura de Computadores

SOP - TADS Gerência de Memória Cap 3 Tanenmbaum

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar

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

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

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

Prof. Kleber R. Rovai

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

Organização e Arquitetura de Computadores I

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

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

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

Sistemas Operacionais

Gerência de Memória. Execução de um Programa (1) Introdução. Introdução

Aula 06. Slots para Memórias

Pesquisa em Memória Secundária. Prof. Jonas Potros

Organização e Arquitetura de Computadores I

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

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

Transcrição:

Sistemas Operacionais Gerenciamento de Memória Carlos Ferraz (cagf@cin.ufpe.br) Jorge Cavalcanti Fonsêca (jcbf@cin.ufpe.br)

Memória Física vs. Memória do Programa Memória P Física Tamanho dos softwares aumenta mais rápido que o tamanho das memórias

O que fazer? 1960 Divisão manual de programas em módulos chamados sobreposições Gerenciador de Sobreposições S.O. Divisão do programa em sobreposições Programador Alto nível de complexidade sujeita a erros Era preciso deixar essa tarefa com o Sistema Operacional

Memória Virtual Programa Espaço de endereçamento Páginas Programa Memória Virtual Memória Física Disco Page Mesmo tamanho Série contínua de endereço Na prática a memória virtual é uma evolução dos registradores base-limite Paginação

Memória Virtual Paginação usa a MMU (Memory Management Unit)

Paginação int x = 1 Falta de Página int y = 2; int z = x + y; 4 int w = z; x = x + 1; 0 Índice z += x;... int a = 5; 1 5 6 3 2 7 z=5 a=5 x=2 r=1 t=1 s=1 k=1 w=3 z=3 y=2 x=1 (7) (6) (5) (4) (3) (2) (1) (0) Disco (HD)

Paginação Memória virtual 64K (2 16 ) > Memória real 32K (2 15 ) Como executar um programa que precisa de 64KB (memória) em um computador que só tem 32KB de memória? Dividir em módulos/páginas de 4KB Mesmo tamanho: 4KB Mov REG, 24576 Mov REG, 8192 64 / 4 = 16 páginas (pages) 32 / 4 = 8 molduras de páginas (pages frames)

Paginação Como executar um programa que precisa de 64KB (memória) em um computador que só tem 32KB de memória? Dividir em módulos/páginas de 4KB Mov REG, 4108 1 Mov REG, 32780 O que acontece? Falta de página (page fault) X Salva em disco

MMU 100(2) = 4(10) 4096 = 2 (12) 12 bits para deslocamento 24576 (24K) 24580 28672 (28K)

Estrutura de uma entrada na tabela de páginas 0 01 01 000 01 110 (Leitura, escrita, execução)

Acelerando a paginação Em qualquer sistema de paginação, dois problemas importantes devem ser enfrentados: O mapeamento do endereço virtual para o endereço físico deve ser rápido. Se o espaço virtual for grande, a tabela de páginas será grande. Tabela de páginas em registradores vs. Tabela de páginas em memória

Buffers para Tradução de Endereços - TLB Velocidade da execução é limitada pela frequência com que a CPU pode acessar a memória... Reduzindo desempenho pela metade Programas tendem a fazer um grande número de referências a um mesmo pequeno conjunto de páginas virtuais (observação) Tabela de Páginas Memória Física

Buffers para Tradução de Endereços - TLB TLB (memória associativa) Apenas endereços mais usados Hardware localizado dentro da MMU Compara as entradas paralelamente Ex. Loop Ausência de página (page miss) Presença de página (page hit)

Tabelas de Páginas Multiníveis Com TLB conseguimos resolver o problema do acesso rápido Mas e o problema do tamanho das tabelas de páginas? (Endereço virtual muito grande) Paginação Multinível Quebra o espaço de endereço lógico em múltiplas tabelas de página

Tabelas de Páginas Multiníveis A ideia é evitar manter na memória todas as tabelas de página o tempo todo Exemplo Um endereço lógico (em máquinas de 32 bits) é dividido em: um número de página contendo 20 bits um deslocamento de página contendo 12 bits 1.048.576 4KB 1M de entradas

Tabelas de Páginas Multiníveis Exemplo: 1 programa precisa de 12 megabytes Programa: Código: 4MB da base da memória Dados: 4MB seguintes Pilha: 4MB do topo Buracos

Tabelas de Páginas 1M de entradas 1.048.576 4 * 1024 = 4096

Exercício 1. O que é falta de página? 2.Qual a função da TLB? 3.Como funciona a tabela de páginas multinível?

Algoritmo de Substituição de Páginas

Substituição de Páginas Falta de página (page-fault) na memória: qual página deve ser removida? alocação de espaço para a página a ser trazida para a memória A página modificada deve primeiro ser salva se não tiver sido modificada é apenas sobreposta/descartada Melhor não escolher uma página que está sendo muito usada provavelmente precisará ser trazida de volta logo

Primeira a Entrar, Primeira a Sair (FIFO) Mantém uma lista encadeada de todas as páginas página mais antiga na cabeça da lista página que chegou por último na memória no final da lista Na ocorrência de falta de página página na cabeça da lista é removida nova página adicionada no final da lista Desvantagem página há mais tempo na memória pode ser usada com muita freqüência

Segunda Chance (SC) lista de páginas em ordem FIFO números representam instantes de carregamento das páginas na memória Estado da lista em situação de falta de página no instante 20, com o bit R da página A em 1 10

Relógio Lista Circular Vantagens em relação a segunda chance por não precisar ficar reinserindo páginas no final da lista

Não Usada Recentemente (NUR/NRU) Cada página tem bits Referenciada (R) e Modificada (M) Bits são colocados em 1 quando a página é referenciada e modificada Periodicamente colocado R para 0 (ex. cada tique de clock) As páginas são classificadas Classe 0: não referenciada (0), não modificada (0) Classe 1: não referenciada (0), modificada (1) Classe 2: referenciada (1), não modificada (0) Classe 3: referenciada (1), modificada (1) Remove aleatoriamente dentro da classe mais baixa NUR remove página aleatoriamente da classe de ordem mais baixa que não esteja vazia

Menos Recentemente Usada (MRU/LRU) C Assume que páginas usadas recentemente logo serão usadas novamente Premissa baseada em observação/experimentos retira da memória a página que há mais tempo não é usada Uma lista encadeada de páginas deve ser mantida página mais recentemente usada no início da lista, menos usada no final da lista atualização da lista à cada referência à memória custo alto. Alternativa: manter contador em cada entrada da tabela de página escolhe página com contador de menor valor zera o contador periodicamente. Porque fazer isso?

Conjunto de Trabalho (WS) Conjunto de páginas que um processo está usando atualmente é denominado conjunto de trabalho idade = tempo virtual atual instante da última referência Algoritmo (maior idade)

WSClock Assim como no WS: Se (R==0 e idade > t) (com M = 0) remova esta página // pois ela está fora do conjunto de trabalho e há uma cópia válida em disco idade = tempo virtual atual - instante da última referência E se a página estiver suja? É preciso salvá-la em disco... E o tempo de espera?

O Algoritmo Ótimo! O algoritmo FIFO sempre seleciona a página mais antiga para ser trocada First-In, First-Out O algoritmo LRU sempre seleciona a página que não vem sendo usada há mais tempo Least Recently Used (Menos Recentemente Usada - MRU) O algoritmo ótimo sempre seleciona a página que não será usada por mais tempo... Mas como o SO pode determinar quando cada uma das páginas será referenciada? Daqui a 10 instruções, 100 instruções, 1000 instruções... IMPOSSÍVEL!!!

Memória Secundária Área de troca (Swap Area) (a) Paginação para uma área de troca estática (b) Páginas alocadas dinamicamente em disco

Exercício 1.Diferencie o algoritmo de substituição de página não usado recentemente e o algoritmo de substituição de página menos usado recentemente. 2.Qual o principal problema encontrado no algoritmo de substituição de página primeiro a entrar, primeiro a sair? 3.Como funciona o algoritmo de substituição de página segunda chance? 4.Explique o funcionamento do algoritmo de substituição de página de conjunto de trabalho.

Exercício Um computador com um endereçamento de 32 bits usa tabela de paginas de dois níveis. Os endereços são quebrados em um campos de 9 bits para a tabela de paginas de nível 1, um campo de 11 bits para a tabela de paginas de nivel 2 e um deslocamento. Qual o tamanho das paginas e quantas existem no espaço de endereçamento citado?

Exercício Se o algoritmo de substituição FIFO é usado com quatro molduras de página e oito páginas virtuais, quantas faltas de página ocorrerão com a cadeira de referências 0172327103 se os quatros quadros estão inicialmente vazios? E se o algoritmo for LRU?

Sistemas Operacionais Gerenciamento de Memória Carlos Ferraz (cagf@cin.ufpe.br) Jorge Cavalcanti Fonsêca (jcbf@cin.ufpe.br)