A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Gerência de Memória Sidney Cunha de Lucena Baseado no livro

Apresentações semelhantes


Apresentação em tema: "Gerência de Memória Sidney Cunha de Lucena Baseado no livro"— Transcrição da apresentação:

1 Gerência de Memória Sidney Cunha de Lucena Baseado no livro
“Arquitetura de Sistemas Operacionais”, Francis Berenger Machado e Luiz Paulo Maia.

2 Gerência de Memória Sumário: Conceitos Básicos Alocação Contígua
Alocação Particionada Troca de Processos Memória Virtual Mapeamento Paginação Segmentação Swapping em Memória Virtual Thrashing Resumo

3 Conceitos Básicos: Sistemas Multiprogramados: múltiplos processos sendo executados simultaneamente num mesmo computador. Divisão de recursos: CPU, dispositivos e memória RAM. Memória é compartilhada pelos processos em execução. Cada processo deve possuir uma área exclusiva da memória RAM para seu uso. Gerência de Memória: organiza e disciplina o compartilhamento da memória pelos múltiplos processos em execução.

4 Conceitos Básicos: Funções Básicas da Gerência de Memória:
manter o maior número possível de processos em memória, maximizando o compartilhamento da CPU e demais recursos; maximizar o compartilhamento de espaço da memória; executar programas com requisitos de memória além da capacidade física da RAM; proteção das áreas de memória ocupadas por cada processo.

5 Alocação Contígua: Maneira mais simples: alocação contígua da memória.
Registrador delimita as áreas do Sist. Op. e do usuário (proteção). Uso ineficiente do espaço, somente um usuário ocupando-o.

6 Uso de Overlay: A técnica de overlay permite que módulos independentes de um mesmo programa sejam carregados numa mesma área de memória em momentos diferentes. Áreas de overlay definidas pelo programador. Expande limites da memória principal. Não possui compartilhamento por usuário.

7 Alocação Particionada:
Alocação Particionada Estática: memória é dividida em partições fixas, cada processo ocupará uma determinada partição.

8 Alocação Particionada:
Alocação Particionada Estática: é gerada uma tabela de alocação de partições, a proteção é através de registradores que armazenam limites inferior e superior de cada partição.

9 Alocação Particionada:
Problema: fragmentação interna. Um processo por partição, espaço não utilizado é perdido.

10 Alocação Particionada:
Alocação Particionada Dinâmica: partições alocadas dinamicamente de acordo com os requisitos de memória dos programas.

11 Alocação Particionada:
Problema: fragmentação externa. Término dos processos deixa espaços que podem ser insuficientes para novos programas.

12 Alocação Particionada:
Problema: fragmentação externa. Dois tipos de solução: reunir espaços adjacentes ou relocação dinâmica. obs: método muito custoso!

13 Alocação Particionada:
Estratégias de Alocação. Best-Fit:

14 Alocação Particionada:
Estratégias de Alocação. Worst-Fit:

15 Alocação Particionada:
Estratégias de Alocação. First-Fit:

16 Troca de Processos (Swapping):
Problema: e se não houver memória RAM suficiente para acomodar todos os processos? Solução: realizar uma troca de processos, ou swapping. Um dos processos em RAM é deslocado para uma memória secundária (swap out) e dá lugar ao “novo” processo (swap in). Opta-se por remover o processo em wait com menos chance de ser executado (possivelmente pode optar por um processo em ready). Uma área do disco passa a ser usada como memória secundária (área de swap). Mais tarde, o processo swapped out é escalonado e swapped in, voltando a ser executado.

17 Troca de Processos (Swapping):
necessário haver relocação dinâmica; permite um maior compartilhamento; custo elevado p/operações de swap in e swap out. Problema: não havendo espaço para crescimento ou relocação, e/ou a área de swap estiver cheia, o processo poderá ficar em estado de espera ou ser terminado.

18 Memória Virtual: A técnica de memória virtual fundamenta-se em desvincular o espaço de endereçamento físico (RAM) do espaço de endereçamento usado pelo programa. Para tal é criado um espaço de endereçamento virtual, linear e contínuo (semelhante a um vetor), para atender os requisitos de memória de um dado programa abstraindo-se questões de implementação física. Os objetivos principais desta técnica são o de maximizar o número de processos em memória, reduzir a fragmentação e permitir estruturas de dados maiores que a memória física.

19 Memória Virtual: O espaço de endereços virtuais, arranjados na forma de vetor, corresponde à memória virtual e pode ser maior que o espaço de memória real.

20 Memória Virtual: A porção de memória virtual ativa do programa fica situada na memória principal, o restante fica armazenado em disco.

21 Mapeamento: A unidade de gerenciamento de memória mapeia os endereços virtuais em endereços físicos. OBS: um programa não precisa estar em endereços contíguos da memória principal para ser executado.

22 Mapeamento: O mecanismo de tradução se encarrega de manter tabelas de mapeamento exclusivas para cada processo.

23 Mapeamento: Problema: se cada entrada na tabela de mapeamento representar uma célula da memória virtual, o espaço ocupado pela tabela seria da ordem de tamanho da memória virtual, inviabilizando sua implementação. Solução: particiona-se a memória virtual em blocos. Cada bloco da memória virtual estará representado por uma entrada na tabela de mapeamento. Tamanho do bloco determina o número de entradas na tabela de mapeamento. 3 técnicas são usadas para o particionamento em blocos: paginação, segmentação e segmentação com paginação. Abordagens também se apoiam no princípio da localidade.

24 Paginação: A técnica mais comum utilizada para implementar memória virtual é a paginação. Nesta técnica, tanto memória virtual como memória principal são divididas em blocos de igual tamanho chamados páginas. Tamanho do bloco determina o nível de fragmentação. Quando uma página referenciada não é encontrada na RAM, diz-se que houve um page fault. Na ocorrência de um page fault, realiza-se uma operação de paginação, ou seja, de troca de páginas entre a memória principal e a memória virtual em disco.

25 Paginação: Cada processo possui sua própria tabela de páginas.
Uma página virtual contém um bloco de endereços virtuais. ETP: Entrada da Tabela de Páginas, associada a cada página virtual de um processo. Os blocos da memória principal que abrigam as páginas reais são chamados frames.

26 Paginação: O endereço virtual é composto pelo número da página virtual (NPV) mais seu deslocamento na página. O NPV serve para indexar a tabela de páginas e obter o endereço do frame. O endereço físico correspondente ao endereço virtual é obtido a partir do endereço físico do frame encontrado na tabela de páginas mais o deslocamento.

27 Paginação: O bit de validade numa ETP indica se a página em questão encontra-se na memória principal ou não. Se a ETP da página que contém o endereço virtual desejado tem bit de validade 0, ou seja, não está na memória principal, ocorre um page fault.

28 Paginação: Quando ocorre um page fault, a página referenciada é carregada para a memória principal (page in) no local de uma página que já se encontrava na RAM (page out, supondo memória RAM cheia). Esta página a ser substituída é escolhida segundo algum algoritmo de substituição.

29 Paginação: Políticas de Substituição de Página:
Política de Substituição Local: apenas páginas referentes ao processo corrente podem ser substituídas. Política de Substituição Global: páginas de qualquer processo podem ser substituídas. Políticas de Busca de Páginas: Paginação por Demanda: páginas são transferidas para a memória principal apenas quando referenciadas. Paginação Antecipada: além da página referenciada, o sistema carrega um conjunto de outras páginas para a memória esperando que elas venham a ser referenciadas mais tarde.

30 Paginação: Políticas de Alocação de Página: determina quantos frames cada processo pode manter na memória principal. Política de Alocação Fixa: cada processo tem um número máximo de frames que podem ser usados durante sua execução. Definido no momento da criação do processo de acordo com o tipo de aplicação que será executada. Política de Alocação Variável: número máximo de frames pode variar durante sua execução de acordo com a taxa de paginação e a ocupação da memória principal. Mais flexível, mas exige overhead para o monitoramento dos processos.

31 Paginação: Algoritmos de Substituição de Páginas: procuram manter o working set (de páginas) dos processos na memória principal sem comprometer o desempenho do sistema.

32 Paginação: Algoritmos de Substituição de Páginas: o algoritmo ótimo seria (utopicamente) aquele que selecionasse uma página que não será mais referenciada ou que será a menos referenciada. Exemplos de algoritmos: Aleatório; FIFO (escolhe a página mais antiga); LFU (Least Frequetly Used); LRU (Least Recently Used); NRU (Not Recently Used, similar ao LRU porém mais simples); FIFO circular (se a página mais antiga foi referenciada recentemente, ela vai para o final da fila).

33 Paginação: Paginação em Múltiplos Níveis:
Problema: tamanho das tabelas de páginas de um nível continuam grandes para dados realistas (ex: páginas de 4K endereços em arquitetura de 32 bits ocupam cerca de 4MB). Solução: usar tabelas de páginas em múltiplos níveis (princípio da localidade é aplicado às tabelas de mapeamento). Apenas as informações sobre páginas realmente necessárias aos processos ficam residentes na memória principal. Em outras palavras: a tabela de páginas também passa a ser paginada.

34 Paginação: Paginação em Múltiplos Níveis:

35 Paginação: Paginação em Múltiplos Níveis:

36 Paginação: Translation Lookaside Buffer (TLB):
Se vale do princípio da localidade e mapea endereços virtuais em endereços físicos para evitar o acesso à tabela de páginas. Funciona como uma memória cache, mantendo a tradução dos endereços virtuais das páginas mais referenciadas recentemente. Campos da TLB:

37 Paginação: Translation Lookaside Buffer (TLB):

38 Paginação: Proteção: cada página conta com dois bits de proteção nas ETPs, um permitindo ou não acesso de leitura, outro permitindo ou não acesso de escrita.

39 Segmentação: Espaço de endereços é dividido em blocos de diferentes tamanhos chamados segmentos. Mantém uma relação lógica com a estrutura do programa e sua alocação na memória principal. A definição dos segmentos costuma ser realizada pelo compilador e cada segmento pode representar um procedimento, uma função, um vetor ou uma pilha. É atribuído a cada processo um número máximo de segmentos e um tamanho máximo para cada segmento. Pode ter problema de fragmentação externa.

40 Segmentação:

41 Segmentação: O mecanismo de mapeamento é semelhante ao da paginação.
Campos da ETS:

42 Segmentação: Paginação x Segmentação:

43 Segmentação: Segmentação com paginação: realiza paginação para cada segmento. Procura oferecer as vantagens de ambas as técnicas.

44 Swapping em Memória Virtual:
Exatamente a mesma técnica de swapping, porém aplicada às páginas ou segmentos referentes aos processos swapped out e, posteriormente, swapped in.

45 Thrashing: Ocorre quando há uma taxa elevada de faults, sejam de segmentos ou de páginas, seja a nível de sistema ou de processo. Acarreta uma degradação no desempenho da máquina: uma página ou segmento swapped out em breve será requisitada para fazer swap in, causando um efeito cascata. CPU perde muito tempo com swapping de páginas/segmentos. Se houver uma demanda de memória, pelos processos a serem executados, maior que a capacidade da memória principal, a única solução é aumentar esta capacidade.

46 Resumo: Sistemas atuais trabalham com múltiplos processos disputando recursos e compartilhando memória, daí a necessidade de um gerenciamento de memória. Cada processo utiliza uma determinada área de memória, demanda total de memória costuma ser maior que a memória RAM disponível. Solução é utilizar o disco para armazenamento temporário. Duas técnicas são empregadas: Troca de Processos (Swapping) e Memória Virtual.

47 Resumo: Troca de Processos:
se um novo processo é iniciado e não há área de memória disponível para alocá-lo, um dos processos em RAM é jogado para o disco (swapped out) para abrir espaço; quando algum processo em espera na área de swap for novamente escalonado para execução, ele é jogado de volta para a RAM (swapped in) em alguma área disponível que o comporte; problemas de fragmentação; quando falta espaço para um processo crescer, ele é swapped out; processos precisam caber na memória RAM.

48 Resumo: Memória Virtual:
é criado um espaço de endereçamento virtual linear, semelhante a um vetor, para atender aos requisitos de memória do programa; a memória virtual pode ser maior que a memória principal, usa o disco para armazenar os endereços que não estão ativos; a unidade de gerenciamento mapea os endereços virtuais em endereços físicos, cada processo tem sua própria tabela de mapeamento; vantagens da Memória Virtual: maximização do número de processos em memória, redução da fragmentação e permitir estruturas de dados maiores que a RAM; técnica mais usada é a paginação, que divide a memória virtual em blocos de igual tamanho chamados páginas;

49 Resumo: Memória Virtual:
quando ocorre um page fault, é realizada uma operação de paginação (page out, page in); a segmentação divide a memória virtual em blocos de diferentes tamanhos chamados de segmentos. Cada segmento está associado a um módulo do programa; é possível fazer segmentação com paginação e buscar as vantagens de ambas as técnicas. Pode-se aplicar a técnica de swapping em memória virtual: Processos em estado de espera são preferidos para swap-out. Problemas de Thrashing ocorrem quando se tem uma taxa elevada de transferências entre memória principal e secundária.

50 Referências: Arquitetura de Sistemas Operacionais (capítulos 9 e 10). Francis Berenger Machado e Luiz Paulo Maia. 3a edição - LTC, 2002. Sistemas Operacionais - Conceitos e Aplicações (capítulos 9 e 10). Abraham Silberschatz, Peter Galvin e Greg Gagne. 1a edição - Editora Campus, 2000. Exercícios recomendados: Livro do Silberschatz, páginas e Obs: há uma edição mais recente nas livrarias.


Carregar ppt "Gerência de Memória Sidney Cunha de Lucena Baseado no livro"

Apresentações semelhantes


Anúncios Google