Gerenciamento de Memória - Capítulo 7 - Sistemas Operacionais Prof. Dr. José Carlos Becceneri...

37
Gerenciamento de Memória - Capítulo 7 - Sistemas Operacionais Prof. Dr. José Carlos Becceneri Luciana Sêda Cardoso

Transcript of Gerenciamento de Memória - Capítulo 7 - Sistemas Operacionais Prof. Dr. José Carlos Becceneri...

Page 1: Gerenciamento de Memória - Capítulo 7 - Sistemas Operacionais Prof. Dr. José Carlos Becceneri Luciana Sêda Cardoso.

Gerenciamento de Memória

- Capítulo 7 - Sistemas OperacionaisProf. Dr. José Carlos Becceneri

Luciana Sêda Cardoso

Page 2: Gerenciamento de Memória - Capítulo 7 - Sistemas Operacionais Prof. Dr. José Carlos Becceneri Luciana Sêda Cardoso.

SumárioDefinição

Requisitos

Técnicas de Gerenciamento de Memória

Page 3: Gerenciamento de Memória - Capítulo 7 - Sistemas Operacionais Prof. Dr. José Carlos Becceneri Luciana Sêda Cardoso.

Gerenciamento de MemóriaPrincipal operação – trazer programas para dentro da memória principal para ser executados pelo processador.

Dividir dinamicamente a parte “User” da memória principal de forma que acomode vários processos.

Alocar a memória de forma eficiente para empacotar tantos processos na memória quanto possível para evitar que o processador fique ocioso.

Deve ser capaz de rodar um programa em que seu tamanho seja maior que o disponível pela memória real.

Page 4: Gerenciamento de Memória - Capítulo 7 - Sistemas Operacionais Prof. Dr. José Carlos Becceneri Luciana Sêda Cardoso.

RequisitosRelocaçãoProteçãoCompartilhamentoOrganização lógicaOrganização física

Page 5: Gerenciamento de Memória - Capítulo 7 - Sistemas Operacionais Prof. Dr. José Carlos Becceneri Luciana Sêda Cardoso.

Requisito - RelocaçãoCapacidade de mover um programa de uma região da memória principal para uma outra sem invalidar as referencias de memória dentro do programa;O programador não sabe onde o programa é colocado na memória quando ele é executadoO hardware do processador e o SO devem ser capazes de traduzir os endereços de referencia de memória no código do programa para o endereço físico da memória.

Page 6: Gerenciamento de Memória - Capítulo 7 - Sistemas Operacionais Prof. Dr. José Carlos Becceneri Luciana Sêda Cardoso.

Técnica de Endereçamento -> Imagem do Processo

Page 7: Gerenciamento de Memória - Capítulo 7 - Sistemas Operacionais Prof. Dr. José Carlos Becceneri Luciana Sêda Cardoso.

Requisito - ProteçãoCada processo deve ser protegido contra interferências não desejáveis de outros processos de forma acidental ou intencionalProcessos não devem ser capazes de referenciar localizações de memória de outro processo sem permissão;O hardware é responsável por fazer a verificação, caso a violação ocorra, o mesmo deve abortar tais instruções no ponto da execução;O SO não pode prever todas as referencias de memória que o programa fará (custo muito alto).

Page 8: Gerenciamento de Memória - Capítulo 7 - Sistemas Operacionais Prof. Dr. José Carlos Becceneri Luciana Sêda Cardoso.

Requisito - Compartilhamento

Permitir que vários processos acessem a mesma área de memória principalÉ vantajoso, que : processos que são executados em um mesmo

programa acessem a mesma cópia do programa e

Processos que estão cooperando em uma mesma tarefa compartilhem acesso a uma mesma estrutura de dados

Deve permitir o compartilhamento sem comprometer o requisito de proteção

Page 9: Gerenciamento de Memória - Capítulo 7 - Sistemas Operacionais Prof. Dr. José Carlos Becceneri Luciana Sêda Cardoso.

Requisitos - Organização LógicaCapacidade de manipular com programas e dados do usuário organizado em módulos

Memória -> seqüências de Bytes e palavras Programas -> módulos

Vantagens: Módulo podem ser escritos e compilados

independentemente, as referencias de um módulo para o outro são resolvidas em tempo de execução;

Com um overhead adicional, diferentes graus de proteção (read only, execute only) podem ser dados para diferentes módulos

É possível introduzir mecanismo de compartilhamento entre módulos

Page 10: Gerenciamento de Memória - Capítulo 7 - Sistemas Operacionais Prof. Dr. José Carlos Becceneri Luciana Sêda Cardoso.

Requisito – Organização Física

Organização da memória do computador: Dois níveis:

Memória principal -> mais rápida, volátil e custo alto

Memória secundária -> lenta, armazenamento permanente e barata

Capacidade de mover informações entre os 2 níveis de memória

Page 11: Gerenciamento de Memória - Capítulo 7 - Sistemas Operacionais Prof. Dr. José Carlos Becceneri Luciana Sêda Cardoso.

Técnicas de Gerenciamento de Memória

Partição de memória Partição fixa Partição dinâmica Sistema Buddy

Paginação simplesSegmentação simplesPaginação de Memória VirtualSegmentação de Memória Virtual

Page 12: Gerenciamento de Memória - Capítulo 7 - Sistemas Operacionais Prof. Dr. José Carlos Becceneri Luciana Sêda Cardoso.

Partição Fixa Memória principal é dividida dentro de um no. de partições estáticas (tamanho igual ou diferente). O processo é carregado dentro de uma partição de tamanho = ou >.Ponto forte: Simples de implementar, pouco overhead no sistemaPonto fraco: Fragmentação interna -> Uso ineficiente da memória principal. Qualquer programa, não importando o quanto pequeno é, ocupa uma partição na memória.

Page 13: Gerenciamento de Memória - Capítulo 7 - Sistemas Operacionais Prof. Dr. José Carlos Becceneri Luciana Sêda Cardoso.
Page 14: Gerenciamento de Memória - Capítulo 7 - Sistemas Operacionais Prof. Dr. José Carlos Becceneri Luciana Sêda Cardoso.

Algoritmo de LocaçãoPartição de tamanho igual: todas as partições com o mesmo tamanho, não importa qual partição é usada;Partição de tamanho diferente: Dois caminhos:

Uma fila para cada partição -> Processos são atribuídos de forma a minimizar o desperdício de memória na partição

Uma única fila para todas as partições ->Os processos são atribuídos a partição de menor tamanho disponível no momento.

Page 15: Gerenciamento de Memória - Capítulo 7 - Sistemas Operacionais Prof. Dr. José Carlos Becceneri Luciana Sêda Cardoso.
Page 16: Gerenciamento de Memória - Capítulo 7 - Sistemas Operacionais Prof. Dr. José Carlos Becceneri Luciana Sêda Cardoso.

Partição Fixa (cont.)

Desvantagens: No. de partições especificadas no tempo de

geração do sistema -> limita o no. de processos ativos dentro do sistema

Tamanho das partições são setadas no tempo de geração do sistema -> jobs pequenos utilizam os espaços das partições de forma ineficiente

Usada com sucesso: Mainframe da IBM e Os/MFT(Multiporgramação com no. fixo de tarefa)

Page 17: Gerenciamento de Memória - Capítulo 7 - Sistemas Operacionais Prof. Dr. José Carlos Becceneri Luciana Sêda Cardoso.

Partição DinâmicaPartições são criadas dinamicamente, de forma que cada processo é alocado dentro da partição do mesmo tamanho do processoPonto forte: Não tem fragmentação interna e usa de forma mais eficiente a memóriaPonto fraco: Uso ineficiente do processador por necessitar de compactação para solucionar a fragmentação externa (memória vai ficando cheia de vários buracos)

Usada com sucesso: Mainframe da IBM e Os/MFT(Multiporgramação com no. variável de tarefa)

Page 18: Gerenciamento de Memória - Capítulo 7 - Sistemas Operacionais Prof. Dr. José Carlos Becceneri Luciana Sêda Cardoso.
Page 19: Gerenciamento de Memória - Capítulo 7 - Sistemas Operacionais Prof. Dr. José Carlos Becceneri Luciana Sêda Cardoso.
Page 20: Gerenciamento de Memória - Capítulo 7 - Sistemas Operacionais Prof. Dr. José Carlos Becceneri Luciana Sêda Cardoso.

Algoritmo de LocaçãoO SO deve decidir qual bloco livre a ser alocado ao processo de forma eficiente.

Três algoritmos podem ser usados: First-fit : Procura dentro da memória a partir o inicio

e escolhe o primeiro bloco que é grande o suficiente para o processo a ser alocado;

Next-fit: Inicia a procura a partir do local onde foi feito a ultima locação e escolhe o bloco que é grande o suficiente para o processo a ser alocado

Best-fit: Escolhe o bloco que mais se aproxima do tamanho requerido;

Page 21: Gerenciamento de Memória - Capítulo 7 - Sistemas Operacionais Prof. Dr. José Carlos Becceneri Luciana Sêda Cardoso.
Page 22: Gerenciamento de Memória - Capítulo 7 - Sistemas Operacionais Prof. Dr. José Carlos Becceneri Luciana Sêda Cardoso.

Qual deles é o melhor?First-fit :

Mais rápido e o melhor Ele gera no inicio da memória pequenas partições livres que

necessitam ser pesquisadas a cada passo subseqüente do first-fit

Next-fit: Freqüentemente aloca blocos livres no fim da memória Como resultado, blocos grandes de memória são quebrados

rapidamente em blocos menores Compactação mais freqüente é requerida para obter grandes

blocos no fim da memóriaBest-fit:

Tem a pior performance Procura pelo menor bloco que satisfaça o requisito Como resultado, a memória principal é rapidamente

quebrada em blocos muito pequenos que não podem satisfazer um pedido de alocação, exigindo assim uma compactação freqüente

Page 23: Gerenciamento de Memória - Capítulo 7 - Sistemas Operacionais Prof. Dr. José Carlos Becceneri Luciana Sêda Cardoso.

Sistema BuddyO espaço disponível total da memória é tratado como um único bloco de 2U (bloco de maior tamanho que pode ser alocado)

Se um pedido de tamanho s é tal que 2U-1 < s ≤ 2U,

Então: o bloco completo 2U é alocado Senão: O bloco é divido em 2 “buddies” iguais. A divisão

continua até que o bloco encontrado seja > ou = ao s requerido.

Uma forma modificada deste sistema é usada para alocação de memória no kernel do UNIX. Também tem sido usado em aplicações de sistemas paralelos (alocação e liberação de programas paralelos).

Page 24: Gerenciamento de Memória - Capítulo 7 - Sistemas Operacionais Prof. Dr. José Carlos Becceneri Luciana Sêda Cardoso.
Page 25: Gerenciamento de Memória - Capítulo 7 - Sistemas Operacionais Prof. Dr. José Carlos Becceneri Luciana Sêda Cardoso.
Page 26: Gerenciamento de Memória - Capítulo 7 - Sistemas Operacionais Prof. Dr. José Carlos Becceneri Luciana Sêda Cardoso.

Paginação SimplesA memória é divida em pequenos pedaços de tamanho igual chamados frames. Cada processo é dividido em pequenos pedaços de tamanho igual ao do frame chamado pages. Quando um processo é carregado na memória, todas as suas páginas são carregadas dentro dos frames disponíveis, e uma tabela de página é setada. Os frames usados não precisam estar em seqüência.

Ponto forte: Não tem fragmentação externa

Ponto fraco: tem uma pequena quantidade de fragmentação interna.

Page 27: Gerenciamento de Memória - Capítulo 7 - Sistemas Operacionais Prof. Dr. José Carlos Becceneri Luciana Sêda Cardoso.
Page 28: Gerenciamento de Memória - Capítulo 7 - Sistemas Operacionais Prof. Dr. José Carlos Becceneri Luciana Sêda Cardoso.
Page 29: Gerenciamento de Memória - Capítulo 7 - Sistemas Operacionais Prof. Dr. José Carlos Becceneri Luciana Sêda Cardoso.

Como o SO controla as páginas alocadas e os frames livres?

O SO usa: Conceito de endereço lógico; Mantém ma tabela de frames livres ; Mantém uma tabela de pagina para cada processo,

contendo a localização do frame para cada pagina do processo.

Page 30: Gerenciamento de Memória - Capítulo 7 - Sistemas Operacionais Prof. Dr. José Carlos Becceneri Luciana Sêda Cardoso.

Dentro do programa, cada endereço lógico consiste: um número de pagina + um offset da pagina

Exemplo: Endereço lógico= Page 1 e offset

478 0 0 00 0 1 0 1 1 1 0 1 1 1 1 0

Page 31: Gerenciamento de Memória - Capítulo 7 - Sistemas Operacionais Prof. Dr. José Carlos Becceneri Luciana Sêda Cardoso.

Tradução do endereço lógico para o endereço físico é feito pelo hardware do processador , da seguinte forma:

0 0 00 0 1 0 1 1 1 0 1 1 1 1 0

0 0 10 1 0 0 1 1 1 0 1 1 1 1 0

0 0 10 0 10 0 10 1 00 1 01 0 1

Endereço lógico

012

Endereço físico

Tabela de Página

Page 32: Gerenciamento de Memória - Capítulo 7 - Sistemas Operacionais Prof. Dr. José Carlos Becceneri Luciana Sêda Cardoso.

Segmentação SimplesCada processo é dividido em um número de segmentos de tamanho desigual (limitado pelo tamanho máximo). Um processo é carregado na memória, todos os seus segmentos são carregados dentro de partições dinâmicas que não necessitam ser continuas.Ponto forte: Não tem fragmentação internaPonto fraco: Tem uma pequena quantidade de fragmentação externa

Page 33: Gerenciamento de Memória - Capítulo 7 - Sistemas Operacionais Prof. Dr. José Carlos Becceneri Luciana Sêda Cardoso.

Segmento 0

Segmento 3

Segmento 1

Segmento 4

Segmento2

14002400

3200

43004700

570063006700

Exemplo de Segmentação

Sub-rotina

Tabela de símbolos

pilha

Programa principal

Variáveis Globais

Page 34: Gerenciamento de Memória - Capítulo 7 - Sistemas Operacionais Prof. Dr. José Carlos Becceneri Luciana Sêda Cardoso.

Como o SO controla os segmentos alocados e blocos

livres?O SO mantém:

Conceito de endereço lógico mantém uma tabela de blocos livres ; mantém uma tabela de segmentos para cada processo, contendo a endereço

inicial na memória principal (base) + o tamanho do segmento (limite).

Exemplo de umaTabela de Segmento

Base Limite1400 10006300 4004300 4003200 11004700 1000

01234

Page 35: Gerenciamento de Memória - Capítulo 7 - Sistemas Operacionais Prof. Dr. José Carlos Becceneri Luciana Sêda Cardoso.

Tradução do endereço lógico para o endereço físico é feito pelo hardware do processador , da seguinte forma:

0 0 10 0 0 1 0 1 1 1 1 0 0 0 0

0 0 01 0 0 1 1 0 0 0 1 0 0 0 0

0010111011100000010000000000011110011110

Endereço lógico

01

Endereço físico

Tabela de Segmento

Segmento Offset

0010000000100000Limite Base

+

Page 36: Gerenciamento de Memória - Capítulo 7 - Sistemas Operacionais Prof. Dr. José Carlos Becceneri Luciana Sêda Cardoso.

Memória Virtual - Paginação

É igual a paginação simples, exceto que não necessita ser carregada todas as páginas do processo. Paginas não residentes que são necessárias, são trazidas mais tarde automaticamente.

Ponto forte: Não tem fragmentação externa; Alto grau de multiprogramação; Espaço para grandes processos virtuais.

Ponto fraco: Overhead no gerenciamento complexo de memória.

Page 37: Gerenciamento de Memória - Capítulo 7 - Sistemas Operacionais Prof. Dr. José Carlos Becceneri Luciana Sêda Cardoso.

Memória Virtual - Segmentação

É igual a segmentação simples, exceto que não necessita ser carregada todas os segmentos do processo. Segmentos não residentes que são necessárias, são trazidas mais tarde automaticamente.

Ponto forte: Não tem fragmentação interna; Alto grau de multiprogramação; Espaço para grandes processos virtuais; Suporte de proteção e compartilhamento.

Ponto fraco: Overhead no gerenciamento complexo de memória.