Sistemas Operacionais Gerenciamento de Mem³ria Prof. Galvez

  • View
    109

  • Download
    0

Embed Size (px)

Text of Sistemas Operacionais Gerenciamento de Mem³ria Prof. Galvez

  • Slide 1
  • Sistemas Operacionais Gerenciamento de Memria Prof. Galvez
  • Slide 2
  • Consideraes Gerais Multiprogramao implica em manter-se vrios processos em memria Memria necessita ser alocada de forma eficiente para permitir o mximo possvel de processos Existem diferentes tcnicas para gerncia de memria Dependem do hardware do processador Um sistema de memria possui pelo menos: Memria principal: acessada pela CPU Memria secundria: discos Memria Cache (alguns possuem...) Programas so armazenados em disco: Executar um programa se traduz em transferi-lo da memria secundria memria principal Qualquer sistema operacional tem gerncia de memria Monotarefa: gerncia simples Multitarefa: complexa
  • Slide 3
  • Transformao de programa em processo Programa Compilador objeto Ligador... executvel Carregador RAM Biblioteca esttica Fase de compilao Fase de ligao Fase de carga
  • Slide 4
  • Hierarquia de Memria Na dcada de 50 e 60 a memria principal era muito cara. A hierarquia de memria contm nveis caracterizados pela velocidade e custo da memria em cada nvel.
  • Slide 5
  • Memria Lgica e Fsica Memria Lgica aquela que o processo enxerga, aquela que o processo capaz de enderear e acessar usando as suas instrues. Um programa em C manipula variveis tipo ponteiros (pointer), as quais contm endereos lgicos. Endereos lgicos so aqueles manipulados por um processo.
  • Slide 6
  • Memria Lgica e Fsica Memria Fsica Implementada pelos circuitos integrados de memria, pela eletrnica do computador Endereos fsicos so aqueles que correspondem a uma posio real de memria
  • Slide 7
  • Gerncia de Memria Unidade de Gerncia de Memria (MMU - Memory Management Unit) o componente do hardware responsvel por prover os mecanismos bsicos que sero usados pelo SO para gerenciar a memria. Mapeia os endereos lgicos geradospelos processos nos correspondentes endereos fsicos que sero enviados para a memria. PROCESSADOR End. lgico MMU End. fsico Memria
  • Slide 8
  • Exemplo de MMU Os endereos lgicos e fsicos possuem valores idnticos (123) O espao de endereamento lgico de um processo limitado pelos Registradores de Limites ( Inferior [100] e Superior [799] ) Qualquer endereo lgico fora desse intervalo considerado ilegal.
  • Slide 9
  • Exemplo de MMU O endereo lgico comparado com o um limite superior [500]. Caso seja menor ou igual, ento somado ao valor do registrador de base, resultando o endereo fsico quevai para a memria. Pode gerar endereos entre zero e 200. Valor fora desse limite so ilegais.
  • Slide 10
  • Parties Fixas Forma mais simples de gerncia de memria para multiprogramao. A memria primeiramente dividida em uma parte para uso do SO e uma parte para uso dos processos de usurios. A seguir, a parte dos usurios, dividida em vrias parties de tamanhos diferentes, porm fixos. Sistema Operacional 225 M Processos de Usurios 375 M Memria Fsica Sistema Operacional 225 M Partio 1 200 M Partio 3 50 M Partio 4 25 M Partio 2 100 M Memria Fsica
  • Slide 11
  • Parties Fixas Quando um programa deve ser carregado, escolhida uma partio ainda livre. Detalhe: a partio deve ter um tamanho igual ou maior que o programa. No existindo uma partio livre que seja grande o bastante para conter o programa, ele no poder ser executado no momento. Deve esperar a liberao de uma partio com tamanho suficiente. Dois problemas para esse tipo de gerncia de memria!!!
  • Slide 12
  • 8 M 5 M 8 M Sist. Operacional Parties Fixas Fragmentao Interna Memria perdida dentro da rea alocada para um processo Um processo, no importando quo pequeno seja, ocupa uma partio inteira Fragmentao interna Sist. Operacional 8 M 12 M 8 M 6 M 4 M 2 M Soluo Paliativa: Parties com tamanhos diferentes
  • Slide 13
  • Parties Fixas Fragmentao Externa Memria perdida fora da rea ocupada por um processo 1 M 3 M 4 M 8 M Sist. Operacional LIVRE 3 M LIVRE 8 M Sist. Operacional 5 M Criado Processo 5 M No Executa!! Porque??? LIVRE 4 M LIVRE 1 M Memria Livre no Contgua
  • Slide 14
  • Parties Variveis Tcnica mais flexvel, pois o tamanho da partio ajustado dinamicamente s necessidades exatas dos processos. SO mantm uma lista de lacunas (espaos livres da memria fsica), que ser percorrida sempre que um processo for criado. Ser usada uma lacuna maior ou igual ao tamanho do processo. Se a lacuna for maior, a diferena (tamanho da lacuna tamanho do processo) ser transformada numa nova lacuna. O processo recebe o tamanho exato que necessita.
  • Slide 15
  • Parties Fixas SO 225 Kbytes Processo 1 174 Kbytes Processo 2 98 Kbytes Processo 3 23 Kbytes Lacuna 80 Kbytes Memria Fsica Processo 4 85 Kbytes SO 225 Kbytes Processo 1 174 Kbytes Processo 4 85 Kbytes Processo 3 23 Kbytes Lacuna 80 Kbytes Memria Fsica Lacuna 13 Kbytes Lacuna 23 Kbytes Lacuna 116 Kbytes
  • Slide 16
  • Parties Variveis Fragmentao Externa A execuo de processos pode criar pedaos livres de memria. Pode haver memria disponvel, mas no contgua SO Processo 1 320 K Processo 3 288 K 64 K Processo 4128 K 96 K Exemplo: Criao Processo 120K
  • Slide 17
  • Parties Variveis Fragmentao Externa Possveis Solues Reunir espaos adjacentes de memria. Empregar compactao Relocar as parties de forma a eliminar os espaos entre elas e criando uma rea contgua Desvantagem: Consumo do processador Acesso a Disco Acionado somente quando ocorre fragmentao
  • Slide 18
  • Algoritmos para alocao contgua dinmica Best fit Utiliza a lacuna que resultar na menor sobra Minimizar tam_processo - tam_bloco Deixar espaos livres os menores possveis Worst fit Utiliza a lacuna que resultar na maior sobra Maximizar tam_processo - tam_bloco Deixar espaos livres os maiores possveis First fit Utiliza a 1 lacuna que encontrar com tamanho suficiente tam_bloco > tam_processo Circular fit Como first-fit, mas inicia a procura na lacuna seguinte ltima sobra
  • Slide 19
  • Algoritmos para alocao contgua dinmica Exemplo: Criao de Um Processo de 10 K 20k 40k 30k A SisOp A C 20k 40k 30k A SisOp A C 20k 40k 30k A SisOp A C Best-fitWorst-fitFirst-Fit
  • Slide 20
  • Swap out Swap in Memria Processo necessita estar na memria para ser executado Se no h mais espao em memria necessrio fazer um rodzio de processos em memria Memria secundria suficientemente grande para armazenar cpias de todos os processos de usurios. Swapping P2P2 P1P1
  • Slide 21
  • P1P1 P1P1 Swap out Swap in Memria Um processo maior que a memria.