GERENCIAMENTO DE MEMÓRIA

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

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

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

Capítulo 4 Gerenciamento de Memória

Infra-Estrutura de Software IF677

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

SSC0640 Sistemas Operacionais I

Memória virtual. Pedro Cruz. EEL770 Sistemas Operacionais

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

Gerenciamento de Memória

Fundamentos de Sistemas Operacionais

Gerenciamento de Memória

SSC0640 Sistemas Operacionais I

Gerenciamento de Memória

Sistemas Operacionais I Memória Virtual

Exercícios de revisão V2

SSC0640 Sistemas Operacionais I

Sistemas Opera r cionais Gerência de Memória

Sistemas Operacionais Memória Virtual

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

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

Substituição de Páginas

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

Organização de um Sistema Operativo

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

Infra-Estrutura de Software

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


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

Administração de Memória

Sistemas Operacionais

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

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

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

Gerência de memória III

Sistemas Operacionais. Prof. André Y. Kusumoto

Infra-Estrutura de Software

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar

Introdução. Considerações:

Infra-Estrutura de Software

Gerência de Memória. Gerência de Memória Introdução e Particionamento. Novo capítulo. Aulas anteriores. Plano da aula. Memória lógica & física

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

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

Organização e Arquitetura de Computadores I

SISTEMAS OPERACIONAIS

Organização e Arquitetura de Computadores I

Fundamentos de Sistemas Operacionais

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

Capítulo 6 Nível do Sistema Operacional

SISTEMAS OPERACIONAIS

Sistemas Operacionais

Segmentação de Memória

Gerenciamento de Memória

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

Sistemas Operacionais. Prof. MSc. André Yoshimi Kusumoto

Sistemas Operacionais

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

Gerenciamento de Memória

Sistemas de Informação. Sistemas Operacionais

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

Gerenciamento de memória

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

Sistemas Operacionais

Organização e Arquitetura de Computadores

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

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

Gerência de memória II

Gerência de Memória. Aspectos de Projeto

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

Gerenciamento de memória

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

Gerenciamento de Memória

Arquitetura de Sistemas Operacionais

Sistemas Operativos: Gestão de Memória

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

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

Prof. Kleber R. Rovai

SISTEMAS OPERACIONAIS. Gerência de Memória Apostila 7

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

Fundamentos de Sistemas Operacionais. Gerência de Memória. Prof. Edwar Saliba Júnior Março de Unidade Gerência de Memória

Sistemas Operacionais

Memória virtual. Sistemas de Computação

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

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

Sistemas Operacionais. Gerenciamento de Memória

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

Capítulo 7 Gerência de Memória

ARQUITETURA DE COMPUTADORES

Gerenciamento de memória. Carlos Eduardo de Carvalho Dantas

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

Fundamentos de Sistemas Operacionais

Sistemas Operacionais

Gerenciamento de Memória

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

Sistemas Operacionais Gerência de Memória. Thiago Leite

Gerência de Memória. Eduardo Ferreira dos Santos. Abril, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 45

Sistemas Operacionais

Gerenciamento de Memória

Transcrição:

GERENCIAMENTO DE MEMÓRIA Sistemas Operacionais

Gerenciamento de memória O que vem em sua cabeça quando pensa em memória? Cache RAM Velocidade Custo Memória Secundária Capacidade 2

Hierarquias de Memórias Cache Centenas de MB, volátil, rápida velocidade e $$$ Ram Dezenas de GB, volátil, média velocidade e $$ Memória Secundária Centenas de GB, não-volátil, baixa velocidade e $ SO responsável por gerir as memórias 3

Gerenciamento de Memória Objetivos Gerenciar a interação entre as memórias Alocar/Desalocar espaços em memória Controlar partes em uso e livre Impedir acesso não permitido a memória Gerenciar a entrada e saída de processos da memória Modelos Sem abstração Com Abstração 4

Sem Abstração Mais simples Utilização direta da memória física Todo programa era carregado na memória no inicio da execução Monoprogramação Variações 5

Sem Abstração Realizando multiprogramação 6

Com Abstração Não utilização dos endereços físicos diretamente Multiprogramação Limitado pelo espaço livre Processos permanecem na memória até serem finalizados Espaço de Endereçamento Abstração para a memória Cada processo tem seu próprio e independente Iniciam em 0 7

Com Abstração Relocação dinâmica Modificação dos endereços apenas no momento da utilização Registrador-Base e Registrador-Limite Registrador-Base: Indica o endereço inicial do programa na memória física Registrador-Limite: Indica o tamanho do programa 8

Com Abstração Registrador-Base e Registrador-Limite Cada referência a memória HWD da CPU acrescenta o registradorbase Verifica se é o valor final é maior que o registrador-base e menor que o registrador-limite Em caso de erro é abortado, gerando exceção de acesso negado! 9

Gerenciamento de Memória E se o programa for maior do que o espaço disponível? Não executar? Swapping Troca de Processo Todo o processo ira para memória Limite: Memória total Memória Virtual Apenas uma parte do processo ira para memória Limite: Inexistente 10

Swapping - Troca de Processo Quando o processo necessita de espaço maior que o disponível Processos ficam entrando e saindo da memória principal Memória secundária Características Número, quantidade, localização dos processos são variáveis Limitado pelo total de memória Espaço sequencial do processo 11

Swapping - Troca de Processo 12

Swapping - Troca de Processo 13

Swapping - Troca de Processo Como proceder se o processo necessitar mais memória? Relocar todos os processos adjacentes Alocar com espaços para expansão 14

Gerenciamento de Memória Livre Controle dos espaços livres da memória Tipos Mapas de Bits Listas Encadedas 15

Mapa de Bits Divisão da memória em unidades de alocações Cada unidade é uma posição no mapa de bits 16

Gerenciamento de memória com listas encadeadas Lista encadeada de segmentos de memória livres e ocupados Segmento de memória: Área alocada ao processo Área livre situada entre dois processo Segmentos são ordenados por endereços 17

Gerenciamento de memória com listas encadeadas Ordenação por endereço Fácil atualização da lista 18

Algoritmos para alocar memória a um processo Caso o processo F for iniciar e necessita de 2 unidades, onde alocar? Métodos First fit (primeiro que couber) Next fit (próximo que couber) Best fit (melhor que couber) Worst fit (pior que couber) Quick fit (mais rápido que couber) 19

Algoritmos para alocar memória a um processo First fit (primeiro que couber) Procura na lista um segmento grande o suficiente para o processo Segmento é quebrado em duas parte 1: Alocada ao processo 2: Memória livre Rápido, pois pesquisa o mínimo possível Next fit (próximo que couber) Semelhante ao first fit Memoriza a posição onde encontrou memória disponível e inicia dessa posição 20

Algoritmos para alocar memória a um processo Best fit (melhor tamanho) Pesquisa na lista inteira e escolhe o menor segmento de memória suficiente ao processo Comparativo Best fit x First Fit Mais lento Busca na lista inteira Maior desperdiço de memória Deixa segmentos de memória minúsculos e conseqüentemente inúteis Worst fit (pior tamanho) Escolhe o maior segmento de memória Tentativa de quando ocorrer a divisão, os tamanhos não sejam minúsculos 21

Algoritmos para alocar memória a um processo Lista duplamente encadeada Uma para espaços livre e outra ocupado Ordenadas por tamanho First fit e best bit funcionam semelhantes Quick fit(mais rápido que couber) Mantém lista separada de tamanhos de memória disponíveis mais solicitados 22

Algoritmos para alocar memória a um processo Para cada um das técnicas best-fit, worst-fit e first-fit execute as operações Operações: Alocar uma área para o programa D que possui 6 Kb; Liberar a área do programa A; Alocar uma área para o programa E que possui 4 Kb. Mostre passo a passo como fica organização da memória e ao final faça a lista encadeada Fim da memória Início da memória 23

Gerenciamento de Memória Se o processo necessitar de uma quantidade maior que a memória total disponível? Overlays (Sobreposições) e Memória Virtual Permitem que apenas parte de um processo estejam na memória Diminuem a carga inicial do programa Econômico Mais processos na memória 24

Overlays - Sobreposições Divisão do programa em módulos Carga na memória é feita por overlays Vantagens Processo não necessita estar carregado na memória Desvantagens Programador responsável pela definição dos overlays e quando serão alocados na memória 25

Memória Virtual SO responsável pela carga do processo Programador não interage nessa atividade Paginação Divisão da memória em páginas Tamanho fixo A carga na memória em páginas Aumenta o grau de programação Redução das operações de E/S Capacidade de executar processos maiores que a memória 26

Memória Virtual Paginação Desassociação dos endereços Endereço virtual Processo enxerga e manipula Chamados apenas de páginas Endereço físico Correspondem a posição real na memória Chamado de molduras de páginas Ambos são divididos em páginas de tamanho fixo 27

Memória Virtual Paginação Existem mais páginas virtuais que físicas Total de páginas Físicas: Limitada pela quantidade de memória existente Virtuais: Limitada pelo limite que o SO consegue endereçar Páginas virtuais são mapeadas em molduras de páginas 28

Memória Virtual Paginação Toda tentativa de ler uma página antes é verificado se a mesma se encontra mapeada em moldura de página. Caso não esteja o processo ira ficar bloqueado até que a página esteja mapeada MMU : Responsável por mapear uma página virtual em moldura de página 29

MMU Unidade de Gerenciamento de Memória Hardware: Mapeamento entre endereço virtual em endereço físico 30

Memória Virtual Paginação Tamanho da página (P) Qualquer tamanho Utiliza: Potencia de 2, facilitar operações div e mod Como a MMU identifica a moldura através da virtual? Número da Página (virtual ou física) Deslocamento dentro de uma página Igual na página virtual como na moldura de página 31

Memória Virtual Paginação Exemplo Características do sistema Endereços virtuais de 16 bits (0 a 64K) Memória física: 32KB Tamanho máximo de um processo? Pq? 64 KB Se cada página tiver o tamanho de 4KB, qual o total de páginas virtuais e molduras de páginas? Moldura de páginas: 32 / 4 = 8 Páginas Virtuais: 64 / 4 = 16 32

Memória Virtual Paginação Como encontrar um endereço físico a partir de um virtual? Instrução: MOV REG, 0 MMU: Pagina virtual 0 (0 a 4095) MMU: Moldura de página 2 (8192 a 12287) Envio a Memória: MOV REG, 8192 Página ausente Instrução: MOV REG, 8196 MMU: Pagina virtual 2 (8192 a 12287) MMU: Moldura de página 6 (24576 a 28671) Envio a Memória: MOV REG, 24580 Instrução: MOV REG 32780 MMU: Página Virtual 8 Falta de Página (Page fault) 1k = 1024 b 33

Memória Virtual Paginação 34

Memória Virtual Paginação Página ausente Qual o endereço deverá ser lido na memória física? Instrução: MOV REG, 2012 Instrução: MOV REG, 8190 Instrução: MOV REG, 8287 Instrução: MOV REG 84780 Instrução: MOV REG 22222 Instrução: MOV REG 46320 1k = 1024 b 35

Tabela de Páginas Estrutura de uma entrada da tabela de páginas 36

Tabela de Páginas Questões que podem prejudicar o desempenho Mapeamento do endereço virtual para físico deve ser rápido Tabela de páginas grandes Técnicas Registradores dedicados Tabela toda em memória TLB Tabela de Páginas Multinível Tabela de páginas invertidas 37

Tabela de Páginas Registradores dedicados Um registrado para cada página virtual Acesso rápido Custo alto para ter vários registradores Excessivo carregamento a cada mudança de contexto Tabela toda em memória Único registrador que aponta para base da tabela Várias referências a memória para ler cada entrada 38

TLB Memória Associativa Hardware localizado na MMU Realiza o mapeamento sem utilizar a tabela de páginas Antes da leitura a tabela de páginas e verificado Caso a página não esteja na TLB é utilizado a tabela de páginas e depois inserida na TLB 39

Tabelas Multiníveis Divisão da tabela de páginas Diminuição da carga na memória Carrega apenas a parte necessária 10 10 12 PT1 PT2 Deslocamento 40

Tabelas Invertidas Considera todos os processos e não apenas um Endereço lógico Número processo, Número Página, Deslocamento 41

Gerenciamento de Memória O que fazer quando referenciar uma página que não esta na memória? Inserir na memória! Atenção Salvar a página que ira sair, caso esteja modificada Algoritmo de Substituição de falta de página Objetivo: Evitar retirar uma página que será logo utilizada 42

Algoritmo de Substituição de Página Algoritmo Ótimo Não usada recentemente (NRU) Primeiro a entrar, Primeiro a Sair (FIFO) Segunda Chance Relógio Menos recentemente Usada (LRU) Envelhecimento Conjunto de Trabalho WsClock 43

Algoritmo Ótimo Substituir a página que não será usada pelo maior período Cadeia de referência: 7 0 1 2 0 3 0 4 2 1 3 4 7 7 7 2 2 2 2 2 2 1 0 0 0 0 0 0 4 4 4 1 1 1 3 3 3 3 3 É funcional na prática? É ótimo, porém impossível de implementar. 44

Primeiro a entrar, Primeiro a Sair - FIFO Primeiro que entra primeiro que sai Utiliza uma lista de todas as páginas na memória Cadeia de referência: 7 0 1 2 3 0 4 2 Início Fim 7 0 1 2 3 0 4 2 7 7 7 2 2 2 4 4 0 0 0 3 3 3 2 1 1 1 0 0 0 45

Segunda Chance Semelhante ao FIFO Provê mais uma segunda chance as páginas referenciadas Evitar que uma página muito referenciada saia da memória Analisa o Bit Referenciada da página = 0: substitui ; = 1 ganha uma vez e é alterado para zero Cadeia de referência: 2 7 3 7 5 7 4 Início Fim 7 0 1 2 3 5 4 R = 10 R = 10 R = 0 R = 0 R = 0 R = 0 R = 0 7 7 7 7 7 0 0 3 3 4 1 2 2 5 5 46 46

Relógio Semelhante ao Segunda Chance Utiliza uma lista circular para armazenar as páginas Ponteiro indica a página mais antiga 47

Algoritmo Não Usada Recentemente (NRU) Substitui a página que foi usada a mais tempo e que não tenha sido alterada Páginas são classificadas Classe 0: Não referenciada, não modificada R=0, M=0 Classe 1: Não referenciada, modificada R=0, M=1 Classe 2: referenciada, não modificada R=1, M=0 Classe 3: referenciada, modificada R=1, M=1 As de menores classes são as escolhidas para remoção 48

Algoritmo Não Usada Recentemente (NRU) Caso aconteça uma falta de página, quem sai? E se fosse o FIFO? segunda chance? 49

Menos Recentemente Usada (LRU) As páginas muito utilizadas recentemente serão logo utilizadas novamente Implementações Lista Encadeada com as mais recentemente utilizadas no inicio Custo devido a atualização da lista a cada referência a memória Matriz n x n n é o total de páginas A cada referência a página Atualizar Linha X com valor 1 e coluna X com valor 0 Página a sair será a linha de menor valor binário 50

Menos Recentemente Usada (LRU) Cadeia de referência: 0 1 2 3 2 1 0 3 2 3 51

Envelhecimento Forma de implementação na LRU em software 52

Algoritmo de Substituição de Página 57

Questões Importantes Política de Alocação Global x Local Tamanho da Página Espaços separados de instruções e dados Páginas compartilhadas 58

Política de Alocação Global X Local A página a ser removida deverá ser apenas a do processo em questão ou de todos? Ocorre uma falta de página com o Processo A? Qual Página deve sair? 59

Tamanho da Página Pode ser definida pelo SO Tamanho Pequeno Menor fragmentação interna na última página Processos compostos por muitas páginas Tempo excessivo na carga das páginas devido o posicionamento do disco magnético Tamanho grande Menor tamanho da tabela de páginas Mais rápido a carga Carga de poucas páginas e sem muitas movimentações do disco Atualmente: 4kb ou 8kb 60

Espaços Separados de instruções e dados Vantajoso quando existe pouco espaço de endereçamento Espaço I : Código do Programa Espaço D : Dados 61

Páginas Compartilhadas Comum executar o mesmo programa várias vezes Gasto desnecessário do código do programa Caso utilize os espaços I e D Atenção Ao escalonar: Não retirar da memória todas as páginas do espaço I Ao finalizar um processo e não liberar o espaço I 62

Gerenciamento de Memória Paginação Apenas um único espaço de endereçamento Como fazer para utilizar mais de um espaço? Como fazer para compartilhar um espaço de memória? Segmentação 63

Segmentação Existência de vários espaços (segmentos) Segmentos Tamanhos diferentes São carregados por segmento na memória 64

Segmentação Fragmentação externa Compactação 65

Segmentação X Paginação 66

67