Você está na página 1de 18

GESTÃO DE MEMÓRIA

GESTÃO DE MEMÓRIA
o Um programa reside no disco sob a forma de ficheiro executável

o Para ser executado, o programa tem de ser colocado em memória e associado a


um processo

o À medida que o processo é executado, este pode aceder ao subsistema de


gestão de memória para:
o Aceder ao seu código
o Aceder a dados
o Requisitar espaço de memória

o Ao terminar, a memória por ele utilizada é libertada


GESTÃO DE MEMÓRIA

Funções do Sistema de Gestão da Memória

 Registo actualizado das zonas de memória sob utilização e por quem

 Decisão sobre os processos a carregar em memória face ao espaço ainda


disponível em memória

 Reservar e libertar espaço de memória


GESTÃO DE MEMÓRIA
GESTÃO BÁSICA DA MEMORIA

Os sistemas de gestão de memória podem se dividir em duas classes: sistemas que


durante a sua execução levam e trazem processos entre memoria principal e o
disco (troca de processos e paginação), e sistemas mais simples, os que não o
fazem.

Monoprogramação sem troca de processos ou paginação


Quando se utiliza o sistema mais simples de gestão de memoria. A memória é
partilhada entre o programa e o sistema operativo, e apenas um programa é
executado por vez.

Sistemas que praticamente não sao mais usado, (ex MS-DOS)


GESTÃO DE MEMÓRIA
GESTÃO BÁSICA DA MEMORIA
Monoprogramação sem troca de processos ou paginação

Proteção na Alocação simples Sub-utilização da memória principal

Apesar de simples implementação e código reduzido, a alocação simples não permite a


utilização eficiente dos recursos do sistema, pois apenas um programa pode dispor destes
recursos. Há inclusive um desperdício de espaço de memória, caso o programa não venha a
ocupar toda a área reservada para ele.
GESTÃO DE MEMÓRIA
GESTÃO BÁSICA DA MEMORIA
Multiprogramação

A maioria dos sistemas modernos, permite que múltiplos Processos estejam em


execução simultânea, o que significa que quando um processo for bloqueado - por
exemplo, para Esperar que uma operação E/S seja finalizada outro processo
poderá usar a CPU. Assim, a multiprogramação aumenta a utilização da CPU

A maneira mais simples de realizar a multiprogramacao consiste em simplesmente


dividir a memória em n partições.

Um Job ao chegar, pode ser colocado em uma fila de entrada associada á menor
partição, grande o suficiente para armazena-la.
GESTÃO DE MEMÓRIA
GESTÃO BÁSICA DA MEMORIA

Multiprogramação com Partição fixa

o A memória é dividida em blocos fixos.


.

o Cada processo novo é carregado num


bloco com espaço suficiente para o
albergar

Blocos de igual Tamanho !


GESTÃO DE MEMÓRIA
GESTÃO BÁSICA DA MEMORIA

Multiprogramação com Partição Dinâmica

•. As partições podem ser de tamanho e


número variáveis
• A cada processo é-lhe concedida
exactamente a memória de que necessita

Blocos de tamanho Diferente !


GESTÃO DE MEMÓRIA
Troca de processos (Swapping)
Ás vezes não há memória principal suficiente para conter todos os processos
activos, de modo que os excedentes devem ser mantidos em disco e trazidos
dinamicamente para a memória a fim de serem executados. Dois métodos podem
ser executados: o swapping ou a memoria virtual.

Swapping?
o Esquema que envolve a memória principal e a memória secundária (disco)
o A ideia consiste em transferir processos da memória principal para o disco e
vice-versa
o Um possível critério será transferir para o disco um processo que bloqueie,
e trazer para a RAM um processo que se torne activo
GESTÃO DE MEMÓRIA
Troca de processos (Swapping)

o Esta estratégia é utilizada em conjunto com partições de dimensões variáveis


o Conduz à proliferação de buracos (fragmentação) – é necessário recorrer à
compactação da memória
GESTÃO DE MEMÓRIA
Algoritmos de Alocação de Memória

Os algoritmos de alocação de memória devem ter como objectivo reduzir a


fragmentação da memória.

First fit – procura o primeiro buraco da lista com dimensão suficiente para
carregar o programa
Next fit – variante do anterior – procura a partir do ponto em que foi encontrado
um buraco anteriormente
Best fit – procura o buraco com a dimensão que melhor se ajusta ao programa a
carregar
Worst fit – procura o maior buraco disponível, na esperança de que o espaço que
sobra possa ainda ser utilizado por outros programas a carregar no futuro
GESTÃO DE MEMÓRIA
Algoritmos de Alocação de Memória
Considere um Programa (P) para ser colocado na memória necessitando de 187
Kbytes para correr. O esquema a seguir mostra a capacidade e o estado de
ocupação da memória particionada. Usando os algorítmos de alocação de
memória, indique como seria ocupada a memória pelo programa (P)

S. O.

?
P1 500 Kb
P2 350 Kb
P3 200 Kb
Programa A
P4 300 Kb
P5 200 Kb
GESTÃO DE MEMÓRIA
Algoritmos de Alocação de Memória

First Fit (onde primeiro se ajusta): O programa P seria colocado na partição


P1. Neste caso, o:
Programa ocupa a partição P1 porque é a primeira partição disponível e com
capacidade para ele
Best Fit (onde melhor se ajusta): O programa P seria colocado em P5. Neste
caso, o programa
ocupa P5 porque é nela que o programa se ajusta, deixando disperdiçado
pouca memória.
Worst Fit (onde pior se ajusta): O programa P seria colocado em P1. Porque
esta é a partição
Com maior capacidade e deste modo o programa deixa disperdiçado maior
espaço possível.
GESTÃO DE MEMÓRIA
Memoria virtual
A ideia básica por detrás deste conceito é de que o tamanho total do programa (o
seu código mais os seus dados e a pilha) pode exceder a quantidade de memória
física disponível para ele.

O sistema operacional mantém as partes activas do programa na memória e o


restante em disco.

Permite que programas possam ser executados mesmo que estejam parcialmente
carregados na memória principal.
GESTÃO DE MEMÓRIA
Memoria virtual
Paginação

A maioria dos sistemas com memória virtual utiliza esta técnica. Em qualquer
computador existe um conjunto de endereços de memória que os programas
podem criar ao ser executados. Esses endereços são denominados de endereços
virtuais e constituem o espaço de endereçamento virtual.

Nos sistemas que utilizam esta técnica existe uma MMU – unidade de gestão
memória. – que mapeia endereços virtuais em endereços físicos.

Uma cópia completa do código do programa deve estar presente em disco, de


modo que partes possam ser carregadas dinamicamente na memória, quando
necessário.
GESTÃO DE MEMÓRIA
Memoria virtual
Paginação

O espaço de endereçamento virtual é dividido em unidades denominadas páginas


(pages). As unidades correspondentes em memória física são denominadas
molduras de páginas (page frames).

As páginas e as molduras de página são sempre do mesmo tamanho. As


transferências entre memória e disco são sempre em unidades de página.
GESTÃO DE MEMÓRIA
Memoria virtual
Algoritmos de substituição de paginas

Quando uma falta de página ocorre, o sistema operativo precisa de escolher uma
página a ser removida memória a fim de libertar espaço para uma nova página a
ser trazida para a memória.

Se a página a ser removida tiver sido modificada enquanto esteve na memória, ela
deverá ser reescrita no disco com o propósito de actualizar a cópia virtual
existente. Mas se a página não foi modificada, a cópia em disco já está actualizada
e assim não é necessário reescreve-la.

Embora seja possível escolher aleatoriamente uma página a ser descartada a cada
falta de página, o desempenho do sistema será muito melhor se a página escolhida
for uma que não estiver sendo muito utilizada
GESTÃO DE MEMÓRIA
Memoria virtual
Algoritmos de substituição de paginas

Você também pode gostar