s.o Memorias

download s.o Memorias

of 61

Transcript of s.o Memorias

  • 8/15/2019 s.o Memorias

    1/61

    Prof.ª Ms. Ana Cláudia Melo Tiessi Gomes de Oliveira

    [email protected]

    SISTEMAS OPERACIONAIS I

    Aula 9 e 10  –  Gerenciamento de Memória

  • 8/15/2019 s.o Memorias

    2/61

    2

    GERENCIAMENTO DE MEMÓRIA

    Gerenciamento básico de memória• Troca de processos• Memória virtual• Algoritmos de substituição de páginas•

    Modelagem de algoritmos de substituição de páginas• Questões de projeto para sistemas de paginação• Questões de implementação• Segmentação

  • 8/15/2019 s.o Memorias

    3/61

    3

    Conteúdo• Gerenciamento básico de memória

     – Monoprogramação sem troca de processos ou paginação

     – Multiprogramação com partições fixas – Modelagem de multiprogramação

     – Análise de desempenho de sistemas de

    multiprogramação

  • 8/15/2019 s.o Memorias

    4/61

    4

    Gerenciamento de Memória

    • A memória é um recurso importante e por isso deve sergerenciado com cuidado.

    • Idealmente, o que todo programador deseja é dispor deuma memória que seja – grande – rápida – não volátil

  • 8/15/2019 s.o Memorias

    5/61

    5

    Hierarquia de memórias•

    Esta hierarquia combina – CACHE : pequena quantidade de memória rápida, de alto

    custo. – MEMÓRIA PRINCIPAL (RAM): quantidade considerável

    de memória principal de velocidade média, custo médio – MEMÓRIA SECUNDÁRIA: centenas de gigabytes de

    armazenamento em disco de velocidade e custo baixos

    • O SO quem coordena a utilização destas memórias. Éa parte do SO responsável por esta tarefa éGerenciador de Memória.

  • 8/15/2019 s.o Memorias

    6/61

    6

    Gerenciamento de Memória

    • Ele tem como função manter o controle dequais partes de memória estão em uso e quaisnão estão, alocando memória aos processosquando eles precisam e liberando quando os processos não necessitam mais.

    • Gerencia a troca de processos entre a memóriae o disco.

  • 8/15/2019 s.o Memorias

    7/61

    7

    Gerenciamento básico de Memória

    • Os sistemas de gerenciamento de memória sãodivididos em duas classes: – Sistemas que, durante a execução levam e trazem

     processos entre a memória principal e o disco. – Sistemas mais simples que não necessitam de

    troca.

  • 8/15/2019 s.o Memorias

    8/61

    8

    Monoprogramação sem Troca de Processos ou Paginação

    Três maneiras simples de organizar a memória- um sistema operacional e um processo de usuário

  • 8/15/2019 s.o Memorias

    9/61

    9

    Monoprogramação sem Troca de Processos ouPaginação

    • (a) Foi inicialmente, empregado emcomputadores de grande porte eminicomputadores. Já não existe mais.

    • (b) É utilizado em alguns palmtops e emsistemas embarcados.

    • (c) Faz parte dos primeiros pc´s (MS DOS). As

     parte contidas em ROM são denominadas deBIOS ( Basic Input Output System).

  • 8/15/2019 s.o Memorias

    10/61

    10

    Multiprogramação com Partições Fixas

    • A maneira mais simples de realizar a multiprogramaçãoconsiste em simplesmente dividir a memória e, n 

     partições (tamanhos diferentes). Essa partição é feitadurante o BOOT.

    • Ao chegar, um job poder ser colocado em uma fila deentrada associada à menor partição. Como o tamanho das

     partições é fixo nesse esquema, todo o espaço de uma partição usado pelo job é perdido.

    • Hoje poucos (nenhum) sistemas suportam esse modelo.

  • 8/15/2019 s.o Memorias

    11/61

    11

    Multiprogramação com Partições Fixas

    • Partições fixas de memóriaa) filas de entrada separadas para cada partição

     b) fila única de entrada

  • 8/15/2019 s.o Memorias

    12/61

    12

    Multiprogramação com Partições Fixas

    Desvantagens: –  fila grande para partição pequena e fila pequena para uma partiçãogrande.

    • Soluções: –

    Manter uma única fila. – Pesquisar na fila de entrada e alocar a partição disponível ao maior

     job.• Problema: Prejudica job pequenos (entrada e saída)• Solução:

    • Haver pelo menos uma partição pequena para atender Jobs  pequenos.• Criar uma regra que definisse que um job pronto para execução não poderia

    ser preterido de receber uma partição mais do que K vezes, este ganharia um ponto. Quando alcançasse K pontos ele teria uma partição (mesmo quedesperdiçasse memória)

  • 8/15/2019 s.o Memorias

    13/61

    13

    • Modelo otimista: – De modo genérico, se em média, um processo

     permanece em execução apenas 20 por cento do

    tempo em que reside em memória, com cinco processos simultaneamente na memória a CPUdeveria permanecer ocupada durante todo o tempo.

    Modelagem de Multiprogramação

  • 8/15/2019 s.o Memorias

    14/61

    14

    Modelagem de Multiprogramação

    • Modelo probabilístico: –  Um processo gasta uma fração p de seu tempo esperando

     pela finalização de sua solicitação de E/S. Com n processossimultâneos na memória, chega-se a esta fórmula.

    Utilização da CPU =

  • 8/15/2019 s.o Memorias

    15/61

    15

    Modelagem de Multiprogramação

    Utilização da CPU como uma função do número de processos na memória

  • 8/15/2019 s.o Memorias

    16/61

    16

     Análise de Desempenho de Sistemas de Multiprogramação

  • 8/15/2019 s.o Memorias

    17/61

     Análise de Desempenho de Sistemas de Multiprogramação

    Chegada de 4 Jobs  e suas necessidades de trabalho• Utilização da CPU por até 4 Jobs  com 80% de espera por E/S• Sequência de eventos entre chegada e término dos Jobs 

     –  Note que os números mostram quanto tempo da CPU cada job obtémem cada intervalo

  • 8/15/2019 s.o Memorias

    18/61

    18

    Troca de Processos (Swapping )

    • Alterações na alocação de memória à medida que processosentram e saem da memória

    • Regiões sombreadas correspondem a regiões de memória nãoutilizadas naquele instante

  • 8/15/2019 s.o Memorias

    19/61

    19

    • Alocação de memória muda com a entrada e saída de processos da memória.

    • Duas maneiras:

    Swapping – 

     programa todo em memória. Carregadodo disco para memória.

    • Memória Virtual  –  Só parte do programa é carregado para a memória.

    Troca de Processos (Swapping )

  • 8/15/2019 s.o Memorias

    20/61

    20

    Troca de Processos (2)

    a) Alocação de espaço para uma área de dados em expansão b) Alocação de espaço para uma pilha e uma área de dados,

    ambos em expansão

  • 8/15/2019 s.o Memorias

    21/61

    21

    Gerenciamento de Memória com Mapas de Bits

    a) Parte da memória com 5 segmentos de processos e 3 segmentos

    de memória livre−  pequenos riscos simétricos denotam as unidades de alocação− regiões sombreadas denotam segmentos livres

     b) Mapa de bits correspondente

    c) Mesmas informações em uma lista encadeada

  • 8/15/2019 s.o Memorias

    22/61

    22

    Gerenciamento de Memória com Mapas de Bits

    Desvantagens:• Se for necessário carregar na memória um

     processo com tamanho de K  unidades, o

    gerenciador de memória precisa encontrarespaço disponível na memória procurando nomapa de bits uma seqüência de k  bitsconsecutivos operação é lenta.

  • 8/15/2019 s.o Memorias

    23/61

    23

    Gerenciamento de Memória com Listas Encadeadas

    • Quatro combinações de vizinhança para o

     processo X em término de execução• Algoritmos de busca: First-Fit, Next-Fit, Best-Fit,

    Worst-Fit e Quick-Fit

  • 8/15/2019 s.o Memorias

    24/61

    24

     Alguns métodos

    • Foram desenvolvidos alguns métodos paraminimizar a fragmentação externa.

    Os principais são: – Overlays – Paginação

     – Segmentação

  • 8/15/2019 s.o Memorias

    25/61

    25

    Princípio da Memória Virtual

    Overlay• Conceito nascido no tempo em que os computadores

     possuíam pouca memória, e não comportavam programas grandes

    • Idéia principal: dividir o programa em partes (módulos),de modo que cada um caiba na memória.

    •  Neste tipo de técnica, o programador é responsável por: – Dividir o programa; – Decidir onde armazenar cada parte, e – Transportar cada parte entre a e memória principal e

    secundária.

  • 8/15/2019 s.o Memorias

    26/61

    26

     A automatização do Overlay

    • Um grupo de pesquisa com o objetivo deautomatizar o Overlay criou o métodochamada

    MEMÓRIA VIRTUAL

  • 8/15/2019 s.o Memorias

    27/61

    27

    Memória Virtual

    • Memória física é limitada.

    • Programas necessitam de mais memória

    Solução a nível da aplicação: divisão do programa em blocos distintos.

    • Programador tinha de retirar e carregar em

    memória os blocos ( o SO não intervinha)

  • 8/15/2019 s.o Memorias

    28/61

    28

    Memória Virtual Paginação (1)

    Localização e função da MMU

    Memória Virt al

  • 8/15/2019 s.o Memorias

    29/61

    29

    A relação entreendereços virtuais eendereços físicos dememória dada pelatabela de páginas

    Memória VirtualPaginação (2)

  • 8/15/2019 s.o Memorias

    30/61

    30

    Paginação• Separar os conceitos de espaço de endereçamento e posições de memória.

    Exemplo:

     – Um computador com um campo de endereço de 16 bits e uma memória principal de 4096 bytes (4K).

     – Qualquer programa neste computador pode, então, gerar endereços que variam

    de 0 à 62 KB, apesar das posições de endereços acima de 4096 não existiremfisicamente.

    • O Hardware forçava uma correspondência de um para um entre espaços deendereçamento e endereços reais.

    • Paginação melhora o problema de fragmentação, diminuindo-a, pois todos

    os tamanhos dos blocos são iguais, aumentando o desempenho dohardware.

  • 8/15/2019 s.o Memorias

    31/61

    31

    Paginação• Suposição: há sempre espaço suficiente na memóriasecundária para armazenar um programa completo e

    seus dados.• A paginação dá ao programador a ilusão de uma

    memória principal grande, linear e contínua, domesmo tamanho do espaço de endereçamento,quando, de fato, a memória principal disponível podeser menor que o espaço de endereçamento.

    • A simulação desta memória ampla não pode ser

    detectada por programa: é um mecanismostransparente ao usuário.

  • 8/15/2019 s.o Memorias

    32/61

    32

    Termos Importantes

    • Espaço de endereçamento virtual: são osendereços que o programa pode referenciar.

    • Endereço físico: são os endereços reais dememória.

    • Tabela de páginas: relaciona os endereços virtuais

    com endereços físicos.

  • 8/15/2019 s.o Memorias

    33/61

    33

    Implementação da Paginação

    Existência de uma memória secundária para manterum programa completo.• A cópia de um programa na memória secundária

     poder ser considerado o original.

    • As partes trazidas da memória principal, de vez emquando, podem ser consideradas cópias.

    • Quando modificações são feitas na cópia da memória principal, elas devem ser refletidas no original.

  • 8/15/2019 s.o Memorias

    34/61

    34

    Características da Implementação

    O espaço de endereçamento virtual é dividido em páginas de tamanhos iguais (geralmente de 512 a4096 endereços por página).

    • O espaço de endereçamento físico tem tamanhode página idêntico ao do endereçamento virtual

    (estas páginas são chamadas páginas físicas)

  • 8/15/2019 s.o Memorias

    35/61

    35

    Tabelas de Páginas (1)

    Operação interna de uma MMU com 16 páginas de 4KB26

  • 8/15/2019 s.o Memorias

    36/61

    36

    Tabelas de Páginas (1)

    Tradução do endereço lógico para o endereçofísico é feito pelo hardware do processador , daseguinte 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 0

    0 1 01 0 1

    Endereço lógico

    01

    2

    Endereço físico

    Tabela de Página

  • 8/15/2019 s.o Memorias

    37/61

    37

    Tabelas de Páginas(2)

    a) Endereço de 32 bits com 2 campos para endereçamento detabelas de páginas

     b) Tabelas de páginas com 2 níveis

  • 8/15/2019 s.o Memorias

    38/61

    38

    Tabelas de Páginas(3)

    Entrada típica de uma tabela de páginas

  • 8/15/2019 s.o Memorias

    39/61

    39

    Memória Associativa ou TLB 

    TLB para acelerar a paginação

  • 8/15/2019 s.o Memorias

    40/61

     

    Questões de Projetos paraSistemas de Paginação

  • 8/15/2019 s.o Memorias

    41/61

    41

    Política de Alocação Local x Global (1)

    (a) Configuração original; (b) Substituição local; (c) Substituição global

  • 8/15/2019 s.o Memorias

    42/61

    42

    Política de Alocação - Local x Global (2)

    Freqüência de faltas de página como função donúmero de molduras de página alocado

  • 8/15/2019 s.o Memorias

    43/61

    43

    Controle de Carga

    • Mesmo com um bom projeto, o sistema ainda pode sofrer paginação excessiva (thrashing) 

    • Quando o algoritmo PFF indica – alguns processos precisam de mais memória – mas nenhum processo precisa de menos

    • Solução :Reduzir o número de processos que competem pelamemória – levar alguns deles para disco e liberar a memória a eles alocada – reconsiderar grau de multiprogramação

  • 8/15/2019 s.o Memorias

    44/61

    44

    Tamanho de Página (1)

    Tamanho de página pequeno

    • Vantagens

     – menos fragmentação interna – menos programa não usado na memória

    • Desvantagens

     – programas precisam de mais páginas, tabelas de página maiores

  • 8/15/2019 s.o Memorias

    45/61

    45

    Tamanho de Página (2)• Custo adicional da tabela de páginas e

    fragmentação interna

    • Onde – s = tamano médio do processo em bytes

     –  p = tamanho da página em bytes

     –

    e = tamanho da entrada da tabela de página

    2

     s e poverhead 

     p

    Espaço da tabelade páginas

    Fragmentação

    interna

    O resultado é: 2  p se

    custo adicional

  • 8/15/2019 s.o Memorias

    46/61

    46

    Espaços Separados de Instruções e Dados

    a) Espaço de endereçamento único b) Espaços separados de instruções (I) e dados (D)

  • 8/15/2019 s.o Memorias

    47/61

    47

    Páginas Compartilhadas

    Dois processos quecompartilham o mesmocódigo de programa e,

     por conseqüência, amesma tabela de páginas para instruções

  • 8/15/2019 s.o Memorias

    48/61

    48

    Política de Limpeza

    Precisa de um processo que executa em background, umdaemon de paginação – Inspeciona periodicamente o estado da memória

    • Quando apenas algumas molduras de página estão

    disponíveis – Seleciona páginas a serem removidas usando um algoritmo de

    substituição

    • Pode ser implementada através de lista circular (relógio)

    com dois ponteiros – Ponteiro da frente controlado pelo daemon de paginação – Ponteiro de trás usado para substituição de página (como no do

    relógio)

  • 8/15/2019 s.o Memorias

    49/61

    49

    Questões de Implementação

    Envolvimento do S.O. com a Paginação

    Quatro circunstâncias de envolvimento:

    1. Criação de processo determina tamanho do programa cria tabela de página

    2. Execução de processo

    MMU reinicia tabela para novo processo TLB é esvaziada

    3. Ocorrência de falta de página determina endereço virtual que causou a falta descarta, se necessário, página antiga carrega página requisitada para a memória

    4. Terminação de processo Libera tabela de páginas, páginas, e espaço em disco que as

     páginas ocupam

  • 8/15/2019 s.o Memorias

    50/61

  • 8/15/2019 s.o Memorias

    51/61

  • 8/15/2019 s.o Memorias

    52/61

     

    SEGMENTAÇÃO

  • 8/15/2019 s.o Memorias

    53/61

    53

    Segmentação (1)

    • Espaço de endereçamento unidimensional com tabelas crescentes• Uma tabela pode atingir outra

  • 8/15/2019 s.o Memorias

    54/61

    54

    Segmentação (2)

    Permite que cada tabela cresça ou encolha, independentemente

    Comparação entre paginação e segmentação

  • 8/15/2019 s.o Memorias

    55/61

    55

    p ç p g ç g ç

  • 8/15/2019 s.o Memorias

    56/61

    56

    Implementação de Segmentação Pura

    (a)-(d) Desenvolvimento de fragmentação externa(e) Remoção da fragmentação via compactação

    S t ã P i ã P ti (1)

  • 8/15/2019 s.o Memorias

    57/61

    57

    Segmentação com Paginação: Pentium (1)

    Um seletor do Pentium

  • 8/15/2019 s.o Memorias

    58/61

    58

    Segmentação com Paginação:Pentium (2)

    • Descritor de segmento de código do Pentium• Segmentos de dados diferem ligeiramente

  • 8/15/2019 s.o Memorias

    59/61

    59

    Segmentação com Paginação: Pentium (3)

    Conversão de um par (seletor, deslocamento) para umendereço linear

  • 8/15/2019 s.o Memorias

    60/61

    60

    Mapeamento de um endereço linear sobre um endereço físico

    Segmentação com Paginação: Pentium (4)

    S ( )

  • 8/15/2019 s.o Memorias

    61/61

    Proteção no Pentium

    Segmentação com Paginação: Pentium (5)