Memoria Virtual
Ensaios: Memoria Virtual. Pesquise 862.000+ trabalhos acadêmicosPor: 90jhow • 5/8/2013 • 2.353 Palavras (10 Páginas) • 522 Visualizações
AULA 13 - Gerência de Memória
Como sabemos, os computadores utilizam uma hierarquia de memória em sua organização,
combinando memórias voláteis e não-voláteis, tais como: memória cache, memória principal e
memória secundária. Ao sistema operacional é destinada a função de coordenar e gerenciar a
utilização dessas memórias de forma eficiente. Esteserviço é implementado pelo sistema
operacional através do gerenciador de memória.
O gerenciador de memóriacontrola quais partes da memória estão sendo utilizadas e quais não
estão. Além disso, ele é responsável por alocar espaço em memória aos processos que serão
executados e liberar as posições de memória ocupadas quando os processos são finalizados. Uma
outra funcionalidade do gerenciador de memóriaé controlar o swappingde informação, constante
na execução das aplicações. Para iniciar a discussão sobre o tema da aula vamos entender,
primeiramente, a função da MMU.
Unidade de Gerência de Memória (Memory Management Unit (MMU)
A MMU é um módulo de hardware que faz o mapeamento entre os endereços lógicos (end. da
memória virtual) e os endereços físicos da memória (RAM), ou seja, é um dispositivo que
transforma endereços virtuais em endereços físicos.Para isso, a MMU normalmente traduz
número de páginas virtuais para número de páginas físicas utilizando uma cache chamada
Translation Lookaside Buffer (TLB). Na figura abaixo temos ilustrado o mecanismo de tradução
dos endereços.
Sistemas Operacionais
Prof. Dr. Jean M. Laine 2
Em geral, os programas precisam ser compilados paraque possam ser executados no sistema
computacional. Várias atividades ocorrem entre o instante em que o mesmo é compilado e o
momento em que ele inicia sua execução: geração do código objeto, código executável, alocação
em memória, nova entrada no PCB, inserção da referência do processo na fila de apto, etc. O
mecanismo tradicional de transformação de programasem processos é ilustrado abaixo:
Gerenciamento Básico de Memória
Podemos classificar os gerenciadores de memória em dois tipos: os que permitem as trocas de
processos entre a memória principal e o disco (troca de processos e paginação, mais complexos) e
os que não permitem (muito mais simplificados e limitados). A necessidade da troca de processos
e paginação acontece devido a quantidade insuficiente de memória principal para armazenar vários
programas ao mesmo tempo. Hoje em dia, as máquinas adotam um modelo denominado
multiprogramação e, portanto, os algoritmos necessitam gerenciar várias aplicações que concorrem
ao uso das unidades de processamento e armazenamento de dados.
Monoprogramação sem Troca de Processos ou Paginação
Este é o esquema mais simples de gerenciamento de memória. Neste caso a memória é
compartilhada entre o sistema operacional e o programa usuário. É importante observar que a
Sistemas Operacionais
Prof. Dr. Jean M. Laine 3
monoprogramação indica que somente um programa usuário é carregado na memória e executado
por vez. Algumas formas de organizar a memória com um sistema operacional e um processo de
usuário são mostradas na Figura 1.
O modelo apresentado em (a) foi utilizado em computadores de grande porte mas não é mais
empregado. Já a segunda organização (b) ainda é utilizada em alguns palmtopse em sistemas
embarcados. A estratégia ilustrada em (c) esteve presente nos primeiros computadores pessoais,
onde a parte do sistema operacional contida em ROM é denominada BIOS (Basic Input Output
System).
Figura 1. Formas de organização da memória.
Pelo fato de permitir que apenas um único programa usuário seja carregado em memória a cada
instante, a monoprogramação raramente é usada hoje em dia, a não ser em sistemas embarcados
simples.
Multiprogramação com Partições Fixas
Os sistemas operacionais modernos permitem que maisde um processo seja carregado em
memória, de modo que quando um fica bloqueado esperando por uma operação de E/S outro, que
esteja carregado em memória, poderá usar a CPU. Dessa forma, a multiprogramação ajuda a
melhorar a utilização da CPU evitando desperdícios de ciclo de processamento.
Para que seja possível a multiprogramação, podemos dividir a memória em npartições
(provavelmente de tamanhos diferentes). Os jobs serão colocados em filas de entrada associadas à
menor partição capaz de armazená-lo. Pelo fato de usarmos partições de tamanho fixo, todo o
restante de espaço de memória não utilizado pelo job será perdido. Este desperdício de memória é
chamado de fragmentação interna(espaço de memória perdido dentro da
...