gerenciamento de memória. -...

33
Gerenciamento de Memória Prof. Dr. José Luís Zem Prof. Dr. Renato Kraide Soffner Prof. Ms. Rossano Pablo Pinto Faculdade de Tecnologia de Americana Centro Paula Souza

Upload: dangnhu

Post on 23-Dec-2018

221 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Gerenciamento de Memória. - rossano.pro.brrossano.pro.br/fatec/cursos/soii/gerenciamento_memoria_fatec.pdf · Gerenciamento de Memória Prof. Dr. José Luís Zem Prof. Dr. Renato

Gerenciamento de Memória

Prof. Dr. José Luís ZemProf. Dr. Renato Kraide SoffnerProf. Ms. Rossano Pablo Pinto

Faculdade de Tecnologia de Americana

Centro Paula Souza

Page 2: Gerenciamento de Memória. - rossano.pro.brrossano.pro.br/fatec/cursos/soii/gerenciamento_memoria_fatec.pdf · Gerenciamento de Memória Prof. Dr. José Luís Zem Prof. Dr. Renato

Tópicos

Introdução

Alocação Contígua Simples

Alocação Particionada Alocação Particionada Estática Alocação Particionada Dinâmica Estratégias para a Escolha da Partição

Swapping

Page 3: Gerenciamento de Memória. - rossano.pro.brrossano.pro.br/fatec/cursos/soii/gerenciamento_memoria_fatec.pdf · Gerenciamento de Memória Prof. Dr. José Luís Zem Prof. Dr. Renato

Introdução

Na memória principal residem todos os programas e dados que serão executados ou referenciados pelo processador.

Toda vez que deseja-se executar um programa residente na memória secundária, deve-se, de alguma forma, carregá-lo para a memória principal.

Organização e gerência de memória principal têm sido fatores importantes no projeto de sistemas operacionais.

Page 4: Gerenciamento de Memória. - rossano.pro.brrossano.pro.br/fatec/cursos/soii/gerenciamento_memoria_fatec.pdf · Gerenciamento de Memória Prof. Dr. José Luís Zem Prof. Dr. Renato

Introdução

Historicamente, a memória principal sempre foi vista como um recurso escasso e caro.

Uma das maiores preocupações dos projetistas era desenvolver sistemas operacionais que não ocupassem muita memória e, ao mesmo tempo, otimizassem a sua utilização.

Enquanto nos sistemas monoprogramáveis a gerência de memória não é muito complexa, nos sistemas multiprogramáveis ela se torna crítica.

Page 5: Gerenciamento de Memória. - rossano.pro.brrossano.pro.br/fatec/cursos/soii/gerenciamento_memoria_fatec.pdf · Gerenciamento de Memória Prof. Dr. José Luís Zem Prof. Dr. Renato

Alocação Contígua Simples

A alocação contígua simples foi implementada nos primeiros sistemas operacionais desenvolvidos, porém, ainda está presente em alguns sistemas monoprogramáveis.

Nesse tipo de organização, a memória principal é dividida em duas partes: uma para o sistema operacional; outra para o programa do usuário.

M e m ó r i a P r i n c i p a l

S i s t e m aO p e r a c i o n a l

Á r e a p a r ap r o g r a m a

Page 6: Gerenciamento de Memória. - rossano.pro.brrossano.pro.br/fatec/cursos/soii/gerenciamento_memoria_fatec.pdf · Gerenciamento de Memória Prof. Dr. José Luís Zem Prof. Dr. Renato

Alocação Contígua Simples

O usuário tem controle sobre toda a memória principal, podendo ter acesso a qualquer posição de memória, inclusive alterar e destruir o sistema operacional.

Para protegê-lo desses ataques, conscientes ou não, alguns sistemas operacionais implementam proteção através de um registrador, que delimita as áreas do sistema operacional e do usuário.

M e m ó r i a P r i n c i p a l

R e g i s t r a d o rS i s t e m a

O p e r a c i o n a l

Á r e a p a r ap r o g r a m a

Page 7: Gerenciamento de Memória. - rossano.pro.brrossano.pro.br/fatec/cursos/soii/gerenciamento_memoria_fatec.pdf · Gerenciamento de Memória Prof. Dr. José Luís Zem Prof. Dr. Renato

Alocação Contígua Simples

Apesar de sua simplicidade de implementação e código reduzido, a alocação contígua simples não permite a utilização eficiente do processador e da memória pois apenas um usuário pode utilizar este recurso.

Em relação à memória, caso o programa não a preencha totalmente, existirá um espaço de memória sem utilização.

Fragmentação.M e m ó r i a P r i n c i p a l

S i s t e m aO p e r a c i o n a l

P r o g r a m ad o u s u á r i o

Á r e a l i v r e

Page 8: Gerenciamento de Memória. - rossano.pro.brrossano.pro.br/fatec/cursos/soii/gerenciamento_memoria_fatec.pdf · Gerenciamento de Memória Prof. Dr. José Luís Zem Prof. Dr. Renato

Alocação Contígua Simples

No princípio, os programas dos usuários estavam limitados ao tamanho da memória principal disponível.

A solução encontrada para o problema foi dividir o programa em partes (módulos), de forma que pudessem executar independentemente uma da outra, utilizando a mesma área da memória.

Esta técnica recebeu o nome de overlay.

Page 9: Gerenciamento de Memória. - rossano.pro.brrossano.pro.br/fatec/cursos/soii/gerenciamento_memoria_fatec.pdf · Gerenciamento de Memória Prof. Dr. José Luís Zem Prof. Dr. Renato

Alocação Contígua Simples

M e m ó r i a P r i n c i p a l

C a d a s t r a m e n t o

I m p r e s s ã o

S i s t e m a O p e r a c i o n a l2 K b

3 K b

4 K b

4 K b

2 K b

2 K b1 K b

M ó d u l o p r i n c i p a l

Á r e a d e o v e r l a y

Á r e a l i v r e

Á r e a n ã ou t i l i z a d a

Page 10: Gerenciamento de Memória. - rossano.pro.brrossano.pro.br/fatec/cursos/soii/gerenciamento_memoria_fatec.pdf · Gerenciamento de Memória Prof. Dr. José Luís Zem Prof. Dr. Renato

Alocação Particionada

Os sistemas monoprogramáveis permitem que o processador permaneça ocioso e que a memória seja subutilizada, enquanto um programa aguarda o término de uma operação de I/O, por exemplo.

A multiprogramação vem resolver este problema, pois enquanto aguarda algum evento, outros processos podem ser executados pela CPU nesse intervalo de tempo.

Para a multiprogramação ser eficiente, é necessário que vários programas estejam na memória ao mesmo tempo, daí a necessidade de uma nova forma de organização da memória principal.

Page 11: Gerenciamento de Memória. - rossano.pro.brrossano.pro.br/fatec/cursos/soii/gerenciamento_memoria_fatec.pdf · Gerenciamento de Memória Prof. Dr. José Luís Zem Prof. Dr. Renato

Alocação Particionada Estática

Nos primeiros sistemas multiprogramáveis, a memória foi dividida em pedaços de tamanho fixo, chamados partições.

O tamanho das partições eram estabelecidos na fase de inicialização do sistema (boot), em função do tamanho dos programas que seriam executados no ambiente.

Page 12: Gerenciamento de Memória. - rossano.pro.brrossano.pro.br/fatec/cursos/soii/gerenciamento_memoria_fatec.pdf · Gerenciamento de Memória Prof. Dr. José Luís Zem Prof. Dr. Renato

Alocação Particionada Estática

M e m ó r i a P r i n c i p a l

S i s t e m a O p e r a c i o n a l

2 K b

5 K b

8 K b

P a r t i ç ã o 1P a r t i ç ã o

T a b e l a d e p a r t i ç õ e s

T a m a n h o

1 2 K b

2 5 K b

3 8 K b

P a r t i ç ã o 2

P a r t i ç ã o 3P r o g r a m a s a s e r e m e x e c u t a d o s :

AE

3 K b

D

6 K b

C

1 K b

B

4 K b 2 K b

Page 13: Gerenciamento de Memória. - rossano.pro.brrossano.pro.br/fatec/cursos/soii/gerenciamento_memoria_fatec.pdf · Gerenciamento de Memória Prof. Dr. José Luís Zem Prof. Dr. Renato

Alocação Particionada Estática

No princípio, os programas só podiam ser executados em uma das partições, mesmo que outras estivessem disponíveis.

Essa limitação era devido aos compiladores utilizados na época, que geravam códigos absolutos.

Este tipo de alocação recebeu o nome de alocação particionada estática absoluta.

Page 14: Gerenciamento de Memória. - rossano.pro.brrossano.pro.br/fatec/cursos/soii/gerenciamento_memoria_fatec.pdf · Gerenciamento de Memória Prof. Dr. José Luís Zem Prof. Dr. Renato

Alocação Particionada Estática

M e m ó r i a P r i n c i p a l

S i s t e m a O p e r a c i o n a l

2 K b

5 K b

8 K b

P a r t i ç ã o 1

P a r t i ç ã o 2

P a r t i ç ã o 3

A

B

D

C

E

3 K b

6 K b

1 K b

4 K b

2 K b

Page 15: Gerenciamento de Memória. - rossano.pro.brrossano.pro.br/fatec/cursos/soii/gerenciamento_memoria_fatec.pdf · Gerenciamento de Memória Prof. Dr. José Luís Zem Prof. Dr. Renato

Alocação Particionada Estática

Com a evolução dos compiladores, linkers e loadres, a geração de código relocável foi possível e os programas puderam ser carregados em qualquer partição.

A esse novo tipo de alocação deu-se o nome de alocação particionada estática relocável.

M e m ó r i a P r i n c i p a l

S i s t e m a O p e r a c i o n a l

2 K b

5 K b

8 K b

P r o g r a m a C

P r o g r a m a A

P r o g r a m a B

ED

6 K b 3 K b

Page 16: Gerenciamento de Memória. - rossano.pro.brrossano.pro.br/fatec/cursos/soii/gerenciamento_memoria_fatec.pdf · Gerenciamento de Memória Prof. Dr. José Luís Zem Prof. Dr. Renato

Alocação Particionada Estática

Para manter o controle sobre quais as partições estavam alocadas ou não, os sistemas possuíam uma tabela delimitando cada partição, seu tamanho e se estava em uso ou não.

M e m ó r i a P r i n c i p a l

S i s t e m a O p e r a c i o n a l

1

2

3

P r o g r a m a C

Á r e a l i v r e

P r o g r a m a B

P a r t i ç ã o T a m a n h o L i v r e

1 2 K b N ã o

2 5 K b S i m

3 8 K b N ã o

Page 17: Gerenciamento de Memória. - rossano.pro.brrossano.pro.br/fatec/cursos/soii/gerenciamento_memoria_fatec.pdf · Gerenciamento de Memória Prof. Dr. José Luís Zem Prof. Dr. Renato

Alocação Particionada Estática

A proteção baseava-se em dois registradores, que indicavam os limites inferiores e superiores da partição onde o processo seria carregado.

M e m ó r i a P r i n c i p a l

S i s t e m a O p e r a c i o n a l E n d e r e ç o i n i c i a l

E n d e r e ç o f i n a l

Page 18: Gerenciamento de Memória. - rossano.pro.brrossano.pro.br/fatec/cursos/soii/gerenciamento_memoria_fatec.pdf · Gerenciamento de Memória Prof. Dr. José Luís Zem Prof. Dr. Renato

Alocação Particionada Estática

Tanto nos sistemas de alocação absoluta como nos sistemas com alocação relocável, os processos não preenchiam totalmente as partições onde eram alocadas. Desta forma, a fragmentação também estava presente nestes esquemas.

M e m ó r i a P r i n c i p a l

S i s t e m a O p e r a c i o n a l

1 K b

3 K b

5 K b

P r o g r a m a C

P r o g r a m a A

P r o g r a m a E

BD

6 K b 4 K b

Page 19: Gerenciamento de Memória. - rossano.pro.brrossano.pro.br/fatec/cursos/soii/gerenciamento_memoria_fatec.pdf · Gerenciamento de Memória Prof. Dr. José Luís Zem Prof. Dr. Renato

Alocação Particionada Dinâmica

Aumenta o grau de compartilhamento de memória.

Diminui o grau de fragmentação.

Neste esquema foi eliminado o conceito de partições com tamanho fixo.

Cada programa utiliza o espaço que necessitasse, desde que existisse este espaço na memória,transformando-o em uma partição.

Page 20: Gerenciamento de Memória. - rossano.pro.brrossano.pro.br/fatec/cursos/soii/gerenciamento_memoria_fatec.pdf · Gerenciamento de Memória Prof. Dr. José Luís Zem Prof. Dr. Renato

Alocação Particionada Dinâmica

M e m ó r i a P r i n c i p a lM e m ó r i a P r i n c i p a l

S i s t e m a O p e r a c i o n a lS i s t e m a O p e r a c i o n a l

4 K b

1 K b

3 K b

5 K b

2 K b

1 5 K b

P r o g r a m a C

P r o g r a m a B

P r o g r a m a A

P r o g r a m a EBA

2 K b

E

3 K b

C

1 K b 4 K b

Page 21: Gerenciamento de Memória. - rossano.pro.brrossano.pro.br/fatec/cursos/soii/gerenciamento_memoria_fatec.pdf · Gerenciamento de Memória Prof. Dr. José Luís Zem Prof. Dr. Renato

Alocação Particionada Dinâmica

Neste esquema também ocorre a fragmentação e ela aparecerá na medida em que os processos forem terminado e deixando espaços cada vez memores na memória, não permitindo o carregamento de outros processos.

M e m ó r i a P r i n c i p a l

S i s t e m a O p e r a c i o n a l

4 K b

3 K b

5 K b

P r o g r a m a C

P r o g r a m a A

D

6 K b

Page 22: Gerenciamento de Memória. - rossano.pro.brrossano.pro.br/fatec/cursos/soii/gerenciamento_memoria_fatec.pdf · Gerenciamento de Memória Prof. Dr. José Luís Zem Prof. Dr. Renato

Alocação Particionada Dinâmica

Uma solução seria fazer com que os espaços adjacentes fossem reunidos, produzindo um único espaço de tamanho maior.

M e m ó r i a P r i n c i p a lM e m ó r i a P r i n c i p a l

S i s t e m a O p e r a c i o n a lS i s t e m a O p e r a c i o n a l

8 K b

4 K b

3 K b

5 K b5 K b

P r o g r a m a C

P r o g r a m a AP r o g r a m a A

Page 23: Gerenciamento de Memória. - rossano.pro.brrossano.pro.br/fatec/cursos/soii/gerenciamento_memoria_fatec.pdf · Gerenciamento de Memória Prof. Dr. José Luís Zem Prof. Dr. Renato

Alocação Particionada Dinâmica

A segunda maneira seria realizar uma relocação de todas as partições ocupadas, eliminando todos os espaços entre elas e criando-se uma única área livre contígua.

M e m ó r i a P r i n c i p a lM e m ó r i a P r i n c i p a l

S i s t e m a O p e r a c i o n a l

R e l o c a ç ã o

S i s t e m a O p e r a c i o n a l

4 K b

3 K b

1 2 K b

5 K b

P r o g r a m a C

P r o g r a m a C

P r o g r a m a A

P r o g r a m a A

Page 24: Gerenciamento de Memória. - rossano.pro.brrossano.pro.br/fatec/cursos/soii/gerenciamento_memoria_fatec.pdf · Gerenciamento de Memória Prof. Dr. José Luís Zem Prof. Dr. Renato

Estratégias para Escolha da Partição

Os sistemas operacionais implementam, basicamente, três estratégias para determinar em qual partição livre um programa será carregado para execução.

Essas estratégias tentam evitar, ou diminuir, o problema da fragmentação antes que ela ocorra.

Independente do algoritmo utilizado, o sistema possui uma lista de áreas livres ( free list ), com endereço de cada área livre e seu respectivo tamanho.

Page 25: Gerenciamento de Memória. - rossano.pro.brrossano.pro.br/fatec/cursos/soii/gerenciamento_memoria_fatec.pdf · Gerenciamento de Memória Prof. Dr. José Luís Zem Prof. Dr. Renato

Estratégias para Escolha da Partição

M e m ó r i a P r i n c i p a l

S i s t e m a O p e r a c i o n a l

4 K b

3 K b

5 K b

P r o g r a m a C

P r o g r a m a A

Á r e a s l i v r e sÁ r e a l i v r e 1

Á r e a l i v r e 2

Á r e a l i v r e 3

T a m a n h o

1 4 K b

2 5 K b

3 3 K b

Page 26: Gerenciamento de Memória. - rossano.pro.brrossano.pro.br/fatec/cursos/soii/gerenciamento_memoria_fatec.pdf · Gerenciamento de Memória Prof. Dr. José Luís Zem Prof. Dr. Renato

Estratégias para Escolha da Partição

BEST FIT Esse mecanismo escolhe a melhor partição (best fit), ou seja,

aquela em que o processo deixa o menor espaço sem utilização.

WORST FIT Esse mecanismo escolhe a pior partição (worst fit), ou seja,

aquela em que o processo deixa o maior espaço sem utilização.

FIRST FIT Esse mecanismo escolhe a primeira partição (first fit) livre, de

tamanho suficiente para carregar o processo.

Page 27: Gerenciamento de Memória. - rossano.pro.brrossano.pro.br/fatec/cursos/soii/gerenciamento_memoria_fatec.pdf · Gerenciamento de Memória Prof. Dr. José Luís Zem Prof. Dr. Renato

Estratégias para Escolha da Partição

M e m ó r i a P r i n c i p a l

S i s t e m a O p e r a c i o n a l

4 K b

3 K b

5 K b

P r o g r a m a C

P r o g r a m a A

F

1 K b

S i s t e m a O p e r a c i o n a l

2 K b

P r o g r a m a C

P r o g r a m a F

P r o g r a m a A

Á r e a l i v r e

( a ) Be s t - f i t

Page 28: Gerenciamento de Memória. - rossano.pro.brrossano.pro.br/fatec/cursos/soii/gerenciamento_memoria_fatec.pdf · Gerenciamento de Memória Prof. Dr. José Luís Zem Prof. Dr. Renato

Estratégias para Escolha da Partição

M e m ó r i a P r i n c i p a l

S i s t e m a O p e r a c i o n a l

4 K b

3 K b

5 K b

P r o g r a m a C

P r o g r a m a A

F

1 K b

S i s t e m a O p e r a c i o n a l

4 K b

P r o g r a m a C

P r o g r a m a A

Á r e a l i v r e

P r o g r a m a F( b ) W o r s t - f i t

Page 29: Gerenciamento de Memória. - rossano.pro.brrossano.pro.br/fatec/cursos/soii/gerenciamento_memoria_fatec.pdf · Gerenciamento de Memória Prof. Dr. José Luís Zem Prof. Dr. Renato

Estratégias para Escolha da Partição

M e m ó r i a P r i n c i p a l

S i s t e m a O p e r a c i o n a l

4 K b

3 K b

5 K b

P r o g r a m a C

P r o g r a m a A

F

1 K b

S i s t e m a O p e r a c i o n a l

3 K b

P r o g r a m a C

P r o g r a m a A

Á r e a l i v r e

P r o g r a m a F( c ) F i r s t - f i t

Page 30: Gerenciamento de Memória. - rossano.pro.brrossano.pro.br/fatec/cursos/soii/gerenciamento_memoria_fatec.pdf · Gerenciamento de Memória Prof. Dr. José Luís Zem Prof. Dr. Renato

Swapping

A técnica de swapping veio para tentar resolver o problema de insuficiência de memória para todos os usuários.

Nos esquemas apresentados até o momento, um processo permanecia na memória principal até o final de sua execução, inclusive quando realizava operações de entrada e saída.

O swapping é uma técnica aplicada à gerência de memória, para processos que esperam por memória livre para serem processados.

O sistema escolhe um processo residente que é levado da memória para o disco (swapped out), retornando posteriormente para a memória principal (swapped in), como se nada tivesse ocorrido.

Page 31: Gerenciamento de Memória. - rossano.pro.brrossano.pro.br/fatec/cursos/soii/gerenciamento_memoria_fatec.pdf · Gerenciamento de Memória Prof. Dr. José Luís Zem Prof. Dr. Renato

Swapping

M e m ó r i a P r i n c i p a l

M e m ó r i a P r i n c i p a l

S i s t e m aO p e r a c i o n a l

S i s t e m aO p e r a c i o n a l

P r o g r a m a A

P r o g r a m a A

P r o g r a m a G

Á r e a L i v r eS w a p i n

S w a p o u t

A r q u i v od e S w a p

P r o g r a m a E

P r o g r a m a E

P r o g r a m a B

P r o g r a m a H

H

B

B

Page 32: Gerenciamento de Memória. - rossano.pro.brrossano.pro.br/fatec/cursos/soii/gerenciamento_memoria_fatec.pdf · Gerenciamento de Memória Prof. Dr. José Luís Zem Prof. Dr. Renato

Swapping

Um dos problemas gerados pelo swapping é a relocação dos processos.

O loader relocável permite que um processo seja colocado em qualquer posição de memória, porém a relocação é realizada no momento do carregamento.

O conceito de swapping permitiu um maior compartilhamento de memória e, consequentemente, um maior throughput.

Mostrou-se eficiente em ambientes onde existiam poucos usuários competindo pela memória e com aplicações pequenas.

Seu maior problema é o custo das operações de entrada e saída.

Page 33: Gerenciamento de Memória. - rossano.pro.brrossano.pro.br/fatec/cursos/soii/gerenciamento_memoria_fatec.pdf · Gerenciamento de Memória Prof. Dr. José Luís Zem Prof. Dr. Renato

Gerenciamento de Memória

Prof. Dr. José Luís ZemProf. Dr. Renato Kraide SoffnerProf. Ms. Rossano Pablo Pinto

Faculdade de Tecnologia de Americana

Centro Paula Souza