Aula 09. Gerenciamento de Memória Virtual Paginação. Capítulo 10 PLT Pág. 174-214. Gerenciamento de Memória Virtual



Documentos relacionados
Arquitetura de Sistemas Operacionais

Sistemas Operacionais

Sistemas Operacionais

Sistemas de Informação. Sistemas Operacionais

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

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

Sistemas Operacionais Memória Virtual

Sistemas Operacionais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Capítulo 6 - Threads

Sistemas Operacionais

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

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

Swapping. Desvantagem:

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

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

Capítulo 7 Gerência de Memória

Gerenciamento de Memória Minix 3.1.7

SSC0640 Sistemas Operacionais I

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

Arquitetura de Computadores

Introdução à Informática. Alexandre Meslin

Memórias Cache. Memória

Conteúdos: Debora, Edcarllos, livros! slides disponíveis!

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

Hierarquia de Memória

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

Fundamentos de Arquitetura e Organização de Computadores

Subsistema de Memória. Aleardo Manacero Jr.

- Campus Salto. Disciplina: Sistemas de Arquivos Docente: Fernando Santorsula

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

Sistemas Operacionais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Aula 03

VII - Gerenciamento de Memória

Arquitetura de Computadores EL66C 1a. Prova - Gabarito 26/04/10

Introdução a Banco de Dados. INTRODUÇÃO

Linguagens de Programação:

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

Sistemas Operacionais. Prof. MSc. André Yoshimi Kusumoto

Capítulo 11 Sistemas de Arquivos

Arquitetura de Computadores Sistemas Operacionais I

INTERFACE PARALELA. Área: Eletrônica Nível de conhecimento necessário: básico. Autor:

Sistemas Operacionais. Prof. André Y. Kusumoto

Sistemas Operacionais I Memória Virtual

Sistemas Operacionais

Redes de Computadores

Arquitetura e Organização de Computadores

Fundamentos de Sistemas Operacionais

SISTEMAS OPERACIONAIS. 3ª. Lista de Exercícios

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

Administração Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

Memória. Memória Secundária

Gerenciamento de Memória

Gerenciamento de memória Memória Virtual

COMPUTAÇÃO. O estudante deve ser capaz de apontar algumas vantagens dentre as seguintes, quanto à modalidade EaD:

MATA49 Programação de Software Básico

2) Escreva um algoritmo que leia um conjunto de 10 notas, armazene-as em uma variável composta chamada NOTA e calcule e imprima a sua média.

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

Aula 10 Gerenciamento de Memória

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

1.1. Definição do Problema

Arquitetura TCP/IP. Apresentado por: Ricardo Quintão

Linux e Computação Científica

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

Sistemas Operacionais. Entrada e Saída. Edeyson Andrade Gomes.

Sistemas Distribuídos Capítulo 4 - Aula 5

Informática Aplicada

Infra-Estrutura de Software IF677

Gerência de memória III

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

alocação de custo têm que ser feita de maneira estimada e muitas vezes arbitrária (como o aluguel, a supervisão, as chefias, etc.

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

EA075 Memória virtual

Sistema Operacional. Implementação de Processo e Threads. Prof. Dr. Márcio Andrey Teixeira Sistemas Operacionais

Sistemas Opera r cionais Gerência de Memória

Memória virtual. Sistemas de Computação

ARQUITETURA DE COMPUTADORES

Sistemas Operacionais

Algoritmos e Estruturas de Dados I. Variáveis Indexadas. Pedro O.S. Vaz de Melo

Gerenciamento de memória

Backup. O que é um backup?

Gerência de Memória. Aspectos de Projeto

Structural Patterns - Proxy

Sistemas Operacionais

Programação de Computadores I. Linguagem C Função

Sistemas Operacionais

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar

SSC0611 Arquitetura de Computadores

Objetivos. Arquitetura x86. Evolução dos Microprocessadores com arquitetura x86. Universidade São Judas Tadeu. Introdução à Computação

POLÍTICA DE GESTÃO DE RISCOS

Arquitetura de Computadores - Operação da Unidade de Controle. por Helcio Wagner da Silva

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

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

Prof a Andréa Schwertner Charão DELC/CT/UFSM

Algoritmos e Programação : Conceitos e estruturas básicas. Hudson Victoria Diniz

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

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

Infra-Estrutura de Software

Organização e Arquitetura de Computadores I

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

Árvores Parte 1. Aleardo Manacero Jr. DCCE/UNESP Grupo de Sistemas Paralelos e Distribuídos

Sistemas Operacionais Aula 16 Memória Virtual

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

Transcrição:

Aula 09 Sistemas Operacionais Prof Esp André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Gerenciamento de Memória Virtual Paginação Capítulo 0 PLT Pág 74-24 2 Gerenciamento de Memória Virtual Memória virtual é uma tecnica sofisticada e poderosa de gerência de memória, onde as memórias principal e secundária são combinadas dando ao usuário a ilusão de existir uma memória muito maior que a capacidade real da memória principal O conceito de memória virtual fundamenta-se em não vincular o endereçamento feito pelo programa dos endereços físicos de memória principal Desta forma, programas e suas estruturas de dados deixam de estar limitados ao tamanho da memória física disponível, pois podem possuir endereços associados à memória secundária 3 Outra vantagem da técnica de memória virtual é permitir um número maior de processos compartilhando a memória principal, já que apenas partes de cada processo estarão residentes Isto leva a uma utilização mais eficiente também do processador, além de minimizar o problema da fragmentação da memória principal Existe um forte relacionamento entre a gerência de memória virtual e a arquitetura de hardware do sistema operacional 4

Espaço de Endereçamento Virtual Vetor de 00 posições O conceito de memória virtual se aproxima muito da idéia de um vetor, existente nas linguagens de alto nível Quando um programa faz referência a um elemento do vetor, não há preocupações em saber a posição de memória daquele dado O compilador se encarrega de gerar instruções que implementam esse mecanismo, tornando-o totalmente transparente ao programador Endereço Físico 500 50 502 503 504 VET [] VET [2] VET [3] VET [4] VET [5] 599 VET [00] 5 6 A memória virtual utiliza abstração semelhante, só que em relação aos endereços dos programas e dados Um programa no ambiente de memória virtual não faz referência a endereços físicos de memória, mas apenas a endereços virtuais No momento da execução de uma instrução, o endereço virtual referenciado é traduzido para um endereço físico, pois o processador manipula apenas posições da memória principal O mecanismo de tradução do endereço virtual para endereço físico é denominado mapeamento Como o espaço de endereçamento virtual não tem nenhuma relação direta com os endereços no espaço real, um programa pode fazer referência a endereços virtuais que estejam for a dos limites da memória principal, ou seja, os programas e suas estruturas de dados não estão mais limitados ao tamanho da memória física disponível Para que isso seja possível, o sistema operacional utiliza a memória secundária como extensão da memória principal 7 8 2

Espaço de endereçamento virtual e real Espaço de endereçamento virtual e real Espaço de endereçamento virtual Endereço virtual 0 Endereço virtual Endereço virtual 2 Endereço virtual 3 Endereço virtual 4 Endereço virtual 5 Endereço virtual V Espaço de endereçamento real Endereço real 0 Endereço real Endereço real 2 Endereço real 3 Endereço real R Espaço de endereçamento virtual Endereço virtual 0 Endereço virtual Endereço virtual 2 Endereço virtual 3 Endereço virtual 4 Endereço virtual 5 Endereço virtual V Espaço de endereçamento real Endereço real 0 Endereço real Endereço real 2 Endereço real 3 Endereço real R 9 0 Mapeamento Tabela de mapeamento O processador apenas executa instruções e referencia dados residentes no espaço de endereçamento real; portanto, deve existir um mecanismo que transforme os endereços virtuais em endereços reais Esse mecanismo, conhecido como mapeamento, permite traduzir um endereço localizado no espaço virtual para um associado no espaço real Memória Virtual Mapeamento Memória Principal Espaço de endereçamento virtual de A Tabela de Endereço virtual mapeamento de A Processo A Espaço de endereçamento virtual de B Tabela de Endereço virtual mapeamento de B Processo B Memória Principal 2 3

Memória Virtual por Paginação A memória virtual por paginação é a técnica de gerência de memória em que o espaço de endereçamento virtual e o espaço de endereçamento real são divididos em blocos de mesmo tamanho chamados páginas As páginas no espaço virtual são denominadas páginas virtuais, enquanto as páginas no espaço real são chamadas de páginas reais ou frames Memória Virtual Página virtual 0 Página virtual Página virtual 2 Página virtual V Tabela de páginas ETP Memória Principal Página real 0 Página real Página real R Memória Secundária Quando um programa é executado, as páginas virtuais são transferidas da memória secundária para a memória principal e colocadas nos frames Sempre que um programa fizer referência a um endereço virtual, o mecanismo de mapeamento localizará na ETP (Entrada de Tabela de Páginas) da tabela do processo o endereço físico do frame no qual se encontra o endereço real correspondente 3 4 Políticas de Busca por Páginas O mecanismo de memória virtual permite a execução de um programa sem que seu código esteja completamente residente na memória principal A política de busca de páginas determina quando uma página deve ser carregada para a memória Existem basicamente duas estratégias para este propósito: paginação por demanda e paginação antecipada Paginação por Demanda As páginas dos processos são transferidas da memória secundária para a principal apenas quando são referenciadas É um mecanismo adequado, pois leva para a memória principal apenas as páginas realmente necessárias à execução do programa 5 6 4

Paginação antecipada Na paginação antecipada, o sistema carrega para a memória principal as páginas referenciadas e outras páginas que podem ou não ser utilizadas ao longo do processamento Vantagem: maior rapidez ao acessar páginas referenciadas que já estão na memória ao invés de buscá-las na memória secundária Desvantagem: se as páginas não forem utilizadas, serão perdidos recursos de processamento e memória Políticas de Alocação de Páginas A política de alocação de páginas determina quantos frames cada processo pode manter na memória principal Existem, basicamente, dois tipos: alocação fixa e alocação variável Na política de alocação fixa, cada processo tem um número máximo de frames que pode ser utilizado durante a execução do programa Caso o número de páginas reais seja insuficiente, uma página do processo deve ser descartada para que uma nova seja carregada Na política de alocação variável, o número de páginas alocadas ao processo pode variar durante sua execução em função de sua taxa de paginação e da ocupação da memória principal 7 8 Políticas de Substituição de Páginas Substituição de páginas Em algumas situações, quando um processo atinge o seu limite de alocação de frames e necessita alocar novas páginas na memória principal, o sistema operacional deve selecionar, dentre as diversas páginas alocadas, qual deverá ser liberada Este mecanismo é chamado de política de substituição de páginas Uma página real, quando liberada por um processo, está livre para ser utilizada por qualquer outro processo O mecanismo deve considerar se uma página foi ou não modificada antes de liberá-la, caso contrário, dados armazenados na página podem ser perdidos Memória Principal Page out Page in Arquivo de paginação 9 20 5

Working Set Apesar de suas diversas vantagens, o mecanismo de memória virtual introduz um sério problema Como cada processo possui na memória principal apenas algumas páginas alocadas, o sistema deve manter um conjunto mínimo de frames buscando uma baixa taxa de paginação Ao mesmo tempo, o sistema operacional deve impedir que os processos tenham um número excessivo de páginas em memória, de forma a aumentar o grau de compartilhamento da memória principal 2 Caso os processos tenham na memória principal um número insuficiente de páginas para a execução do programa, é provável que diversos frames referenciados ao longo do seu processamento não estejam na memória Esta situação provoca a ocorrência de um número elevado de page faults e inúmeras operações de E/S, levando a um problema conhecido como thrashing, provocando sérias consequências ao sistema O working set tem por objetivo reduzir o problema do thrashing e está relacionado ao princípio da localidade Existem dois tipos de localidade que são observados durante a execução da maioria dos programas A localidade espacial é a tendência de que após uma referência a uma posição de memória sejam realizadas novas referências a endereços próximos A localidade temporal é a tendência de que após a referência a uma posição de memória esta mesma posição seja novamente referenciada em um curto intervalo de tempo 22 Princípio da localidade O princípio da localidade significa que o processador tenderá a concentrar suas referências a um conjunto de páginas do processo durante um determinado período de tempo Imaginando um loop, cujo código ocupe três páginas, a tendência dessas três páginas serem referenciadas diversas vezes é muito alta Página 0 Página Página 2 Inicialização WHILE () DO BEGIN 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 liberar Quando um processo necessita de uma nova página e não existem frames disponíveis, o sistema deverá selecionar, dentre as diversas páginas alocadas na memória, qual deverá ser liberada pelo processo Os algoritmos de substituição de páginas têm o objetivo de selecionar os frames que tenham as menores chances de serem referenciados em um futuro próximo Página 3 END; Página 4 Imprime resultados 23 24 6

Ótimo A melhor estratégia de substituição de páginas seria aquela que escolhesse um frame que não fosse mais utilizado no futuro ou levasse mais tempo para ser novamente referenciado O algoritmo de substituição deve tentar manter o working set dos processos na memória principal e, ao mesmo tempo, não comprometer o desempenho do sistema Os principais algoritmos existentes são: Seleciona para substituição uma página que não será mais referenciada no futuro ou aquela que levará o maior intervalo de tempo para ser novamente utilizada É impossível de ser implementado, haja vista que o SO não tem como prever o comportamento futuro das aplicações É utilizado apenas como estratégia de comparação para os demais algoritmos 25 26 Aleatório FIFO Como o nome sugere, não utiliza critério algum de seleção Todas as páginas alocadas na MP têm a mesma chance de serem selecionadas, inclusive os frames que são frequentemente referenciados Apesar de consumir poucos recursos do sistema é raramente implementada, pois é pouco eficiente A página que primeiro foi utilizada será a primeira a ser escolhida, ou seja, o algoritmo seleciona a página que está há mais tempo na memória principal O algoritmo pode ser implementado associando-se a cada página o momento em que foi carregada para a memória ou utilizando-se uma estrutura de fila 27 28 7

LFU (Least-Frequently Used) LRU (Least-Recently-Used) O algoritmo LFU seleciona a página menos referenciada, ou seja, o frame menos utilizado Para isso, é mantido um contador com o número de referências para cada página na MP A página que possuir o contador com o menor número de referências será escolhida, ou seja, o algoritmo evita selecionar páginas que são bastante utilizadas O algoritmo LRU seleciona a página na MP que está há mais tempo sem ser referenciada Se considerarmos o princípio da localidade, é provável que uma página que não foi utilizada recentemente não seja referenciada novamente em um futuro próximo 29 30 NRU (Not-Recently-Used) O algoritmo NRU é bastante semelhante ao LRU, porém com menor sofisticação Para a implementação deste agoritmo é necessário um bit adicional, conhecido como bit de referência (BR) O bit indica se a página foi utilizada recentemente e está presente em cada entrada da tabela de páginas Quando uma página é carregada para a MP, o bit de referência é alterado pelo hardware, indicando que a página foi referenciada e, periodicamente, o SO altera o BR para zero, e à medida que as páginas são utilizadas, o bit retorna para FIFO com buffer de páginas O algoritmo FIFO é de fácil implementação e baixo overhead, porém apresenta séria limitação quando páginas antigas são constantemente referenciadas O algoritmo FIFO com buffer de páginas combina uma lista de páginas alocadas (LPA) com uma lista de páginas livres (LPL) A LPA organiza todas as páginas que estão sendo utilizadas na MP, podendo ser implementada como uma lista única para todos os processos ou uma lista individual para cada processo 3 32 8

FIFO com buffer de páginas FIFO circular (clock) início Lista de páginas livres fim O algoritmo FIFO circular utiliza como base o FIFO, porém as páginas alocadas na memória estão em uma estrutura circular, semelhante a um relógio Normalmente este mecanismo está presente em sistemas Unix (a) (c) (b) BR= P BR= BR= 0 P BR= 0 Pn página mais antiga P2 Pn P2 fim Lista de páginas alocadas início BR= 0 BR= 0 P3 página selecionada P3 P5 P4 P5 P4 (a) (b) 33 34 Tamanho da Página A definição do tamanho da página é um fator importante no projeto de sistemas que implementam memória virtual por paginação O tamanho da página está associado à arquitetura do hardware e varia de acordo com o processador, mas normalmente está entre 52 e 6 M endereços Algumas arquiteturas permitem a configuração do tamanho da página, oferecendo assim maior flexibilidade O tamanho da página tem impacto direto sobre o número de entradas na tabela de páginas e, consequentemente, no tamanho da tabela e no espaço ocupado na memória principal Por exemplo, uma arquitetura de 32 bits para endereçamento e páginas de 4 k endereços, teríamos tabelas de páginas de até 220 entradas Se cada entrada ocupasse 4 bytes, poderíamos ter tabelas de páginas de 4 Mb por processo 35 36 9

Fragmentação Interna Apesar de páginas grandes tornarem menor o tamanho das tabelas de páginas, ocorre o problema da fragmentação interna O principal argumento a favor do uso de páginas pequenas é a melhor utilização da memória principal A partir do princípio da localidade, com páginas pequenas teríamos na memória apenas as partes dos programas com maiores chances de serem executados Quanto maior o tamanho da página, maiores as chances de ter na memória código pouco referenciado, ocupando espaço desnecessariamente Página 0 Página Página 2 Página 3 Página 4 PROGRAM Frag; VAR PROCEDURE A; END; BEGIN END Fragmentação 37 38 Paginação em múltiplos níveis Em sistemas que implementam apenas um nível de paginação, o tamanho das tabelas de páginas pode ser um problema Como já demonstrado, uma arquitetura de 32 bits e páginas com 4 k, onde cada entrada na tabela ocupe 4 bytes, poderia gerar uma tabela de páginas com mais de um milhão de entradas Imaginando vários processos residentes na memória principal, manter tabelas desse tamanho para cada processo certamente seria de difícil gerenciamento Uma boa solução para contornar o problema apresentado é a utilização de tabelas de páginas em múltiplos níveis A idéia é que o princípio da localidade seja aplicado também às tabelas de mapeamento apenas as informações sobre páginas realmente necessárias aos processos estariam residentes na MP Endereço Virtual NPV 20 bits Desloc 2 bits 0 2 Tabela de páginas 4 Mb 20 (2 -) 39 32 bits 40 0

Translation Lookaside Buffer Translation lookaside buffer (TLB) A gerência de memória virtual utiliza a técnica de mapeamento para traduzir endereços virtuais em endereços reais, porém o mapeamento implica pelo menos dois acessos à memória principal: o primeiro à tabela de páginas e o outro à própria página Sempre que um endereço virtual precisar ser traduzido, a tabela de mapeamento deve ser consultada para se obter o endereço do frame e, posteriormente, acessar o dado na memória principal Como a maioria das aplicações referencia um número reduzido de frames, somente uma pequena fração da tabela de mapeamento é realmente necessária Endereço Virtual NPV Desloc Translation Lookaside Buffer (TLB) BV Tag End Físico 0 0 0 Tabela de mapeamento BV End Físico 0 0 Memória principal 4 Memória secundária 42 Com base neste princípio, foi introduzida uma memória especial chamada de translation lookaside buffer (TLB), com o intuito de mapear endereços virtuais em endereços físicos sem a necessidade do acesso à tabela de páginas O TLB funciona como uma memória cache, mantendo apenas as traduções dos endereços virtuais das páginas mais recentemente referenciadas Em geral, o TLB utiliza o esquema de mapeamento associativo, que permite verificar simultaneamente em todas as suas entradas a presença do endereço virtual Campos da TLB Campo Tag Modificação Referência Proteção Endereço físico Descrição Endereço virtual sem o deslocamento Bit que indica se a página foi alterada Bit que indica se a página foi recentemente referenciada, sendo utilizada para a realocação de entradas na TLB Define a permissão de acesso à página Posição do frame na memória principal 43 44

Proteção de Memória Em qualquer sistema multiprogramável, onde diversas aplicações compartilham a MP, devem existir mecanismos para preservar as áreas de memória do SO e dos diversos processos dos usuários O SO deve impedir que um processo tenha acesso ou modifique uma página do sistema sem autorização Caso uma página do SO seja indevidamente alterada, é possível que haja uma instabilidade no funcionamento do sistema ou sua parada completa Até mesmo páginas dos processos dos usuários precisam ser protegidas contra alteração, como no caso de frames contendo código executável Um primeiro nível de proteção é inerente ao próprio mecanismo de memória virtual por paginação Neste esquema, cada processo tem sua própria tabela de mapeamento e a tradução dos endereços é realizada pelo sistema Desta forma, não é possível a um processo acessar áreas de memória de outros processos, a menos que haja compartilhamento explícito de páginas entre processos A proteção de acesso é realizada individualmente em cada página da MP, utilizando-se as entradas das tabelas de mapeamento, onde alguns bits especificam os acessos permitidos 45 46 Proteção para páginas Compartilhamento de Memória LG L G Bits de proteção Descrição 00 Sem acesso 0 Acesso de leitura Endereço da página/ segmento Acesso para leitura/gravação Em sistemas que implementam memória virtual, é bastante simples a implementação da reentrância, possibilitando o compartilhamento de código entre os diversos processos Para isso, basta que as entradas das tabelas de mapeamento dos processos apontem para os mesmos frames na MP, evitando, assim, várias cópias de um mesmo programa na memória Apesar dos processos compartilharem as mesmas páginas de código, cada um possui sua própria área de dados em páginas independentes 47 48 2

Compartilhamento de memória Memória Virtual por Segmentação Espaço de endereçamento virtual de A Tabela de Endereço virtual mapeamento de A Processo A Espaço de endereçamento virtual de B Tabela de Endereço virtual mapeamento de B Memória Principal Página Memória virtual por 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 chamados segmentos Na técnica de segmentação, um programa é dividido logicamente em subrotinas e estruturas de dados, que são alocados em segmentos na MP Enquanto na técnica de paginação o programa é dividido em páginas de tamanho fixo, sem qualquer ligação com sua estrutura, na segmentação existe uma relação entre a lógica do programa e sua alocação na MP Processo B 49 50 Segmentação 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 Memória Virtual por Segmentação com Paginação Memória virtual por segmentação com paginação é a técnica de gerência de memória na qual o espaço de endereçamento é dividido em segmentos e, por sua vez, cada segmento dividido em páginas Esse esquema de gerência de memória tem o objetivo de oferecer as vantagens tanto da técnica de paginação quando da técnica de segmentação Nessa técnica, um endereço virtual é formado pelo número do segmento virtual (NSV), um número de página virtual (NPV) e um deslocamento 5 52 3

Memória Virtual por Segmentação com Paginação Swapping em Memória Virtual Segmento virtual Deslocamento Endereço virtual Desloc Tabela de segmentos ETS End do segmento Desloc A técnica de swapping também pode ser aplicada em sistemas com memória virtual, permitindo aumentar o número de processos que compartilham a memória principal e, consequentemente, o grau de multiprogramação do sistema Quando existem novos processos para serem executados e não há MP livre suficiente para alocação, o sistema utiliza o swapping, selecionando um ou mais processos para saírem da memória e oferecer espaço para novos processos Segmento na memória principal Deslocamento Endereço físico 53 54 Swapping em memória virtual Memória Principal Segmentação com paginação Segmento virtual Processo A Processo B Endereço virtual Processo F Processo C Swap out Processo D Num segmento Num página Deslocamento Processo E Memória Principal Tabela de segmentos Processo A Swap in Processo B ETS End da tabela de páginas Processo C Processo F Arquivo de swapping Tabela de páginas Processo B Processo D ETP Endereço do frame 55 Endereço do frame Deslocamento 56 Endereço físico 4

Thrashing Trashing pode ser definido como sendo a excessiva transferência de páginas/segmentos entre a memória principal e a memória secundária Esse problema está presente em sistemas que implementam tanto paginação como segmentação O thrashing no sistema ocorre quando existem mais processos competindo por memória principal que espaço disponível Prof André Luís Belini E-mail: andrebelini@aeducom Blog: http://profandreluisbeliniwordpresscom/ 57 5