sistemas operacionais gerenciamento de memória prof. galvez

21
Sistemas Operacionais Gerenciamento de Memória Prof. Galvez

Upload: internet

Post on 22-Apr-2015

122 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sistemas Operacionais Gerenciamento de Memória Prof. Galvez

Sistemas Operacionais

Gerenciamento de MemóriaProf. Galvez

Page 2: Sistemas Operacionais Gerenciamento de Memória Prof. Galvez

Considerações Gerais

Multiprogramação implica em manter-se vários processos em memória

Memória necessita ser alocada de forma eficiente para permitir o máximo

possível de processos

Existem diferentes técnicas para gerência de memória

Dependem do hardware do processador

Um sistema de memória possui pelo menos:

Memória principal: acessada pela CPU

Memória secundária: discos

Memória Cache (alguns possuem...)

Programas são armazenados em disco:

Executar um programa se traduz em transferi-lo da

memória secundária à memória principal

Qualquer sistema operacional tem gerência de memória

Monotarefa: gerência é simples

Multitarefa: complexa

Page 3: Sistemas Operacionais Gerenciamento de Memória Prof. Galvez

Transformação de programa em processo

Programa

Compilador

objeto

Ligador

...

executável

Carregador

RAMBiblioteca

estáticaFase de compilação

Fase de ligação

Fase de carga

Page 4: Sistemas Operacionais Gerenciamento de Memória Prof. Galvez

Hierarquia de Memória

Na década de 50 e 60 a memória principal era muito cara.

A hierarquia de memória contém níveis caracterizados pela velocidade e custo da memória em cada nível.

Page 5: Sistemas Operacionais Gerenciamento de Memória Prof. Galvez

Memória Lógica e Física

Memória Lógica

É aquela que o processo “enxerga”, aquela que o processo é capaz de endereçar e acessar usando as suas instruções. Um programa em C manipula variáveis tipo ponteiros (pointer), as quais contêm endereços lógicos.

Endereços lógicos são aqueles manipulados por um processo.

Page 6: Sistemas Operacionais Gerenciamento de Memória Prof. Galvez

Memória Lógica e Física

Memória Física

Implementada pelos circuitos integrados de memória, pela eletrônica do computador

Endereços físicos são aqueles que correspondem a uma posição real de memória

Page 7: Sistemas Operacionais Gerenciamento de Memória Prof. Galvez

Gerência de Memória

Unidade de Gerência de Memória (MMU - Memory Management Unit)

É o componente do hardware responsável por prover os mecanismos básicos que serão usados pelo SO para gerenciar a memória.

Mapeia os endereços lógicos gerados´pelos processos nos correspondentes endereços físicos que serão enviados para a memória.

PROCESSADOREnd.lógico

MMU End.físico

Memória

Page 8: Sistemas Operacionais Gerenciamento de Memória Prof. Galvez

Exemplo de MMU

Processador

Registrador LimiteInferior

Registrador LimiteSuperior

Memória< >

Interrupção(Endereço Ilegal)

Interrupção(Endereço Ilegal)

123 123

100 799

sim

não não

sim

Os endereços lógicos e físicos possuem valores idênticos (123)

O espaço de endereçamento lógico de um processo é limitado pelos

Registradores de Limites ( Inferior [100] e Superior [799] )

Qualquer endereço lógico fora desse intervalo é considerado ilegal.

Page 9: Sistemas Operacionais Gerenciamento de Memória Prof. Galvez

Exemplo de MMU

O endereço lógico é comparado com o um limite superior [500]. Caso

seja menor ou igual, então é somado ao valor do registrador de base,

resultando o endereço físico quevai para a memória.

Pode gerar endereços entre zero e 200. Valor fora desse limite são

ilegais.

Processador

Registrador de Limite Registrador de Base

Memória> +

Interrupção(Endereço Ilegal)

123 623

200 500

sim

não

Page 10: Sistemas Operacionais Gerenciamento de Memória Prof. Galvez

Partições Fixas

Forma mais simples de gerência de memória para multiprogramação. A memória é primeiramente dividida em uma parte para uso do SO e uma parte para uso dos processos de usuários.

A seguir, a parte dos usuários, é dividida em várias partições de tamanhos diferentes, porém fixos.

Sistema Operacional – 225 M

Processos de Usuários375 M

Memória Física

Sistema Operacional – 225 M

Partição 1 – 200 M

Partição 3 – 50 M

Partição 4 – 25 M

Partição 2 – 100 M

Memória Física

Page 11: Sistemas Operacionais Gerenciamento de Memória Prof. Galvez

Partições Fixas

Quando um programa deve ser carregado, é escolhida uma partição ainda livre.

Detalhe: a partição deve ter um tamanho igual ou maior que o programa.

Não existindo uma partição livre que seja grande o bastante para conter o programa, ele não poderá ser executado no momento. Deve esperar a liberação de uma partição com tamanho suficiente.

Dois problemas para esse tipo de gerência de memória!!!

Page 12: Sistemas Operacionais Gerenciamento de Memória Prof. Galvez

8 M

8 M

5 M

8 M

8 MSist. Operacional

Partições Fixas – Fragmentação Interna

Memória perdida dentro da área alocada para um processo

Um processo, não importando quão pequeno seja, ocupa uma partição inteira

Fragmentação interna

Sist. Operacional8 M

12 M

8 M

8 M

6 M

4 M

2 MSoluçãoPaliativa:Partiçõescom tamanhosdiferentes

Page 13: Sistemas Operacionais Gerenciamento de Memória Prof. Galvez

Partições Fixas – Fragmentação Externa

Memória perdida fora da área ocupada por um processo

1 M

3 M

4 M

8 M

8 MSist. Operacional

LIVRE

3 M

LIVRE

8 M

8 MSist. Operacional

5 M

Criado Processo 5 M

Não Executa!!Porque???LIVRE

4 M

LIVRE1 M

Memória Livre nãoé Contígua

Page 14: Sistemas Operacionais Gerenciamento de Memória Prof. Galvez

Partições Variáveis

Técnica mais flexível, pois o tamanho da partição é ajustado dinamicamente às necessidades exatas dos processos.

SO mantém uma lista de lacunas (espaços livres da memória física), que será percorrida sempre que um processo for criado.

Será usada uma lacuna maior ou igual ao tamanho do processo.

Se a lacuna for maior, a diferença (tamanho da lacuna – tamanho do processo) será transformada numa nova lacuna.

O processo recebe o tamanho exato que necessita.

Page 15: Sistemas Operacionais Gerenciamento de Memória Prof. Galvez

Partições Fixas

SO 225 Kbytes

Processo 1174 Kbytes

Processo 298 Kbytes

Processo 323 Kbytes

Lacuna80 Kbytes

Memória Física

Processo 485 Kbytes SO 225 Kbytes

Processo 1174 Kbytes

Processo 485 Kbytes

Processo 323 Kbytes

Lacuna80 Kbytes

Memória Física

Lacuna 13 Kbytes

Lacuna23 Kbytes

Lacuna116 Kbytes

Page 16: Sistemas Operacionais Gerenciamento de Memória Prof. Galvez

Partições Variáveis – Fragmentação Externa

A execução de processos pode criar pedaços livres de memória.

Pode haver memória disponível, mas não contígua

SO

Processo 1 320 K

Processo 3 288 K

64 K

Processo 4 128 K

96 K

Exemplo:

Criação Processo 120K

Page 17: Sistemas Operacionais Gerenciamento de Memória Prof. Galvez

Partições Variáveis – Fragmentação Externa

Possíveis Soluções

Reunir espaços adjacentes de memória.

Empregar compactação

Relocar as partições de forma a eliminar os espaços entre elas e criando uma área contígua

Desvantagem:

Consumo do processador

Acesso a Disco

Acionado somente quando ocorre fragmentação

Page 18: Sistemas Operacionais Gerenciamento de Memória Prof. Galvez

Algoritmos para alocação contígua dinâmica

Best fit Utiliza a lacuna que resultar na menor sobra Minimizar tam_processo - tam_bloco Deixar espaços livres os menores possíveis

Worst fitUtiliza a lacuna que resultar na maior sobra Maximizar tam_processo - tam_bloco Deixar espaços livres os maiores possíveis

First fitUtiliza a 1ª lacuna que encontrar com tamanho

suficiente tam_bloco > tam_processo

Circular fit Como first-fit, mas inicia a procura na lacuna seguinte à

última sobra

Page 19: Sistemas Operacionais Gerenciamento de Memória Prof. Galvez

Algoritmos para alocação contígua dinâmica

Exemplo: Criação de Um Processo de 10 K

20k

40k

30k

A

SisOp

A

C

20k

40k

30k

A

SisOp

A

C

20k

40k

30k

A

SisOp

A

C

Best-fit Worst-fit First-Fit

Page 20: Sistemas Operacionais Gerenciamento de Memória Prof. Galvez

Swap out

Swap in

Memória

Processo necessita estar na memória para ser executado

Se não há mais espaço em memória é necessário fazer um rodízio de processos em memória

Memória secundária suficientemente grande para armazenar cópias de todos os processos de usuários.

Swapping

P2

P1

Page 21: Sistemas Operacionais Gerenciamento de Memória Prof. Galvez

Swapping

P1

P1Swap out

Swap in

Memória

Um processo maior que a memória.