Baixe o app para aproveitar ainda mais
Prévia do material em texto
Sistemas Operacionais Leandro Clementino de Lima Unidade 3 Gerência de Memória GERÊNCIA DE MEMÓRIA • Gerenciador de memória deve tentar manter o maior número possível de processos na memória principal e, desta forma, permitir a maximização do compartilhamento da CPU e demais recursos do sistema computacional GERÊNCIA DE MEMÓRIA • Quando não existir mais espaço disponível na memória principal, o sistema deve permitir que novos processos sejam aceitos para execução • Swapping • Segurança, especialmente em sistemas multiprogramáveis ALOCAÇÃO CONTÍGUA SIMPLES • Implementada pelos primeiros sistemas operacionais, especialmente em sistemas monoprogramáveis • A memória principal é dividida em duas partes • Na primeira, fica o sistema operacional e a segunda parte é destinada ao programa de usuário ALOCAÇÃO CONTÍGUA SIMPLES • Um registrador, responsável por delimitar a região de memória do sistema operacional e a área para o programa Fonte: https://goo.gl/ykFLzq TÉCNICA DE OVERLAY • Executar programas maiores que o tamanho de memória disponível ao usuário • Dividir o programa em módulos, de maneira que seja possível a execução independente de cada módulo, utilizando a mesma área de memória TÉCNICA DE OVERLAY Fonte: https://goo.gl/v1xD2g ALOCAÇÃO PARTICIONADA ESTÁTICA • Comum nos primeiros sistemas multiprogramáveis • Memória era dividida em pedaços de tamanho fixo • Tamanho das partições era definido durante a inicialização do sistema Para alterar o tamanho de uma partição, o sistema deveria ser reinicializado ALOCAÇÃO PARTICIONADA ESTÁTICA • Inicialmente, os compiladores e montadores, responsáveis por gerarem o programa que efetivamente seria executado pela CPU, utilizavam endereçamento absoluto para memória • Evolução dos compiladores, montadores, ligadores e carregadores, o endereçamento no código gerado deixou de ser absoluto e passou a ser relativo ALOCAÇÃO PARTICIONADA DINÂMICA • Alocação particionada dinâmica, ou variável como também é conhecida, o conceito de partição de tamanho fixo não existe • Cada programa utiliza todo o espaço necessário para sua alocação e o transforma em uma partição • Problema de fragmentação ESTRATÉGIAS DE ALOCAÇÃO DE PARTIÇÃO • Objetivo principal encontrar uma área livre da memória para alocar um programa, de forma a evitar que o problema de fragmentação ocorra • Sistema operacional deve ter uma lista das áreas livres da memória, com o endereço e tamanho de cada área ESTRATÉGIAS DE ALOCAÇÃO DE PARTIÇÃO Fonte: https://goo.gl/hRTETH ESTRATÉGIAS MAIS COMUNS PARA ALOCAÇÃO DE PARTIÇÃO • Best-Fit: escolhe a melhor partição, no sentido de ser a partição que o programa deixa o menor espaço sem utilização. A lista de áreas livres deve estar ordenada por tamanho de partição, diminuindo o tempo de busca Acaba deixando pequenas áreas não contíguas, aumentando o problema da fragmentação ESTRATÉGIAS MAIS COMUNS PARA ALOCAÇÃO DE PARTIÇÃO • Worst-Fit: esta estratégia consiste em escolher a pior partição, ou seja, aquela que o programa deixa o maior espaço sem utilização O problema de fragmentação é minimizado, visto que a estratégia deixará espaços livres maiores, permitindo que um maior número de programas utilize a memória ESTRATÉGIAS MAIS COMUNS PARA ALOCAÇÃO DE PARTIÇÃO • First-Fit: a primeira partição livre de tamanho suficiente para alocar o programa é escolhida Para melhorar o tempo de busca, a lista de áreas livres é ordenada por endereços crescentemente, considerando que existe uma grande chance de se obter uma grande partição livre nos endereços de memórias mais altos Estratégia rápida - consome menos recursos SWAPPING • Falta de memoria RAM para executar o programa • Troca de processos • Swap out : um dos processos em espera [(as vezes) menor chance de ser executado] é deslocado para memoria secundaria • Swap in: novo processo entra na RAM
Compartilhar