Arquitetura de Sistemas Operacionais

Documentos relacionados
Sistemas de Informação. Sistemas Operacionais

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

Sistemas Operacionais

Sistemas Operacionais

Capítulo 7 Gerência de Memória

Sistemas Operacionais Memória Virtual

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

SISTEMAS OPERACIONAIS. Gerência de Memória Virtual (Alocação de Memória Não-Contígua) Apostila 08 UNIBAN

Gerenciamento de Memória

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

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

Swapping. Desvantagem:

Fundamentos de Sistemas Operacionais

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

SSC0640 Sistemas Operacionais I

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

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

Sistemas Operacionais. Prof. MSc. André Yoshimi Kusumoto

Memória virtual. Sistemas de Computação

Infra-Estrutura de Software IF677

Arquitetura de Sistemas Operacionais. Francis Berenger Machado Luiz Paulo Maia. Capítulo 9 Gerência de Memória

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

Sistemas Operacionais I Memória Virtual

Gerenciamento de memória

Sistemas Operacionais: Memória Virtual

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

Gerência de memória III

Sistemas Operacionais. Prof. André Y. Kusumoto

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar

Sistemas Operacionais

Gerenciamento de memória Memória Virtual

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

Sistemas Operacionais

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

Sistemas de Informação. Sistemas Operacionais

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

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

Substituição de Páginas

Fundamentos de Sistemas Operacionais

Gerenciamento de Memória

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

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

Organização e Arquitetura de Computadores I

Gerência de memória II

Sistemas Opera r cionais Gerência de Memória

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

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

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

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

Organização e Arquitetura de Computadores I

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

Infra-Estrutura de Software

AULA 14 - Memória Virtual

Sistemas Operacionais

Infra-Estrutura de Software

Sistemas Operacionais

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

IFPR Instituto Federal do Paraná. Curso Técnico em Informática GERÊNCIA DE MEMÓRIA. SO Sistemas Operacionais. Professora Elaine Augusto Praça

Segmentação de Memória

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

ARQUITETURA DE COMPUTADORES

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

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

Sistemas Operacionais. Gerenciamento de Memória

Gerência de Memória. Aspectos de Projeto

Infra-Estrutura de Software

Sistemas Operacionais

Organização de um Sistema Operativo

Aula 10 Gerenciamento de Memória

Sistemas Operacionais. Gerência de Memória

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

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

Ar qu it e t u r a a de e Sist e m a s Ope r a cion a is Fa bia n o o Ut iy a m a Ca pít u lo o 9 Ge r ê n cia a de e M e m ór ia

Organização e Arquitetura de Computadores

Capítulo 6 Nível do Sistema Operacional

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

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

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

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

INE5412 Sistemas Operacionais I

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

GERENCIAMENTO DE MEMÓRIA

Algoritmos de Gestão de Memória

Sistemas Operacionais

Administração de Memória

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

Prof. Adriano Maranhão

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


Gerência de Memória. Gerência de memória. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos. Memória: UCP. Unidade de controle

Gerenciamento de Memória

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

Introdução. Considerações:

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

SSC0640 Sistemas Operacionais I

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

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

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

Memória virtual. Pedro Cruz. EEL770 Sistemas Operacionais

Transcrição:

Arquitetura de Sistemas Operacionais Francis Berenger Machado Luiz Paulo Maia Capítulo 10 Gerência de Memória Virtual Cap 10 Gerência de Memória Virtual 1 Sumário Introdução Espaço de Endereçamento Virtual Mapeamento Memória Virtual por Paginação Política de Busca de Páginas Política de Alocação de Páginas Política de Substituição de Páginas Working Set Cap 10 Gerência de Memória Virtual 2 1

Sumário Memória Virtual por Paginação (cont) Translation Lookaside Buffer Proteção de Memória Compartilhamento de Memória Swapping em Memória Virtual Thrashing Cap 10 Gerência de Memória Virtual 3 Introdução Objetivo da gestão da memória: Maximizar o número de processos na memória Reduzir a fragmentação interna e externa da memória Problemas: Limitação do tamanho do programa Permitir execução de programas e estruturas de dados maiores que a memória disponível Cap 10 Gerência de Memória Virtual 4 2

Memória Virtual Memória virtual é uma técnica que combina memória principal e secundária Ilusão de existir uma memória muito maior que a capacidade real da memória principal Não vinculação do endereçamento do programa à memória física (relocável) Permitir maior número de processos compartilhando a memória principal Cap 10 Gerência de Memória Virtual 5 Espaço de Endereçamento Virtual Vetor de 100 posições Para cada vetor corresponde a um endereço físico da memória principal Endereço Físico 500 501 502 503 504 599 VET [1] VET [2] VET [3] VET [4] VET [5] VET [100] Cap 10 Gerência de Memória Virtual 6 3

Espaço de endereçamento virtual Espaço de endereçamento real Espaço de Endereçamento Virtual Espaço de endereçamento virtual e real o compilador resolve o endereçamento do vetor, portanto, não há preocupação do programador em saber a posição da memória de um dado o programa faz referência apenas a endereços virtuais e não físicas ou reais Endereço virtual 0 Endereço virtual 1 Endereço virtual 2 Endereço virtual 3 Endereço virtual 4 Endereço virtual 5 Endereço virtual V Endereço real 0 Endereço real 1 Endereço real 2 Endereço real 3 Endereço real R Cap 10 Gerência de Memória Virtual 7 Espaço de Endereçamento Virtual Espaço de endereçamento virtual Memória Virtual Memória Secundária Memória Virtual é composta de memória principal e memória secundária (HD), como extensão Sem limitação de memória para programa e estrutura de dados Elimina esta preocupação do programador parte do código do programa fica residente na memória e outra na memória secundária até que seja referenciado permite aumentar o compartilhamento da memória principal entre muitos processos Cap 10 Gerência de Memória Virtual 8 4

Mapeamento Memória Virtual O mecanismo de tradução do espaço de endereçamento virtual para o associado no espaço real processador executa instruções e referencia dados que estejam no espaço de endereçamento real Mapeamento endereços não necessitam mais serem contíguos o Mapeamento é executado por SO e Hardware para não comprometer o desempenho (Memory Management Unit MMU) Cap 10 Gerência de Memória Virtual 9 Tabela de mapeamento Mapeamento Para cada processo tem uma Tabela de mapeamento Espaço de endereçamento virtual de A Endereço virtual 1 Tabela de mapeamento de A Registrador - indica a posição inicial da tabela corrente Toda vez que há uma mudança de contexto, o registrador é atualizado com o endereço da nova tabela Processo A Espaço de endereçamento virtual de B Endereço virtual 1 Tabela de mapeamento de B Processo B Cap 10 Gerência de Memória Virtual 10 5

Memória Virtual por Paginação É a técnica de gerência de memória onde o espaço de endereçamento virtual e o espaço de endereçamento real são divididos em blocos de tamanho fixo chamados PÁGINAS Todo o mapeamento é realizado através das tabelas de páginas Cada processo possue sua Tabela de Páginas Cada Página virtual posui uma entrada na tabela (ETP) que contém informações de mapeamento que permite localização da página real Memória Virtual Página real 0 Página virtual 0 Página virtual 1 Página virtual 2 Tabela de páginas ETP Entrada na Tabela de Páginas Página real 1 Página real R Memória Secundária Frames (páginas Reais) Página virtual V Cap 10 Gerência de Memória Virtual 11 Memória Virtual por Paginação Página virtual Deslocamento Endereço virtual Tradução do endereço virtual Na execução do processo, a página virtual é transferida da memória secundária para a memória principal nos frames endereço virtual = Número da Página Virtual + Deslocamento Na Entrada Tabela Página encontra o endereço do Frame End Frame + Desloc = Endereço Real ou Físico NPV Desloc Tabela de páginas ETP End do frame End do frame Desloc Frame Deslocamento Endereço físico Cap 10 Gerência de Memória Virtual 12 6

Taxa de paginação Página virtual Deslocamento Endereço virtual NPV Desloc Tabela de páginas ETP End do frame End do frame Desloc Frame Deslocamento Endereço físico Cap 10 Gerência de Memória Virtual 13 Memória Virtual por Paginação Mecanismo de tradução Endereço virtual ETP contém Bit de Validade (Valid Bit): se = 1, página virtual está na memória real se = 0, PAGE FAULT Nesse caso, SO transfere a página virtual da memória secundária para a memória principal: PAGE IN (paginação) Taxa de Paginação do processo = número de PAGE FAULTs em um intervalo de tempo Se taxa for elevado o excesso de operações de E/S pode comprometer o desempenho do Sistema Se um processo referenciar um endereço e ocorrer Page Fault, o processo passa do Estado Execução para Extado de Espera, até que a página seja transferida para a memória principal Tabela de páginas Bit de validade 0 Tabela de páginas Bit de validade 1 Page fault Page in Memória secundária Memória secundária Cap 10 Gerência de Memória Virtual 14 7

Política de Busca de Páginas O mecanismo da Memória Virtual permite que um programa seja executado sem que esteja totalmente carregado na memória principal Política de Busca de Páginas determina quando uma página deve ser carregada para a memória Paginação por demanda (demand Paging) as páginas do processo são transferidas da memória secundária para a memória principal apenas quando referenciadas Apenas páginas necessárias são carregadas Rotinas como tratamento de erros não são carregadas Paginação antecipada (antecipatory paging ou prepaging) diversas páginas além da página referenciada são carregadas, prevendo seu uso no futuro próximo Carga em Bloco e diminue page fault, aumentando o desempenho Cap 10 Gerência de Memória Virtual 15 Políticas de Substituição de Páginas No limite de alocação, se um processo necessitar de mais FRAMES, o SO deve selecionar os Frames que podem ser substituídos Deve considerar as páginas que foram modificadas antes de liberar, se não os dados modificados podem ser perdidos Page-Out: Frames modificados são armazenados na memória secundária Páginas virtuais necessárias são transferidas do Arquivo de Paginação para os Frames Page-In: Restauração de Frames respectivos ao Page-Out Dirty Bit ou Modify Bit: bit da ETP ligado se ocorrer uma alteração na página Page out Page in Arquivo de paginação Cap 10 Gerência de Memória Virtual 16 8

Políticas de Substituição de Páginas Pólítica de substituição de páginas quais páginas são candidatas a serem realocadas Política de Substituição Local apenas as páginas do processo que gerou Page Fault são candidatas a realocação Política de Substituição Global todas as páginas alocadas na memória principal são candidatas a substituição, independentemente do processo que gerou o Page Fault O processo selecionado pode sofrer um aumento de taxa de paginação em função da redução do número de páginas alocadas na memória principal As páginas do Núcleo do Sistema não podem ser realocadas e são marcadas como Bloqueadas A Política de Alocação Fixa permite apenas o uso a Política de Substituição Local Neste caso o SO sempre seleciona o frame do próprio processo para substituição A Política de Alocação Variável permite tanto o Local como o Global No Global um frame de qualquer processo pode ser escolhido No Local um frame do próprio processo é escolhido Cap 10 Gerência de Memória Virtual 17 Working Set Ocupação de memória real x Taxa de Paginação Thrashing Thrashing é o fenômeno qdo um processo tenha número insuficiente de Frames para execução de programa, causando elevada taxa de Page Fault, consequentemente alta Taxa de Paginação e operações de E/S no HD Working Set surgiu com o objetivo de reduzir o problema de Thrashing Princípio da localidade Localidade espacial: tendência de novas referências de posição de memória próxima a já referida Localidade temporal: tendência de referência da mesma posição da memória em curto intervalo de tempo As páginas P1, P2 e P3 tem tendência de serem referenciadas conjuntamente por serem uma rotina fechada e cíclica Na programação estruturada o conceito de localidade deve ser observado Página 0 Página 1 Página 2 Página 3 Página 4 Inicialização WHILE () DO BEGIN END; Imprime resultados Cap 10 Gerência de Memória Virtual 18 9

Working Set Modelo de working set Janeladoworkingset ( t) P2P3P2P8 t 1 t 2 W(t, t) 2 tempo P2, P3 e P8 WS = 3 páginas Cap 10 Gerência de Memória Virtual 19 Tamanho do working set Working Set P2 P3 P4 P5 P2 P5 P5 P5 P5 P6 t 1 t 2 t 3 tempo t a P2, P3, P4 e P5 WS = 4 páginas t b P5 e P6 WS = 2 páginas Cap 10 Gerência de Memória Virtual 20 10

Taxa de page fault Working Set Taxa de page fault x limite de páginas reais A taxa de Page Fault diminue conforme o aumento da memória real Diminue a Taxa de Paginação Diminue as Operações de E/S do HD Limite de páginas reais Cap 10 Gerência de Memória Virtual 21 Algoritmos de Substituição de Páginas O maior problema na Gerência de Memória Virtual por paginação não é decidir quais páginas carregar para a memória principal, mas quais páginas liberar (Demming 1998) Quando necessitar de uma nova página e não exister frames disponíveis, o sistema deverá selecionar dentre as páginas alocadas na memória, qual deverá ser liberada pelo processo Os algoritmos de substituição de páginas tem o objetivo de selecionar os frames que tenham as menores chances de serem referenciados em um futuro próximo, para evitar excessivo número de acessos as memórias secundárias (acesso E/S) Cap 10 Gerência de Memória Virtual 22 11

Algoritmos de Substituição de Páginas Ótimo seleciona para a substituição uma página que não será mais referenciada no futuro ou que levará maior intervalo de tempo para ser novamente utilizada Garante as menores taxas de paginação, na prática não é possível de ser implementado, pois o sistema não possui conhecimento prévio das aplicações Aleatório não utiliza critério algum de seleção Todas as páginas tem a mesma chance de serem selecionadas FIFO a primeira página utilizada será a primeira a ser escolhida, ou seja, seleciona a página que está a mais tempo na memória principal Usa o conceito da Estrutura Fila onde as páginas mais antigas estão no início e as mais recentes no final saída entrada Página mais antiga Página mais recente Cap 10 Gerência de Memória Virtual 23 Algoritmos de Substituição de Páginas LFU (Least Frequency Used) seleciona a página menos referenciada, ou seja, o frame menos utilizado Um contador de referências para cada página na memória principal é mantida O contador de menor referência será escolhida, evitando de usar as páginas mais referenciadas LRU (Least Recently Used) seleciona a página que está há mais tempo sem ser referenciada Pelo princípio da localidade, uma página que não foi referenciada recentemente provavelmente não será referenciada novamente no futuro próximo Implementada através de Lista Encadeada, onde as páginas devem estar ordenadas pelo momento da última referência Acesso a lista a cada acesso a memória Cap 10 Gerência de Memória Virtual 24 12

Algoritmos de Substituição de Páginas NRU (Not Recently Used) - seleciona a página que não tenha sido referenciada recentemente Necessita de um controle: BIT de REFERÊNCIA Qdo a página é carregada o Bit 1 é marcada pelo Hardware Posteriormente o sistema modifica para Bit 0 A medida que é usada, marca para Bit 1 Desta forma é possível distinguir quais frames foram recentemente referenciadas Cap 10 Gerência de Memória Virtual 25 Proteção para páginas Proteção de Memória Em sistemas multiprogramáveis, onde diversos processos compartilham a memória principal, deve existir mecanismos para preservar as áreas de memória do Sistema Operacional e dos diversos processos dos usuários em primeiro nível de proteção é inerente ao próprio mecanismo de memória virtual por paginação, onde cada processo tem a sua o própria tabela de mapeamento e a tradução dos endereços é realizado pelo sistema Desta forma um processo não acessa a memória de outros processos LG Endereçoda página/segmento Bitsdeproteção Cap 10 Gerência de Memória Virtual 26 13

Mecanismo de proteção Proteção de Memória Há dois tipos de acessos básicos realizados em uma página: Leitura e Gravação É possível uma combinação destes acessos, produzindo um mecanismo simples e eficiente LG Descrição 0 Semaceso 10 Acesodeleitura 1 Acesoparaleitura/gravação Cap 10 Gerência de Memória Virtual 27 Compartilhamento de Memória Espaço de endereçamento virtual de A Endereço virtual 1 Tabela de mapeamento de A Processo A Página Espaço de endereçamento virtual de B Endereço virtual 1 Tabela de mapeamento de B Processo B Cap 10 Gerência de Memória Virtual 28 14

Memória Virtual por Segmentação Segmentação É a técnica de Gerência de Memória onde o espaço de endereçamento virtual é dividido em Blocos de tamanhos diferentes (segmentos) Na técnica de Segmentação um programa é dividido logicamente em subrotinas e estruturas de dados, que são alocadas em segmentos de memória principal Normalmente a definição dos segmentos é realizada pelo compilador, a partir do código fonte e cada segmento pode representar um procedimento, função, vetor ou pilha PROGRAM Segmento; VAR A: ARRAY C: PROCEDURE X; END; FUNCTION Y; END; BEGIN END Procedimento X Programa Principal Função Y Array A Variável C Cap 10 Gerência de Memória Virtual 29 Memória Virtual por Segmentação O espaço de endereçamento virtual de um processo possui um número máximo de segmentos que podem existir, onde cada segmento pode variar de tamanho dentro de um limite Pode ser alterado durante a execução do programa O mecanismo de MAPEAMENTO é muito semelhante ao da paginação Os endereços são mapeados através de Tabelas de Mapeamento de segmentos (TMS) e os endereços são compostos pelo Número de Segmento Virtual (NSV) e um deslocamento O NSV identifica unicamente o segmento virtual que contém o endereço, funcionando como um índice na TMS O deslocamento indica a posição do endereço virtual em relação ao início do segmento no qual se encontra O endereço físico é obtido combinando-se o endereço do segmento localizado na TMS com o delocamento contido no endereço virtual Cap 10 Gerência de Memória Virtual 30 15

Memória Virtual por Segmentação com Paginação É a técnica de Gerência de Memória onde o espaço de endereçamento é dividido em segmentos e, por sua vez, cada segmento dividido em páginas Oferece as vantagens tanto da paginação e segmentação Cap 10 Gerência de Memória Virtual 31 Swapping em Memória Virtual Técnica de Swapping permite aumentar o número de processos que compartilham a memória principal Aumenta o grau de multiprogramação Quando existem novos processos para serem executados e não há memória livre suficiente para a alocação, utiliza o swapping, selecionando um ou mais processos para sairem da memória e oferecer espaço para o novo processo Swap-file onde as páginas ou segmentos são gravados (disco) Da memória para Swap-file: Swap-out Do Swap-file para Memória: Swap-in Política de escolha dos processos buscam os processos com menor chance de serem executados em futuro próximo, baseando-se no estado do processo ou prioridade Processo F Processo A Processo B Processo C Processo D Processo E Processo A Processo C Processo F Processo B Processo D Swap out Swap in Processo B Arquivo de swapping Cap 10 Gerência de Memória Virtual 32 16

Thrashing Excessiva transferência de páginas e/ou segmentos entre a memória principal e memória secundária Ocorre em dois níveis: no próprio processo devido a elevado número de Page Fault no sistema devido elevado número de processos competindo a alocação de memória Cap 10 Gerência de Memória Virtual 33 Thrashing Se existirem mais processos para serem executados que memória real disponível, a única solução é a expansão da memória principal Este problema não ocorre apenas em sistemas que implementam memória virtual, mas também em sistemas com outros mecanismos de gerência de memória Cap 10 Gerência de Memória Virtual 34 17

Cap 10 Gerência de Memória Virtual 35 18