Top Banner
Prof. Adriano Maranhão
25

Prof. Adriano Maranhão · É o gerenciamento automático de memória, também conhecido como coletores, sendo conhecido em Portugal como reciclagem automática de memória. Este

Feb 10, 2019

Download

Documents

buidieu
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Prof. Adriano Maranhão · É o gerenciamento automático de memória, também conhecido como coletores, sendo conhecido em Portugal como reciclagem automática de memória. Este

Prof. Adriano Maranhão

Page 2: Prof. Adriano Maranhão · É o gerenciamento automático de memória, também conhecido como coletores, sendo conhecido em Portugal como reciclagem automática de memória. Este
Page 3: Prof. Adriano Maranhão · É o gerenciamento automático de memória, também conhecido como coletores, sendo conhecido em Portugal como reciclagem automática de memória. Este

Memória Considerações: Recurso caro e escasso;

Programas só executam se estiverem na memória principal;

Quanto mais processos residentes na memória principal, melhor será o compartilhamento do processador;

Necessidade de uso otimizado;

O S.O. não deve ocupar muita memória;

“É um dos fatores mais importantes em um projeto de S.O.”.

Page 4: Prof. Adriano Maranhão · É o gerenciamento automático de memória, também conhecido como coletores, sendo conhecido em Portugal como reciclagem automática de memória. Este

Gerenciamento de Memória Algumas funções do Gerenciador de memória: Controlar quais as unidades de memória estão ou não

estão em uso, para que sejam alocadas quando necessário;

Liberar as unidades de memória que foram desocupadas por um processo que finalizou;

Tratar do Swapping entre memória principal e memória secundária. Transferência temporária de processos residentes na memória

principal para memória secundária.

Page 5: Prof. Adriano Maranhão · É o gerenciamento automático de memória, também conhecido como coletores, sendo conhecido em Portugal como reciclagem automática de memória. Este

Gerenciamento de 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.

Page 6: Prof. Adriano Maranhão · É o gerenciamento automático de memória, também conhecido como coletores, sendo conhecido em Portugal como reciclagem automática de memória. Este

Alocação Contígua Simples Alocação implementada nos

primeiros sistemas e ainda usada nos monoprogramáveis;

A Memória é dividida em duas áreas: Área do Sistema Operacional Área do Usuário

Um usuário não pode usar uma área maior do que a disponível;

Sem proteção: Um usuário pode acessar a área do

Sistema Operacional.

Page 7: Prof. Adriano Maranhão · É o gerenciamento automático de memória, também conhecido como coletores, sendo conhecido em Portugal como reciclagem automática de memória. Este

Alocação Contígua Simples Registrador de proteção delimita as

áreas do sistema operacional e do usuário;

Sistema verifica acessos à memória em relação ao endereço do registrador;

A forma de alocação era simples, mas não permitia utilização eficiente de processador e memória;

Page 8: Prof. Adriano Maranhão · É o gerenciamento automático de memória, também conhecido como coletores, sendo conhecido em Portugal como reciclagem automática de memória. Este

Alocação Contígua Simples Programas de usuário limitados pelo

tamanho da memória principal disponível.

Solução: Overlay

Dividir o programa em módulos;

Permitir execução independente de cada módulo, usando a mesma área de memória;

Área de Overlay

Área de memória comum onde módulos compartilham mesmo espaço.

Memória principal

Sistema

Operacional

Área de

Overlay

Área do

Módulo

Principal

A B C

Page 9: Prof. Adriano Maranhão · É o gerenciamento automático de memória, também conhecido como coletores, sendo conhecido em Portugal como reciclagem automática de memória. Este

Alocação Particionada Multiprogramação.

Necessidade do uso da memória por vários usuários simultaneamente.

Ocupação mais eficiente do processador;

A memória foi dividida em pedaços de tamanho fixo chamados partições;

O tamanho de cada partição era estabelecido na inicialização do sistema;

Para alteração do particionamento, era necessário uma nova inicialização com uma nova configuração.

Page 10: Prof. Adriano Maranhão · É o gerenciamento automático de memória, também conhecido como coletores, sendo conhecido em Portugal como reciclagem automática de memória. Este

Alocação Estática Decisão tomada quando o programa é compilado.

Quando o programa é executado o Sistema operacional lê o mesmo e cria um processo, sendo o programa uma noção estática e o processo o programa em execução, ele é criado em armazenamento primário e após isso recebe um espaço na memória. O espaço de memória é dividido em varias partes, uma das partes se chama segmentos de memória, que armazena dados estáticos, e outro se chama segmento de código que guarda instruções do programa.

Page 11: Prof. Adriano Maranhão · É o gerenciamento automático de memória, também conhecido como coletores, sendo conhecido em Portugal como reciclagem automática de memória. Este

Alocação Particionada Estática Alocação Particionada Estática Absoluta:

Compiladores gerando código absoluto; Endereços relativos ao início da memória;

Programas exclusivos para partições específicas.

Alocação Particionada Estática Relocável:

Compiladores gerando código relocável; Endereços relativos ao início da partição;

Programas podem rodar em qualquer partição.

Page 12: Prof. Adriano Maranhão · É o gerenciamento automático de memória, também conhecido como coletores, sendo conhecido em Portugal como reciclagem automática de memória. Este

Alocação Particionada Estática Proteção:

Registradores com limites inferior e superior de memória acessível.

Programas não ocupam totalmente o espaço das partições, gerando uma fragmentação interna.

Memória principal

Sistema

Operacional

Partição C

Partição A

Reg

Reg

Partição B

Page 13: Prof. Adriano Maranhão · É o gerenciamento automático de memória, também conhecido como coletores, sendo conhecido em Portugal como reciclagem automática de memória. Este

Alocação dinâmica Decisão é adiada até a execução. (Permite Swapping)

Os objetos alocados dinamicamente podem ser criados e liberados a qualquer momento, em qualquer ordem, o que difere dos objetos locais das funções, que são criados e destruídos em uma ordem específica. Dado isto, é preciso organizar a memória para objetos dinâmicos de uma forma que possibilite o gerenciamento do tempo de vida dos objetos por parte do programador. A memória reservada para objetos dinâmica costuma ser chamada de heap, existem várias formas de organizar um heap.

Page 14: Prof. Adriano Maranhão · É o gerenciamento automático de memória, também conhecido como coletores, sendo conhecido em Portugal como reciclagem automática de memória. Este

Alocação Particionada Dinâmica Não existe o conceito de partição

dinâmica. O espaço utilizado por um programa

é a sua partição.

Não ocorre fragmentação interna.

Ao terminarem, os programas deixam espalhados espaços pequenos de memória, provocando a fragmentação externa.

Memória principal

Sistema

Operacional

Processo E

Processo A

Processo C

Processo F

Page 15: Prof. Adriano Maranhão · É o gerenciamento automático de memória, também conhecido como coletores, sendo conhecido em Portugal como reciclagem automática de memória. Este

Alocação Particionada Dinâmica Soluções:

Reunião dos espaços contíguos.

Relocação Dinâmica: Movimentação dos programas pela

memória principal.

Resolve o problema da fragmentação.

Consome recursos do sistema

Processador, disco, etc.

Memória principal

Sistema

Operacional

Processo E

Processo A

Processo F

Page 16: Prof. Adriano Maranhão · É o gerenciamento automático de memória, também conhecido como coletores, sendo conhecido em Portugal como reciclagem automática de memória. Este

Gerência de MemóriaMapeamento de bits:

Cada bit representa uma unidade de alocação;

Raramente é utilizado atualmente. É muito lenta.

Mapeamento da Memória com listas ligadas:

Header P/B início tamanho P/B início tamanho

P: Processo

B: Buraco

Page 17: Prof. Adriano Maranhão · É o gerenciamento automático de memória, também conhecido como coletores, sendo conhecido em Portugal como reciclagem automática de memória. Este

Gerência de MemóriaMapeamento da Memória com listas ligadas: Best-Fit (melhor alocação): Espaço mais próximo do tamanho do processo; Tempo de busca grande; Provoca fragmentação.

Worst-Fit (pior alocação): Cria o maior espaço possível; Tempo de busca grande; Não apresenta bons resultados.

First-Fit (primeira alocação): Melhor performance.

Next-Fit (proxima alocação): Performance inferior ao First-Fit.

Page 18: Prof. Adriano Maranhão · É o gerenciamento automático de memória, também conhecido como coletores, sendo conhecido em Portugal como reciclagem automática de memória. Este

Gerência de Memória Considerações sobre Mapeamento da Memória

com listas ligadas :

Todos melhoram em performance se existirem listas distintas para processos e espaços, embora o algoritmo fique mais complexo.

Listas ordenadas por tamanho de espaço melhoram a performance.

Page 19: Prof. Adriano Maranhão · É o gerenciamento automático de memória, também conhecido como coletores, sendo conhecido em Portugal como reciclagem automática de memória. Este

Swapping Os processos ficavam na memória principal,

mesmo se bloqueados pela espera de algum evento.

Solução: Swapping.

Técnica para resolver problema de processos que aguardam por espaço livre adequado;

Processos não ficam mais na memória o tempo todo.

Page 20: Prof. Adriano Maranhão · É o gerenciamento automático de memória, também conhecido como coletores, sendo conhecido em Portugal como reciclagem automática de memória. Este

Swapping Um processo residente na memória é levado para o disco

(Swapped-Out), dando lugar a outro;

O processo Swapped-Out retorna à memória (Swapped-In), sem “perceber” o que ocorreu.

programa B

programa A

programa E

programa A

programa

G

Sistema

Operacional

Memória principal

programa H

programa E

programa A

B B

Swap InSwap Out

Sistema

Operacional

programa B

Page 21: Prof. Adriano Maranhão · É o gerenciamento automático de memória, também conhecido como coletores, sendo conhecido em Portugal como reciclagem automática de memória. Este

Swapping Problema gerado pelo Swapping:

Relocação de processos:

O tempo gasto com relocação é alto;

Um mesmo processo sendo Swapped-Out repetidas vezes gera um alto consumo de CPU.

Page 22: Prof. Adriano Maranhão · É o gerenciamento automático de memória, também conhecido como coletores, sendo conhecido em Portugal como reciclagem automática de memória. Este

Swapping Vantagens da técnica de Swapping:

Permite maior compartilhamento da memória;

Aumento no Throughput (quantidade de processos executados por unidade de tempo);

Eficiente para sistemas com poucos usuários e pequenas aplicações;

Problema:

custo do Swapping (in/out).

Page 23: Prof. Adriano Maranhão · É o gerenciamento automático de memória, também conhecido como coletores, sendo conhecido em Portugal como reciclagem automática de memória. Este

Garbage Collector É o gerenciamento automático de memória, também

conhecido como coletores, sendo conhecido em Portugal como reciclagem automática de memória. Este serviço libera os blocos de memória que não sejam mais usados por um programa automaticamente. É oposto ao gerenciamento de memória manual, a alocação explicita e a desalocação dos recursos de memória do computador.

Page 24: Prof. Adriano Maranhão · É o gerenciamento automático de memória, também conhecido como coletores, sendo conhecido em Portugal como reciclagem automática de memória. Este

As vantagens desse tipo de gerenciamento são: Liberdade do programador: Não é obrigado ficar

atento aos detalhes da memória;

Menos bugs de gerenciamento de memória: Por se tratar de uma técnica mais confiável;

Gerenciamento automático: Mais eficiente que o manual;

Page 25: Prof. Adriano Maranhão · É o gerenciamento automático de memória, também conhecido como coletores, sendo conhecido em Portugal como reciclagem automática de memória. Este

E entre as desvantagens, podemos citar: O desenvolvedor tende a estar mais desatento em

relação a detalhes de memória;

O gerenciador automático ainda apresenta limitações.