arquitetura de sistemas operacionais · •os sistema operacionais implementam, basicamente, três...

46
Arquitetura de Sistemas Arquitetura de Sistemas Operacionais Operacionais Operacionais Operacionais Fabiano Utiyama Fabiano Utiyama Capítulo 9 Capítulo 9 Gerência de Memória Gerência de Memória 9/1

Upload: doliem

Post on 08-Nov-2018

220 views

Category:

Documents


0 download

TRANSCRIPT

Arquitetura de Sistem as Arquitetura de Sistem as OperacionaisOperacionaisOperacionaisOperacionais

Fabiano Ut iyam aFabiano Ut iyam a

Capítulo 9Capítulo 9Gerência de Mem óriaGerência de Mem óriaGerência de Mem óriaGerência de Mem ória

9/1

I nt rodução

• Nos sistemas monoprogramáveis a gerência de memória não é muito gerência de memória não é muito complexa

• Nos sistemas multiprogramáveis ela se • Nos sistemas multiprogramáveis ela se torna crítica, devido à necessidade de se maximizar o número de usuários e se maximizar o número de usuários e aplicações utilizando eficientemente o espaço da memória principalespaço da memória principal

9/2

Funções Básicas

• Em geral, programas são armazenados em memórias secundárias, como disco em memórias secundárias, como disco ou fita, por ser um meio não-volátil, abundante e de baixo custoabundante e de baixo custo

• Como o processador somente executa instruções localizadas na memória instruções localizadas na memória principal, o sistema operacional deve sempre transferir programas da sempre transferir programas da memória secundária para a memória principal antes de serem executados

9/3

Funções Básicas

• A gerência de memória deve tentar manter na memória principal o maior manter na memória principal o maior número de processos residentes, permitindo maximizar o permitindo maximizar o compartilhamento do processador e demais recursos computacionaisdemais recursos computacionais

• Mesmo na ausência de espaço livre, o sistema deve permitir que novos sistema deve permitir que novos processos sejam aceitos e executados (swapping)

9/4

Funções Básicas

• A gerência de memória deve permitir a execução de programas que sejam execução de programas que sejam maiores que a memória física disponíveldisponível

• Implementada através de técnicas como:como:– Overlay– Memória virtual– Memória virtual

9/5

Funções Básicas

• Em um ambiente de multiprogramação, o sistema multiprogramação, o sistema operacional deve proteger as áreas de memória ocupadas por cada processo, memória ocupadas por cada processo, além da área onde reside o próprio sistema sistema

9/6

Alocação Cont ígua Sim ples

• Foi implementada nos primeiros sistemas operacionais, e ainda está sistemas operacionais, e ainda está presente em alguns sistemas monoprogramáveismonoprogramáveis

• A memória principal é subdividida em duas áreas:duas áreas:– Uma para o sistema operacional– Outra para o programa do usuário– Outra para o programa do usuário

9/7

Alocação Cont ígua Sim ples

• O programador deve desenvolver suas aplicações preocupado, apenas, em aplicações preocupado, apenas, em não ultrapassar o espaço de memória disponíveldisponível

• Como o usuário tem acesso a toda memória principal, alguns sistemas memória principal, alguns sistemas implementam proteção através de um registrador que delimita as áreas do registrador que delimita as áreas do sistema operacional e do usuário

• Apenas um usuário dispõe dos recursos

9/8

• Apenas um usuário dispõe dos recursos

Alocação Cont ígua Sim ples

Memória PrincipalMemória Principal

SistemaOperacional

Área paraÁrea paraprograma

9/9

Alocação Cont ígua Sim ples

Memória Principal

Registrador

Memória Principal

RegistradorSistema

OperacionalSistema

Operacional

Área paraprograma

Programado usuário

Área livre

9/10

Técnicas de Overlay

• O programa alocada na memória é dividido em módulos, de forma que dividido em módulos, de forma que seja possível a execução independente de cada módulo, utilizando uma de cada módulo, utilizando uma mesma área de memória

• Essa técnica é chamada de overlay• Essa técnica é chamada de overlay

9/11

Técnica de Overlay

Memória Principal

CadastramentoSistema Operacional2 Kb

3 Kb Módulo principal3 Kb

4 Kb

4 KbMódulo principal

Área de overlay Impressão4 Kb

2 Kb1 Kb

Área de overlay

Área livre

Área não 2 KbÁrea nãoutilizada

9/12

Técnica de Overlay

• Pode trazer implicações no desempenho das aplicações, devido à desempenho das aplicações, devido à possibilidade de transferência excessiva dos módulos entre a excessiva dos módulos entre a memória principal e secundária

9/13

Alocação Part icionada Estát ica

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

• O tamanho das partições, estabelecido na fase de inicialização do sistema, era na fase de inicialização do sistema, era definido em função do tamanho dos programas que executariam no programas que executariam no ambiente

9/14

Alocação Part icionada Estát ica

• Sempre que fosse necessária a alteração do tamanho de uma partição, alteração do tamanho de uma partição, o sistema deveria ser desativado e reinicializado com uma nova reinicializado com uma nova configuração

• Esse tipo de gerência de memória é • Esse tipo de gerência de memória é conhecido como alocação particionada estática ou fixaestática ou fixa

9/15

Alocação Particionada Estática

Memória PrincipalMemória Principal

Sistema Operacional

2 KbPartição 1Partição

Tabela de partições

Tamanho

5 Kb

1 2 Kb

2 5 Kb

3 8 Kb

Partição 2

8 Kb

3 8 Kb

Partição 3Programas a serem executados:

AE D C B AE

3 Kb

D

6 Kb

C

1 Kb

B

4 Kb 2 Kb

9/16

Alocação Part icionada Estát ica Absoluta Absoluta

• Inicialmente, os programas só podiam ser carregados e executados em ser carregados e executados em apenas uma partição específica, mesmo se outras estivessem mesmo se outras estivessem disponíveis

• A esse tipo de gerência de memória • A esse tipo de gerência de memória chamou-se alocação particionada estática absolutaestática absoluta

9/17

Alocação Part icionada Estát ica AbsolutaAbsoluta

Memória PrincipalMemória Principal

Sistema Operacional

2 KbPartição 1AC 2 Kb

5 Kb

Partição 1

Partição 2

A

B

C

E

1 Kb 2 Kb

3 Kb 4 Kb

8 KbPartição 3D

6 Kb

9/18

Alocação Part icionada Estát ica RelocávelRelocável

• No código relocável, todos os programas podem ser executados a programas podem ser executados a partir de qualquer partição

9/19

Alocação Part icionada Estát ica RelocávelRelocável

Memória Principal

Sistema Operacional

2 KbPrograma C

5 KbPrograma AED

6 Kb 3 Kb6 Kb 3 Kb

8 KbPrograma B

9/20

Tabela de Alocação de Part ições

• Para manter o controle sobre quais partições estão alocadas, a gerência de partições estão alocadas, a gerência de memória mantém uma tabela com o endereço inicial de cada partição, seu endereço inicial de cada partição, seu tamanho e se está em uso

9/21

Tabela de Alocação de Part içõesPart ições

Memória Principal

Sistema Operacional

1 Programa C

Partição Tamanho Livre

1 2 Kb Não 1

2

Programa C

Área livre

1 2 Kb Não

2 5 Kb Sim

3 8 Kb Não

3 Programa B3 Programa B

9/22

Proteção na Alocação Part icionada

• Neste esquema de alocação de memória a proteção baseia-se em dois memória a proteção baseia-se em dois registradores, que indicam os limites inferior e superior da partição onde o inferior e superior da partição onde o programa está sendo executado

9/23

Proteção na Alocação Part icionadaPart icionada

Memória PrincipalMemória Principal

Sistema Operacional Endereço inicial

Endereço final

9/24

Fragm entação I nterna

• Tanto nos sistemas de alocação absoluta quanto nos de alocação absoluta quanto nos de alocação relocável os programas, normalmente, não preenchem totalmente as partições onde são carregadosonde são carregados

• Este tipo de problema, decorrente da alocação fixa das partições, é alocação fixa das partições, é conhecido como fragmentação interna

• Exemplo de sistema operacional que • Exemplo de sistema operacional que implementou esse tipo de gerência de memória é o OS/MFT da IBM

9/25

memória é o OS/MFT da IBM

Fragm entação I nterna

Memória PrincipalMemória Principal

Sistema Operacional

1 KbPrograma C

1 Kb

3 Kb

Programa ABD

6 Kb 4 Kb

Programa E

5 Kb

9/26

Alocação Part icionada Dinâm ica

• Na alocação particionada dinâmica, ou variável, cada programa utilizaria o variável, cada programa utilizaria o espaço necessário, tornando essa área sua partiçãosua partição

9/27

Alocação Part icionada Dinâm icaDinâm ica

Memória PrincipalMemória Principal Memória PrincipalMemória Principal

Sistema OperacionalSistema Operacional

4 KbPrograma B 4 Kb

1 Kb

3 Kb15 Kb

Programa C

Programa B

Programa EBA E C

5 Kb

2 Kb

15 Kb

Programa A

BA

2 Kb

E

3 Kb

C

1 Kb 4 Kb

5 Kb

9/28

Fragm entação Externa

• Um diferente tipo de fragmentação começará a ocorrer, quando os começará a ocorrer, quando os programas forem terminando e deixando espaços cada vez menores na deixando espaços cada vez menores na memória, não permitindo o ingresso de novos programasnovos programas

9/29

Fragm entação Externa

Memória Principal

Sistema Operacional

4 Kb4 Kb

3 Kb

Programa C

D 3 Kb

Programa A

D

6 Kb

5 Kb

9/30

Solução para a Fragm entação Externa Externa

Memória PrincipalMemória Principal

Sistema OperacionalSistema Operacional

4 Kb

8 Kb

3 Kb

Programa C

Programa APrograma A

5 Kb5 Kb

9/31

Solução para a Fragm entação Externa Externa

Memória PrincipalMemória Principal

Sistema OperacionalSistema Operacional

4 Kb

Programa C

Programa A

Relocação

4 Kb

3 Kb

Programa C

Programa A

3 Kb

12 KbPrograma A

5 Kb

9/32

Alocação Part icionada Dinâm ica

• A realização da relocação dinâmica reduz em muito o problema da reduz em muito o problema da fragmentação, porém a complexidade do seu algoritmo e o consumo de do seu algoritmo e o consumo de recurso do sistema, como processador e área em disco, podem torná-la e área em disco, podem torná-la inviável

• Um exemplo de sistema operacional • Um exemplo de sistema operacional que implementou esse tipo de gerência de memória é o OS/MVT da IBM

9/33

Estratégias de Alocação de Part içãoPart ição

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

• A melhor estratégia depende de uma • A melhor estratégia depende de uma série de fatores, sendo o mais importante o tamanho dos programas importante o tamanho dos programas processados no ambiente

9/34

Best - fit

• A melhor partição é escolhida, ou seja, aquela em que o programa deixa o aquela em que o programa deixa o menor espaço sem utilização

• Neste algoritmo, a lista de áreas livres • Neste algoritmo, a lista de áreas livres está ordenada por tamanho, diminuindo o tempo de busca por uma diminuindo o tempo de busca por uma área desocupada

9/35

Best - Fit

Sistema Operacional

Memória Principal

Sistema Operacional

Programa C

Sistema Operacional

4 Kb

Programa C Programa A

5 Kb

Programa C

F

1 Kb2 Kb

Programa F

Programa A

Área livre

3 Kb

Programa A

9/36

W orst - fit

• A pior partição é escolhida, ou seja, aquela em que o programa deixa o aquela em que o programa deixa o maior espaço sem utilização

9/37

W orst - Fit

Memória PrincipalMemória Principal

Sistema Operacional

4 Kb

Sistema Operacional

4 Kb

5 Kb

Programa C

F

Programa CPrograma F

(b) Worst-fit

5 Kb

Programa A

1 Kb 4 Kb

Programa A

Área livre

3 Kb

9/38

First - fit

• A primeira partição livre de tamanho suficiente para carregar o programa é suficiente para carregar o programa é escolhida

• Nesse algoritmo, a lista de áreas livres • Nesse algoritmo, a lista de áreas livres está ordenada por endereços crescentementecrescentemente

• Das três estratégias apresentadas, a first-fit é a mais rápida, consumindo first-fit é a mais rápida, consumindo menos recursos do sistema

9/39

First - FitMemória PrincipalMemória Principal

Sistema Operacional

4 Kb4 Kb

Programa C

F Sistema Operacional5 Kb

Programa A

F

1 Kb

Sistema Operacional

3 Kb

Programa C

Área livre

Programa F

3 Kb

Programa C

Programa A

9/40

Sw apping

• A técnica de swapping foi introduzida para contornar o problema da para contornar o problema da insuficiência de memória principal

• O algoritmo de escolha do processo a • O algoritmo de escolha do processo a ser retirado da memória principal deve priorizar aquele com menores chances priorizar aquele com menores chances de ser escalonado

9/41

Sw appingMemória Principal

SistemaOperacional

Programa A

Swap outPrograma E

Programa BH

Memória Principal

Programa G

B

SistemaOperacional

Programa A

Área LivreSwap in

Programa E

Programa H

B

9/42

Arquivode Swap

Sw apping

• Os primeiros sistemas operacionais que implementaram esta técnica surgiram implementaram esta técnica surgiram na década de 1960, como o CTSS do MIT e OS/360 da IBMMIT e OS/360 da IBM

9/43

Exercícios

• Quais as funções básicas da gerência de memória?de memória?

• Qual a diferença entre fragmentação interna e externa da memória interna e externa da memória principal?

• Qual a limitação da alocação • Qual a limitação da alocação particionada estática absoluta em relação à alocação estática relocável?relação à alocação estática relocável?

9/44

Exercícios

• Considere um sistema computacional com 40 Kb de memória principal e que com 40 Kb de memória principal e que utilize um sistema operacional de 10 kb que implemente alocação contígua kb que implemente alocação contígua de memória. Qual a taxa de subutilização da memória principal subutilização da memória principal para um programa que ocupe 20 Kb de memória?

9/45

This document was created with Win2PDF available at http://www.win2pdf.com.The unregistered version of Win2PDF is for evaluation or non-commercial use only.This page will not be added after purchasing Win2PDF.