gerenciamento de mem ria cap tulo 7 l.
Download
Skip this Video
Download Presentation
Gerenciamento de Memória - Capítulo 7 -

Loading in 2 Seconds...

play fullscreen
1 / 37

Gerenciamento de Memória - Capítulo 7 - - PowerPoint PPT Presentation


  • 99 Views
  • Uploaded on

Gerenciamento de Memória - Capítulo 7 - . Sistemas Operacionais Prof. Dr. José Carlos Becceneri Luciana Sêda Cardoso. Sumário. Definição Requisitos Técnicas de Gerenciamento de Memória. Gerenciamento de Memória.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Gerenciamento de Memória - Capítulo 7 -' - hali


Download Now An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
gerenciamento de mem ria cap tulo 7

Gerenciamento de Memória- Capítulo 7 -

Sistemas Operacionais

Prof. Dr. José Carlos Becceneri

Luciana Sêda Cardoso

sum rio
Sumário
  • Definição
  • Requisitos
  • Técnicas de Gerenciamento de Memória
gerenciamento de mem ria
Gerenciamento de Memória
  • Principal 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.
requisitos
Requisitos
  • Relocação
  • Proteção
  • Compartilhamento
  • Organização lógica
  • Organização física
requisito reloca o
Requisito - Relocação
  • Capacidade 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 é executado
  • O 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.
requisito prote o
Requisito - Proteção
  • Cada processo deve ser protegido contra interferências não desejáveis de outros processos de forma acidental ou intencional
  • Processos 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).
requisito compartilhamento
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
requisitos organiza o l gica
Requisitos - Organização Lógica
  • Capacidade 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
requisito organiza o f sica
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
t cnicas de gerenciamento de mem ria
Técnicas de Gerenciamento de Memória
  • Partição de memória
    • Partição fixa
    • Partição dinâmica
    • Sistema Buddy
  • Paginação simples
  • Segmentação simples
  • Paginação de Memória Virtual
  • Segmentação de Memória Virtual
parti o fixa
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 sistema
  • Ponto 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.
algoritmo de loca o
Algoritmo de Locação
  • Partiçã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.
parti o fixa cont
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)
parti o din mica
Partição Dinâmica
  • Partições são criadas dinamicamente, de forma que cada processo é alocado dentro da partição do mesmo tamanho do processo
  • Ponto forte: Não tem fragmentação interna e usa de forma mais eficiente a memória
  • Ponto fraco: Uso ineficiente do processador por necessitar de compactação para solucionar a fragmentaçãoexterna (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)
algoritmo de loca o20
Algoritmo de Locação
  • O 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;
qual deles o melhor
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ória
  • Best-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
sistema buddy
Sistema Buddy
  • O 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).
pagina o simples
Paginação Simples
  • A 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.
como o so controla as p ginas alocadas e os frames livres
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.
slide30
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

0

0

0

1

0

1

1

1

0

1

1

1

1

0

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

Endereço lógico

0

0

0

0

0

1

0

1

1

1

0

1

1

1

1

0

Tabela de Página

0

0

0

0

1

0

1

1

0

0

0

1

1

0

2

0

1

1

0

0

1

Endereço físico

0

0

0

1

1

0

0

1

1

1

0

1

1

1

1

0

segmenta o simples
Segmentação Simples
  • Cada 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 interna
  • Ponto fraco: Tem uma pequena quantidade de fragmentação externa
slide33

Exemplo de

Segmentação

1400

Segmento 0

Sub-rotina

2400

3200

Segmento 3

pilha

4300

Segmento2

Programa principal

4700

Segmento 4

Tabela de símbolos

5700

6300

Segmento 1

Variáveis Globais

6700

como o so controla os segmentos alocados e blocos livres
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 uma

Tabela de Segmento

0

1

2

3

4

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

Segmento

Offset

Endereço lógico

0

0

0

1

0

0

1

0

1

1

1

1

0

0

0

0

Tabela de Segmento

0

001011101110

0000010000000000

+

1

011110011110

0010000000100000

Limite

Base

Endereço físico

0

0

1

0

0

0

1

1

0

0

0

1

0

0

0

0

mem ria virtual pagina o
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.
mem ria virtual segmenta o
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.
ad