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

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

Sistemas Operacionais Gerenciamento de Memória Prof. Galvez.

Apresentações semelhantes


Apresentação em tema: "Sistemas Operacionais Gerenciamento de Memória Prof. Galvez."— Transcrição da apresentação:

1 Sistemas Operacionais Gerenciamento de Memória Prof. Galvez

2 Considerações Gerais  Multiprogramação implica em manter-se vários processos em memória  Memória necessita ser alocada de forma eficiente para permitir o máximo possível de processos  Existem diferentes técnicas para gerência de memória  Dependem do hardware do processador  Um sistema de memória possui pelo menos:  Memória principal: acessada pela CPU  Memória secundária: discos  Memória Cache (alguns possuem...)  Programas são armazenados em disco: Executar um programa se traduz em transferi-lo da memória secundária à memória principal  Qualquer sistema operacional tem gerência de memória  Monotarefa: gerência é simples  Multitarefa: complexa

3 Transformação de programa em processo Programa Compilador objeto Ligador... executável Carregador RAM Biblioteca estática Fase de compilação Fase de ligação Fase de carga

4 Hierarquia de Memória  Na década de 50 e 60 a memória principal era muito cara.  A hierarquia de memória contém níveis caracterizados pela velocidade e custo da memória em cada nível.

5 Memória Lógica e Física  Memória Lógica  É aquela que o processo “enxerga”, aquela que o processo é capaz de endereçar e acessar usando as suas instruções. Um programa em C manipula variáveis tipo ponteiros (pointer), as quais contêm endereços lógicos.  Endereços lógicos são aqueles manipulados por um processo.

6 Memória Lógica e Física  Memória Física  Implementada pelos circuitos integrados de memória, pela eletrônica do computador  Endereços físicos são aqueles que correspondem a uma posição real de memória

7 Gerência de Memória  Unidade de Gerência de Memória (MMU - Memory Management Unit)  É o componente do hardware responsável por prover os mecanismos básicos que serão usados pelo SO para gerenciar a memória.  Mapeia os endereços lógicos gerados´pelos processos nos correspondentes endereços físicos que serão enviados para a memória. PROCESSADOR End. lógico MMU End. físico Memória

8 Exemplo de MMU  Os endereços lógicos e físicos possuem valores idênticos (123)  O espaço de endereçamento lógico de um processo é limitado pelos Registradores de Limites ( Inferior [100] e Superior [799] )  Qualquer endereço lógico fora desse intervalo é considerado ilegal.

9 Exemplo de MMU  O endereço lógico é comparado com o um limite superior [500]. Caso seja menor ou igual, então é somado ao valor do registrador de base, resultando o endereço físico quevai para a memória.  Pode gerar endereços entre zero e 200. Valor fora desse limite são ilegais.

10 Partições Fixas  Forma mais simples de gerência de memória para multiprogramação. A memória é primeiramente dividida em uma parte para uso do SO e uma parte para uso dos processos de usuários.  A seguir, a parte dos usuários, é dividida em várias partições de tamanhos diferentes, porém fixos. Sistema Operacional – 225 M Processos de Usuários 375 M Memória Física Sistema Operacional – 225 M Partição 1 – 200 M Partição 3 – 50 M Partição 4 – 25 M Partição 2 – 100 M Memória Física

11 Partições Fixas  Quando um programa deve ser carregado, é escolhida uma partição ainda livre.  Detalhe: a partição deve ter um tamanho igual ou maior que o programa.  Não existindo uma partição livre que seja grande o bastante para conter o programa, ele não poderá ser executado no momento. Deve esperar a liberação de uma partição com tamanho suficiente.  Dois problemas para esse tipo de gerência de memória!!!

12 8 M 5 M 8 M Sist. Operacional Partições Fixas – Fragmentação Interna  Memória perdida dentro da área alocada para um processo  Um processo, não importando quão pequeno seja, ocupa uma partição inteira Fragmentação interna Sist. Operacional 8 M 12 M 8 M 6 M 4 M 2 M Solução Paliativa: Partições com tamanhos diferentes

13 Partições Fixas – Fragmentação Externa  Memória 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 Não Executa!! Porque??? LIVRE 4 M LIVRE 1 M Memória Livre não é Contígua

14 Partições Variáveis  Técnica mais flexível, pois o tamanho da partição é ajustado dinamicamente às necessidades exatas dos processos.  SO mantém uma lista de lacunas (espaços livres da memória física), 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 diferença (tamanho da lacuna – tamanho do processo) será transformada numa nova lacuna.  O processo recebe o tamanho exato que necessita.

15 Partições Fixas SO 225 Kbytes Processo Kbytes Processo 2 98 Kbytes Processo 3 23 Kbytes Lacuna 80 Kbytes Memória Física Processo 4 85 Kbytes SO 225 Kbytes Processo Kbytes Processo 4 85 Kbytes Processo 3 23 Kbytes Lacuna 80 Kbytes Memória Física Lacuna 13 Kbytes Lacuna 23 Kbytes Lacuna 116 Kbytes

16 Partições Variáveis – Fragmentação Externa  A execução de processos pode criar pedaços livres de memória.  Pode haver memória disponível, mas não contígua SO Processo K Processo K 64 K Processo 4128 K 96 K Exemplo: Criação Processo 120K

17 Partições Variáveis – Fragmentação Externa  Possíveis Soluções  Reunir espaços adjacentes de memória.  Empregar compactação  Relocar as partições de forma a eliminar os espaços entre elas e criando uma área contígua  Desvantagem:  Consumo do processador  Acesso a Disco  Acionado somente quando ocorre fragmentação

18 Algoritmos para alocação contígua dinâmica  Best fit  Utiliza a lacuna que resultar na menor sobra  Minimizar tam_processo - tam_bloco  Deixar espaços livres os menores possíveis  Worst fit  Utiliza a lacuna que resultar na maior sobra  Maximizar tam_processo - tam_bloco  Deixar espaços livres os maiores possíveis  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

19 Algoritmos para alocação contígua dinâmica Exemplo: Criação 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

20 Swap out Swap in Memória  Processo necessita estar na memória para ser executado  Se não há mais espaço em memória é necessário fazer um rodízio de processos em memória  Memória secundária suficientemente grande para armazenar cópias de todos os processos de usuários. Swapping P2P2 P1P1

21 P1P1 P1P1 Swap out Swap in Memória Um processo maior que a memória.


Carregar ppt "Sistemas Operacionais Gerenciamento de Memória Prof. Galvez."

Apresentações semelhantes


Anúncios Google