Gerência da Memória Memória Virtual Adão de Melo Neto 1
Memória Principal Antigamente Recurso escasso Desenvolvimento de um sistema operacional (SO) que não ocupassem muito espaço de memória principal (MP) 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 Sistemas Monoprogramáveis Gerência não muito complexa 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 Reduzir o número de acessos a memória secundária (operações de E/S) Tempo de acesso 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 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 Memória 5
Alocação Contínua Simples Presente em alguns sistemas monoprogramáveis MP em duas partes: Sistema Operacional // Programa do usuário Preocupação: Não ultrapassar o espaço de memória disponível Usuário Total controle da MO, exceto onde está o SO (endereço protegido por registrador) Desvantagem Não permite o uso eficiente dos recursos do sistema Apenas um usuário pode dispor desses recursos 6
Segmentação de Programas Vantagem Os programas não estão limitados ao tamanho da MP 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 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 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 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 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 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 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 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 Em qual área livre um programa será alocado para execução 3 estratégias O que existe? uma lista de áreas livres com endereço e o tamanho de cada área Estratégias de Alocação Best-fit Worst-fit First-fit 16
Estratégias de Alocação de Partição (BEST-FIT) É 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) É 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) 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