• Nenhum resultado encontrado

07 - Gerência de Memória

N/A
N/A
Protected

Academic year: 2021

Share "07 - Gerência de Memória"

Copied!
62
0
0

Texto

(1)

Sistemas Operacionais

Prof. Leonardo Araújo

(2)

Plano de aula

• Gerenciamento de Memória

• Definição

• Recordando sobre Memórias

• Tipos de memórias • Hierarquia de memórias

• Endereços, variáveis e funções • Endereços lógicos e físicos

• Modelo de memória dos processos

• Estratégias de alocação • Fragmentação

(3)
(4)

Gerência de Memória

• A memória principal é outro recursos muito disputado pelo

sistema;

• Constitui o “espaço de trabalho” do sistema;

• O sistema operacional precisa administrar o uso desse

recurso pelos processos;

(5)
(6)

Recordando sobre Memórias

Existe muito tipos de memórias, classificadas em algumas categorias. • Quanto à natureza da gravação dos dados

• Memórias ROM – Ready Only Memory • Memórias RAM –Random Access Memory

• Quanto à hierarquia de memórias

• Primárias • Secundárias

(7)

Recordando sobre Memórias

• Tipos de memórias ROM:

• ROM – Mask ROM (Memória inalterável adquirida com conteúdo já gravado) • PROM – Programmable ROM (conteúdo pode ser gravado de forma

posterior, porém nunca apagado)

• EPROM –Erase Programmable ROM (conteúdo gravado pode ser apagado mediante raios ultra-violeta)

• EEPROM – Eletricaly EPROM (conteúdo reprogramável por impulsos elétricos especiais)

(8)

Recordando sobre Memórias

• Tipos de memórias RAM:

• SRAM – Static RAM (Memória que não necessita de refresh) • DRAM – Dynamic RAM (Memória que necessita de refresh)

• FPM DRAM: Paginação de dados, assíncrono

• EDO DRAM: Memória de saída estendida de dados assíncrono • SDR SDRAM: Sincronia dos dados

• DDR DRAM: Taxa de transferência de dados dupla(variantes: DDR2 e DDR3) • Rambus DRAM: Duas operações por ciclo de clock

(9)

Recordando sobre Memórias

• Existem vários tipos de memórias, variando em algumas características, como:

• Capacidade de armazenamento; • Velocidade de leitura/escrita; • Preço;

• Assim, uma forma de organizar essas memórias, quanto as essas principais características, é a hierarquia de memórias.

(10)
(11)

Recordando sobre Memórias

0 1 2 3

4 5 6 7

8 9 10 11

Onde cada célula (byte) representa

o conjunto de 8 bits (1 byte)

Palavra de 32 bits (4 bytes)

Memória de 96 bits (12 bytes) de tamanho

0 4 8

Endereços das palavras

(12)
(13)

Endereços, variáveis e funções

• O programa é escrito em linguagem de alto nível;

• Geralmente não há a necessidade de o programador definir ou manipular endereços de memória de forma explícita;

• Porém, o processador, ao executar um programa compilado, precisa acessar os endereços físicos da memória principal;

• Logo, cada componente do programa (variáveis e demais trechos de códigos) deverão ocupar um espaço específico e exclusivo na

(14)

Endereços, variáveis e funções

• Logo, endereços de variáveis e trechos de códigos de um programa devem ser definidos em algum momento entre a escrita do código e sua execução pelo processador, que podem ser:

• Durante a edição: o programador é responsável por escolher a posição de endereçamento (em sistemas embarcados e muito simples);

• Durante a compilação: o compilador é responsável por escolher a posição de variáveis na memória;

• Durante a ligação: o compilador gera símbolos que representam as variáveis, mas não define os seus endereços finais; gera arquivos objetos que ao serem ligados às bibliotecas do sistema por um “ligador”, gera o executável com os endereços definidos;

• Durante a carga: o carregador do programa (loader) é responsável por levar o programa à memória e definir os endereços de memória; pode estar no núcleo do S.O. ou fazer parte de alguma biblioteca do executável do programa;

(15)

Endereços, variáveis e funções

Fig. 2: Momentos de atribuição de endereços. Fonte: MAZIERO, 2010.

(16)

Endereços lógicos e físicos

• Ainda existem dois conceitos quanto aos endereços de memórias:

• Endereços lógicos: endereços de memória gerados pelo processador durante a execução de um programa, seguindo a sequência lógica;

• Endereços físicos: representam os endereços reais dos programas na memória física (principal);

• No caso dos endereços físicos temos um hardware especial chamado MMU (Unidade de Gerenciamento de Memória) responsável pela “conversão” dos endereços lógicos em endereços físicos;

(17)

Visão geral de uma MMU

Fig. 3: Funcionamento básico de uma MMU Fonte: Maziero, 2010.

(18)

Modelo de memória dos processos

• Cada processo é dividido em algumas partes, que trazem uma visão geral ao Sistema Operacional de o que é aquele processo;

• Essas áreas são as seguintes:

• TEXT: contém o código a ser executado, com tamanho fixo, calculado durante a compilação, acessível como leitura e escrita;

• DATA: contém dados estáticos usados pelo programa, como variáveis globais e locais estáticas, com tamanho fixo, acessível como leitura e escrita;

• HEAP: área usada para armazenar dados através de alocação dinâmica;

• STACK: área usada para manter a pilha de execução do processos (chamadas de função, parâmetros, variáveis locais e valor de retorno de funções;

(19)

Modelo de memória dos processos

Fig. 4: Organização de um processo na memória Fonte: Maziero, 2010.

(20)
(21)

Estratégias de alocação

• O tamanho dos processos variam de acordo com a sua complexidade; • A memória é como um grande vetor “aguardando” apenas que os

processos sejam alocados a ela (memória);

(22)

Estratégias de alocação

• Em sistemas mono-processo, a alocação pode ser feita sem problemas;

• Há apenas um processo para usar o espaço disponível aos processos (geralmente logo após a área da memória destinada ao núcleo do sistema);

(23)

Estratégias de alocação

• Em sistemas multiprocessos, o negócio é diferente;

• Vários processos poder ser alocados à memória para serem executados de forma simultânea;

• Neste caso, deve ser usada alguma estratégia de alocação de processos à memória, de forma a fazer o uso da memória com maior eficiência e flexibilidade;

(24)

Estratégias de alocação

• As principais estratégias de alocação de memória física são:

• Partições fixas • Alocação contígua

• Alocação por segmentos • Alocação paginada

(25)

Estratégias de alocação:

Partições fixas

(26)

Estratégias de alocação: partições fixas

• Forma mais simples de alocação de memória;

• Divide-se a memória em diversas partições fixas (não varia de tamanho enquanto estiver sendo usada) com tamanhos iguais ou distintos;

• A MMU possui um registrador especial chamado de registrador de relocação, que armazena o endereço base da partição na memória física;

(27)

Estratégias de alocação: partições fixas

Fig. 6: Exemplo de alocação em partições fixas Fonte: Maziero, 2010.

(28)

Estratégias de alocação: partições fixas

• Apesar da simplicidade, temos várias desvantagens na técnica de alocação por partições fixas:

• Processos podem ter tamanhos diferentes da partição, gerando perda de espaço na partição;

• Número máximo de processos na memória é limitado ao número de partições (ainda que os processos sejam pequenos);

• Processos maiores que a maior partição disponível simplesmente não serão alocados!

(29)

Estratégias de alocação:

Alocação contígua

(30)

Estratégias de alocação: alocação contígua

• Implementação mais bem elaborada da estratégia de partição fixa; • O tamanho de cada partição pode ser ajustado à demanda do

processo;

• A MMU agora tem dois registradores especiais:

• registrador base: define o endereço inicial da partição ativa; • Registrador limite: define o tamanho em bytes dessa partição;

(31)

Estratégias de alocação: alocação contígua

Fig. 6: Exemplo de alocação em partições fixas Fonte: Maziero, 2010.

(32)

Estratégias de alocação: alocação contígua

• O endereço lógico é verificado;

• Se for maior ou igual ao valor limite (lógico), A MMU gera uma interrupção;

• Se for menor, o valor do endereço lógico é somado ao valor de endereço base (físico) para ser acessado na memória física;

(33)

Estratégias de alocação: alocação contígua

• Vantagens:

• Simplicidade;

• Baixo custo de implementação;

• Desvantagens

• Pouca flexibilidade;

(34)

Estratégias de alocação:

Alocação por segmentos

(35)

Estratégias de alocação: alocação por segmentos

• Extensão da alocação contígua;

• O espaço de memória do processo é fracionado em áreas (seguimentos);

• Esses segmentos podem ser alocados separadamente na memória física;

• Quebra-se, então, a sequência linear de endereçamento dos processos;

(36)
(37)

Estratégias de alocação: alocação por segmentos

• Os endereços de processos devem indicar agora as posições de memória e os segmentos onde eles se encontram;

• A composição do endereço lógico será feito por pares:

• Segmento: indica o número do segmento desejado • Offset: indica a posição desejada dentro do segmento

(38)

Estratégias de alocação: alocação por segmentos

• O algoritmo na alocação por segmentos é similar à alocação contígua;

• Neste caso, porém, cada segmento tem o seu valor limite-base;

• Será necessária uma tabela de segmentos (no registrador ou na própria RAM);

• Cabe ao compilador colocar os diversos trechos do código-fonte de cada programa em segmentos separados;

(39)

Estratégias de alocação: alocação por segmentos

Fig. 8: Tradução de endereços em memória alocada por segmentos Fonte: Maziero, 2010

(40)

Estratégias de alocação: alocação por segmentos

• O endereço lógico é passado à MMU;

• O registrador “ST reg” aponta para a tabela de segmentos do processo ativo;

• O segmento do endereço lógico é identificado na tabela de segmentos;

• Caso o valor offset seja maior ou igual ao limite lógico na tabela de segmentos, haverá um erro, gerando interrupção;

• Caso contrário, o valor offset será somado ao valor base físico na tabela de segmentos, onde será gerado o valor de endereço real na memória física;

(41)

Estratégias de alocação: alocação por segmentos

• Vantagens:

• Forma mais flexível de alocação de memória física; • Diminui consideravelmente o desperdício de espaço;

• Desvantagens:

• Uso de endereços bidimensionais é pouco intuitivo; • Complexidade na construção de compiladores;

(42)

Estratégias de alocação:

Alocação paginada

(43)

Estratégias de alocação: alocação paginada

• O espaço de endereçamento lógico volta a ser linear;

• O espaço de endereçamento lógico agora é dividido em pequenos blocos de mesmo tamanho, chamados de páginas (pages);

• Atualmente, essas páginas tem tamanho de 4Kbytes;

• O espaço de endereçamento físico também é dividido em blocos do mesmo tamanho das páginas, chamados de quadros (frames);

(44)

Estratégias de alocação: alocação paginada

• A alocação dos processos é feita indicando em quais quadros da memória física se encontram as páginas do processo;

• As páginas dos processos podem estar em qualquer lugar da memória física;

• As páginas não usadas pelo processo não precisam estar mapeadas na memória física;

(45)

Estratégias de alocação: alocação paginada

Fig. 9: Alocação de memória por páginas Fonte: Maziero, 2010

(46)

Estratégias de alocação: alocação paginada

• Nessa estratégia é usada uma tabela de páginas (page tables) para mapear a página ao quadro físico;

• Um registrador especial na MMU, o PTBR (Page Table Base Register) manterá a tabela de páginas do processo ativo;

(47)

Estratégias de alocação: alocação paginada

Fig. 10: Tradução de endereços usando paginação Fonte: Maziero, 2010

(48)

Estratégias de alocação: alocação paginada

• O endereço lógico é decomposto em número de página e offset;

• O número do quadro onde se encontra a página desejada é obtido pela MMU;

• O endereço físico é construído, compondo o número do quadro com o

offset; como páginas e quadros tem o mesmo tamanho, o valor do offset é

preservado na conversão;

• Caso a página solicitada não esteja mapeada em um quadro da memória física, a MMU deve gerar uma interrupção para o processador;

(49)

Estratégias de alocação: alocação paginada

• Logo, a alocação paginada

• Oferece grande espaço de endereçamento linear; • Elimina a fragmentação externa;

(50)
(51)

Fragmentação de memória

• Processos tem um ciclo de vida;

• Logo, quando o seu tempo de vida termina, ficará uma lacuna na memória;

• Essas lacunas nem sempre podem alocar novos processos, tornando-se inutilizadas;

• Logo, essas lacunas geram um problema chamado fragmentação externa;

• Somente afeta as memórias com as estratégias de alocação contígua e segmentada;

(52)

Fragmentação de memória

Fig. 11: Memória com fragmentação externa Fonte: Maziero, 2010

(53)

Fragmentação de memória

• Existem duas formas de se resolver o problema da fragmentação externa:

• Minimizando a ocorrência, através de critérios de escolha das áreas a alocar; • Desfragmentando periodicamente a memória do sistema;

(54)

Fragmentação de memória

• Para minimizar a ocorrência de fragmentação externa, existem alguns critérios para encontrar a melhor área de alocação do processo:

• Melhor encaixe (best-fit): escolher a menor área possível que possa atender à solicitação de alocação; áreas livre são usadas de forma otimizada, porém resíduos podem se tornar inúteis;

• Pior encaixe (worst-fit): escolher sempre a maior área livre possível; resíduos podem ser usados;

• Primeiro encaixe (first-fit): escolher a primeira área livre que satisfaça o pedido de alocação; rapidez é o diferencial;

• Próximo encaixe (next-fit): variante da fisrt-fit, que consiste em percorrer a lista a partir da última área alocada ou liberada para que o novo processo

(55)

Fragmentação de memória

Fig. 12: Estratégias para minimizar a fragmentação externa Fonte: Maziero, 2010

(56)

Fragmentação de memória

• A desfragmentação da memória externa consiste em mover os processos alocados, de forma que eles fiquem contíguos;

• Movendo os processo, as áreas livres também ficarão contíguas;

• Além disso, mover os processos, consiste em alterar as devidas tabelas de alocação (segmentos, páginas);

• Deve ser usada com cautela, uma vez que pode gerar problemas graves ao sistema;

(57)

Fragmentação de memória

Fig. 13: Possibilidades de desfragmentação Fonte: Maziero, 2010

(58)

Fragmentação de memória

• Além da fragmentação externa, também pode ocorrer a fragmentação interna;

• Neste caso, o bloco de memória reservado para um processo pode não ser totalmente utilizado, gerando desperdício de memória física; • A fragmentação interna pode afetar todas as estratégias de alocação

(59)

Fragmentação de memória

Fig. 14: Fragmentação interna Fonte: Maziero, 2010

(60)

Pesquisa

• Memória virtual

• Algoritmos de substituição de páginas

• Algoritmo FIFO • Algoritmo Ótimo • Algoritmo LRU

• Algoritmo da segunda chance • Algoritmo NRU

• Algoritmo do envelhecimento;

• Individual e será conteúdo para a 2ªVA; • Está na lista de atividades.

(61)

Referências

• TANENBAUM, Andrew S. Sistemas Operacionais Modernos. São Paulo: PRENTICE HALL, 2010.

• MAZIERO, Carlos. A. Sistemas Operacionais: Conceitos e Aplicações. Creative Commons 3.0, 2013.

• SILBERSCHATZ, A.; GALVIN, P. B.; GAGNE, G. Sistemas Operacionais com Java. Rio de Janeiro: Elsevier, 2004.

• CARISSIMI, Alexandre. Sistemas Operacionais. Porto Alegre: Bookman.

(62)

Sistemas Operacionais

Prof. Leonardo Araújo

Referências

Documentos relacionados

Cambio de fuente de alimentación no está conectado a la red Conecte el cable de alimentación en el punto de la electricidad Conecte el cable de alimentación del cable del sensor

• Não utilize este produto quando estiver a praticar desporto, a fazer exercício, ou em locais com vibrações para evitar curtos-circuitos inesperados ou danos internos no

R$ 18, 90 Gin Seagers, rum montilla, tequila Jose Cuervo Silver, vodka Orloff, Cointreau, limão taiti e Coca-Cola.. R$ 72, 90 Vinho tinto e mix

Informática; 5) Novo Ponto Digital Comércio; 6) Beneditinos Bazar e Papelaria; 7) Positiva Rio Locações; 8) Top Lan Comércio de Produtos de Informática; 9) Port Distribuidora

7.4.4.1 – Sócios, proprietários ou dirigentes – cópia do respectivo contrato social ou estatuto, no qual sejam expressos poderes para exercer direitos e assumir obrigações

Art. 30 Qualquer partida, por motivo de força maior, poderá ser adiada pelo Representante do Jogo, e desde que este o faça até duas horas antes do seu início, dando ciência da

Poderia se alegar que a regra protege as mulheres – delas próprias, ou de homens interessados em se aproveitar de sua viuvez ou recente se- paração. Mas cabe perguntar por qual razão

Quando um indivíduo esta ingerindo quantidades excessivas do nutriente é possível avaliar a probabilidade de risco da ocorrência de efeitos adversos. Ressalta-se que a UL para