Qual a limitação da alocação Particionada estática absoluta em relação a alocação estática Relocável?

1 Arquitetura de Sistem as Operacionais Fabiano Utiyam a Capítulo 9 Gerência de Mem ória 9/12 I ntro...

Ar qu it e t u r a de Sist e m a s Ope r a cion a is Fa bia n o Ut iya m a

Ca pít u lo 9 Ge r ê n cia de M e m ór ia

9/1

I n t r odu çã o • Nos sistemas monoprogramáveis a gerência de memória não é muito complexa • Nos sistemas multiprogramáveis ela se torna crítica, devido à necessidade de se maximizar o número de usuários e aplicações utilizando eficientemente o espaço da memória principal

9/2

Fu n çõe s Bá sica s • Em geral, programas são armazenados em memórias secundárias, como disco ou fita, por ser um meio não-volátil, abundante e de baixo custo • Como o processador somente executa instruções localizadas na memória principal, o sistema operacional deve sempre transferir programas da memória secundária para a memória principal antes de serem executados 9/3

Fu n çõe s Bá sica s • A gerência de memória deve tentar manter na memória principal o maior número de processos residentes, permitindo maximizar o compartilhamento do processador e demais recursos computacionais • Mesmo na ausência de espaço livre, o sistema deve permitir que novos processos sejam aceitos e executados (swapping) 9/4

Fu n çõe s Bá sica s • A gerência de memória deve permitir a execução de programas que sejam maiores que a memória física disponível • Implementada através de técnicas como: – Overlay – Memória virtual

9/5

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

9/6

Aloca çã o Con t ígu a Sim ple s • Foi implementada nos primeiros sistemas operacionais, e ainda está presente em alguns sistemas monoprogramáveis • A memória principal é subdividida em duas áreas: – Uma para o sistema operacional – Outra para o programa do usuário

9/7

Aloca çã o Con t ígu a Sim ple s • O programador deve desenvolver suas aplicações preocupado, apenas, em não ultrapassar o espaço de memória disponível • Como o usuário tem acesso a toda memória principal, alguns sistemas implementam proteção através de um registrador que delimita as áreas do sistema operacional e do usuário • Apenas um usuário dispõe dos recursos 9/8

Aloca çã o Con t ígu a Sim ple s Memória Principal Sistema Operacional

Área para programa

9/9

Aloca çã o Con t ígu a Sim ple s

Memória Principal

Memória Principal Sistema Operacional

Área para programa

Registrador

Sistema Operacional

Programa do usuário

Área livre

9/10

Té cn ica s de Ove r la y • O programa alocada na memória é dividido em módulos, de forma que seja possível a execução independente de cada módulo, utilizando uma mesma área de memória • Essa técnica é chamada de overlay

9/11

Té cn ica de Ove r la y Memória Principal

2 Kb

Sistema Operacional Cadastramento

3 Kb

Módulo principal 4 Kb

4 Kb

Área de overlay

Impressão 2 Kb

1 Kb

Área livre Área não utilizada

2 Kb

9/12

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

9/13

Aloca çã o Pa r t icion a da Est á t ica • Nos primeiros sistemas multiprogramáveis, a memória era dividida em pedaços de tamanho fixo, chamados partições • O tamanho das partições, estabelecido na fase de inicialização do sistema, era definido em função do tamanho dos programas que executariam no ambiente

9/14

Aloca çã o Pa r t icion a da Est á t ica • Sempre que fosse necessária a alteração do tamanho de uma partição, o sistema deveria ser desativado e reinicializado com uma nova configuração • Esse tipo de gerência de memória é conhecido como alocação particionada estática ou fixa

9/15

Alocação Particionada Estática Memória Principal Tabela de partições Partição

Tamanho

1

2 Kb

2

5 Kb

3

8 Kb

Sistema Operacional

Programas a serem executados: E

D

C

B

A

3 Kb

6 Kb

1 Kb

4 Kb

2 Kb

Partição 1

2 Kb

Partição 2

5 Kb

Partição 3

8 Kb

9/16

Aloca çã o Pa r t icion a da Est á t ica Absolu t a • Inicialmente, os programas só podiam ser carregados e executados em apenas uma partição específica, mesmo se outras estivessem disponíveis • A esse tipo de gerência de memória chamou-se alocação particionada estática absoluta

9/17

Aloca çã o Pa r t icion a da Est á t ica Absolu t a Memória Principal Sistema Operacional C

A

1 Kb

2 Kb

E

B

3 Kb

4 Kb

D

Partição 1

2 Kb

Partição 2

5 Kb

Partição 3

8 Kb

6 Kb

9/18

Aloca çã o Pa r t icion a da Est á t ica Re locá ve l • No código relocável, todos os programas podem ser executados a partir de qualquer partição

9/19

Aloca çã o Pa r t icion a da Est á t ica Re locá ve l Memória Principal Sistema Operacional

D

E

6 Kb

3 Kb

Programa C

2 Kb

Programa A

5 Kb

Programa B

8 Kb

9/20

Ta be la de Aloca çã o de Pa r t içõe s • Para manter o controle sobre quais 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 tamanho e se está em uso

9/21

Ta be la de Aloca çã o de Pa r t içõe s Memória Principal Partição

Tamanho

Livre

1

2 Kb

Não

2

5 Kb

Sim

3

8 Kb

Não

Sistema Operacional 1

Programa C

2

Área livre

3

Programa B

9/22

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

9/23

Pr ot e çã o n a Aloca çã o Pa r t icion a da Memória Principal Sistema Operacional

Endereço inicial

Endereço final

9/24

Fr a gm e n t a çã o I n t e r n a • Tanto nos sistemas de alocação absoluta quanto nos de alocação relocável os programas, normalmente, não preenchem totalmente as partições onde são carregados • Este tipo de problema, decorrente da alocação fixa das partições, é conhecido como fragmentação interna • Exemplo de sistema operacional que implementou esse tipo de gerência de memória é o OS/MFT da IBM 9/25

Fr a gm e n t a çã o I n t e r n a Memória Principal Sistema Operacional Programa C 1 Kb Programa A D

B

6 Kb

4 Kb

3 Kb

Programa E

5 Kb

9/26

Aloca çã o Pa r t icion a da D in â m ica • Na alocação particionada dinâmica, ou variável, cada programa utilizaria o espaço necessário, tornando essa área sua partição

9/27

Aloca çã o Pa r t icion a da D in â m ica

A

E

C

B

2 Kb

3 Kb

1 Kb

4 Kb

Memória Principal

Memória Principal

Sistema Operacional

Sistema Operacional

Programa B

4 Kb

Programa C

1 Kb

Programa E

3 Kb

Programa A

2 Kb

15 Kb

5 Kb

9/28

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

9/29

Fr a gm e n t a çã o Ex t e r n a Memória Principal Sistema Operacional

4 Kb Programa C 3 Kb

D 6 Kb

Programa A

5 Kb

9/30

Solu çã o pa r a a Fr a gm e n t a çã o Ex t e r n a Memória Principal

Memória Principal

Sistema Operacional

Sistema Operacional

4 Kb 8 Kb

Programa C 3 Kb Programa A

Programa A

5 Kb

5 Kb

9/31

Solu çã o pa r a a Fr a gm e n t a çã o Ex t e r n a Memória Principal

Memória Principal

Sistema Operacional

Sistema Operacional Programa C 4 Kb

Programa A

Programa C Relocação 3 Kb Programa A

12 Kb

5 Kb

9/32

Aloca çã o Pa r t icion a da D in â m ica • A realização da relocação dinâmica reduz em muito o problema da fragmentação, porém a complexidade do seu algoritmo e o consumo de recurso do sistema, como processador e área em disco, podem torná-la inviável • Um exemplo de sistema operacional que implementou esse tipo de gerência de memória é o OS/MVT da IBM 9/33

Est r a t é gia s de Aloca çã o de Pa r t içã o • Os sistema operacionais implementam, basicamente, três estratégias para determinar em qual área livre um programa será carregado para execução • A melhor estratégia depende de uma série de fatores, sendo o mais importante o tamanho dos programas processados no ambiente

9/34

Be st - fit • A melhor partição é escolhida, ou seja, aquela em que o programa deixa o menor espaço sem utilização • Neste algoritmo, a lista de áreas livres está ordenada por tamanho, diminuindo o tempo de busca por uma área desocupada

9/35

Be st - Fit Sistema Operacional

Memória Principal

Programa C Sistema Operacional

4 Kb Programa C

Programa F

F 1 Kb

Programa A

Área livre

5 Kb

2 Kb

Programa A

3 Kb

9/36

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

9/37

W or st - Fit Memória Principal

Sistema Operacional

Sistema Operacional

4 Kb Programa C

(b) Worst-fit

Programa C Programa F

F 1 Kb

5 Kb

Área livre

Programa A

4 Kb

Programa A

3 Kb

9/38

Fir st - fit • A primeira partição livre de tamanho suficiente para carregar o programa é escolhida • Nesse algoritmo, a lista de áreas livres está ordenada por endereços crescentemente • Das três estratégias apresentadas, a first-fit é a mais rápida, consumindo menos recursos do sistema

9/39

Fir st - Fit Memória Principal Sistema Operacional

4 Kb Programa C F 1 Kb

Sistema Operacional 5 Kb

Programa F

Programa A

Área livre

3 Kb

Programa C 3 Kb

Programa A

9/40

Sw a ppin g • A técnica de swapping foi introduzida para contornar o problema da insuficiência de memória principal • O algoritmo de escolha do processo a ser retirado da memória principal deve priorizar aquele com menores chances de ser escalonado

9/41

Sw a ppin g Memória Principal Sistema Operacional Programa A Programa B

H

Programa E

Swap out

Programa G B Memória Principal Sistema Operacional Programa A Programa H Programa E Swap in B

Área Livre

Arquivo de Swap

9/42

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

9/43

Ex e r cícios • Quais as funções básicas da gerência de memória? • Qual a diferença entre fragmentação interna e externa da memória principal? • Qual a limitação da alocação particionada estática absoluta em relação à alocação estática relocável?

9/44

Ex e r cícios • Considere um sistema computacional com 40 Kb de memória principal e que utilize um sistema operacional de 10 kb que implemente alocação contígua de memória. Qual a taxa de 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.

Qual a limitação da alocação Particionada estática absoluta em relação a alocação estática Reloccável?

3) Qual a limitação da alocação particionada estática absoluta em relação à alocação estática relocável? R: A grande diferença entre a alocação particionada estática absoluta e a alocação estática relocável é o local na memória principal onde programa é carregado.

Qual era a principal característica da alocação Particionada estática?

9.3.1 – Alocação Particionada Estática: A alteração do tamanho de uma partição necessita a inicialização do Sistema Operacional. Os programas só podiam executar em uma das partições, mesmo com outras disponíveis. Limitações impostas pelos compiladores e montadores que geravam apenas códigos absolutos.

Quais são as estratégias de alocação de partição da memória?

Técnicas de Alocação de Memória: - Alocação Contígua Simples; - Alocação Particionada Estática; - Alocação Particionada Estática Absoluta; - Alocação Particionada Estática Relocável; - Alocação Particionada Dinâmica.

Qual o principal problema encontrado nas principais estratégias de alocação de arquivos?

Um problema na alocação encadeada é que ela só permite o acesso seqüencial aos blocos dos arquivos, não possuindo acesso direto aos blocos e desperdiça espaço nos blocos com o armazenamento de ponteiros.