TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Memoria Virtual

Ensaios: Memoria Virtual. Pesquise 860.000+ trabalhos acadêmicos

Por:   •  5/8/2013  •  2.353 Palavras (10 Páginas)  •  483 Visualizações

Página 1 de 10

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

...

Baixar como (para membros premium)  txt (15.4 Kb)  
Continuar por mais 9 páginas »
Disponível apenas no TrabalhosGratuitos.com