Gerência da Memória Memória Virtual Adão de Melo Neto 1 Memória Principal Q Antigamente – Recurso escasso – Desenvolvimento de um sistema operacional (SO) que não ocupassem muito espaço de memória principal (MP) Q Atualmente – Redução do custo e aumento da capacidade das MP – O gerenciamento da MP continua a ser um dos fatores mais importantes do projeto de um sistema operacional 2 Memória Principal Q Sistemas Monoprogramáveis – Gerência não muito complexa Q Sistemas Multiprogramáveis – Gerência crítica – Maximizar o número de usuários e aplicações utilizando de forma eficiente o espaço da memória principal 3 Principais Funções da Gerência da Memória Principal Q Reduzir o número de acessos a memória secundária (operações de E/S) – Tempo de acesso Q Manter na MP o maior número possível de processos – Maximizar o compartilhamento do processador e dos recurso computacionais Memória Secundária 4 Principais Funções da Gerência da Memória Principal Q Q Q Mesmo não havendo espaço livre permitir que novos processos sejam aceitos e executados Permitir a execução de programas maiores que a memória física disponível Proteger a área de memória ocupada por cada processo Processo 1 Processo 2 Processo 3 Processo 4 Memória Secundária 5 Memória Alocação Contínua Simples Q Q Presente em alguns sistemas monoprogramáveis MP em duas partes: – Sistema Operacional // Programa do usuário Q Preocupação: – Não ultrapassar o espaço de memória disponível Q Usuário – Total controle da MO, exceto onde está o SO (endereço protegido por registrador) Q Desvantagem – Não permite o uso eficiente dos recursos do sistema – Apenas um usuário pode dispor desses recursos 6 Segmentação de Programas Q Vantagem – Os programas não estão limitados ao tamanho da MP Q Solução utilizada: – Divisão dos programas em módulos – Execução de cada módulo utilizando a mesma área de memória – Nome da técnica: segmentação ou overlay Q Exemplo: – Módulos: principal, cadastramento e impressão (independentes) – Módulo principal: • É comum aos dois e deve estar na memória todo o tempo de execução Compartilhada entre os módulos Tamanho do Programa 9 KB 7 Alocação Particionada Estática Q Q Q Q Q Memória dividida em blocos de tamanho fixo chamados de partições Tamanho das partições – Estabelecido em tempo de inicialização do sistema – Função do tamanho dos programas que seriam executados. Desvantagem: Fragmentação interna Alocação particionada estática absoluta – Programas só podem ser carregados/executados em uma partição fixa de memória Alocação particionada estática relocável – Programas podem ser carregados/executados em qualquer partição livre na memória 8 Alocação Particionada Estática Absoluta 9 Alocação Particionada Estática Q Q Q Q Q Memória dividida em blocos de tamanho fixo chamados de partições Tamanho das partições – Estabelecido em tempo de inicialização do sistema – Função do tamanho dos programas que seriam executados. Desvantagem: Fragmentação interna Alocação particionada estática absoluta – Programas só podem ser carregados/executados em uma partição fixa de memória Alocação particionada estática relocável – Programas podem ser carregados/executados em qualquer partição livre na memória 10 Alocação Particionada Estática Relocável 11 Alocação Particionada Estática Q Q Q Memória dividida em blocos de tamanho fixo chamados de partições Tamanho das partições – Estabelecido em tempo de inicialização do sistema – Função do tamanho dos programas que seriam executados. Desvantagem: Fragmentação interna 12 Alocação Particionada Dinâmica Q Fragmentação na Alocação Particionada Estática: – É um problema a ser resolvido a fim de o grau de compartilhamento da memória fosse aumentado Q Q Q Q Eliminado o conceito de partição fixa – Tamanho da partição = tamanho do programa ser carregado. Fragmentação externa – Ao término de um programa e início de outro, passam a existir na memória blocos cada vez menores, não permitindo o ingresso de novos programas Solução – Reunião de todos os blocos livres adjacente (nova partição) – Realocação particionada dinâmica com realocação (realocação de todas as partições ainda ocupadas para a parte inicial da memória, eliminado blocos livres entre elas) Dificuldade – Devido a complexidade dos algoritmos, nem todos os sistemas operacionais a utilizaram 13 Alocação Particionada Dinâmica 14 Alocação Particionada Dinâmica Q Fragmentação externa – Ao término de um programa e início de outro, passam a existir na memória blocos cada vez menores, não permitindo o ingresso de novos programas 15 Estratégias de Alocação de Partição Q Em qual área livre um programa será alocado para execução – 3 estratégias Q O que existe ? – uma lista de áreas livres com endereço e o tamanho de cada área Q Estratégias de Alocação – Best-fit – Worst-fit – First-fit 16 Estratégias de Alocação de Partição (BEST-FIT) Q Q É escolhida a melhor partição, a que deixa o menor espaço livre sem utilização Desvantagem: – Acelera a fragmentação – São alocados primeiramente as partições menores deixando pequenos blocos fazendo com que a fragmentação apareça mais rapidamente 17 Estratégias de Alocação de Partição (BEST-FIT) 18 Estratégias de Alocação de Partição (WORST-FIT) Q Q É escolhida a pior partição, ou seja, a que deixa maior espaço livre Vantagem: – São alocados primeiramente as partições maiores. – Deixa espaços livre grandes o suficiente para que outros programas utilizem estes espaços. Permite que um maior número de processos se utilizem da memória. Retarda a fragmentação 19 Estratégias de Alocação de Partição (WORST-FIT) 20 Estratégias de Alocação de Partição (FIRST-FIT) Q Q Esta estratégia aloca o programa na primeira partição que o couber, independente do espaço livre que vai deixar. Das três estratégias, esta é a mais rápida, consumindo menos recursos do sistema. Vantagem: – Das três estratégias, esta é a mais rápida, consumindo menos recursos do sistema. 21 Estratégias de Alocação de Partição (FIRST-FIT) 22