O documento discute técnicas de gerenciamento de memória em sistemas operacionais, incluindo alocação contígua, particionada estática e dinâmica, estratégias de alocação como best-fit e first-fit, e a técnica de swapping para aumentar a utilização da memória principal.
O documento discute técnicas de gerenciamento de memória em sistemas operacionais, incluindo alocação contígua, particionada estática e dinâmica, estratégias de alocação como best-fit e first-fit, e a técnica de swapping para aumentar a utilização da memória principal.
O documento discute técnicas de gerenciamento de memória em sistemas operacionais, incluindo alocação contígua, particionada estática e dinâmica, estratégias de alocação como best-fit e first-fit, e a técnica de swapping para aumentar a utilização da memória principal.
Carga Horária: 60 Horas/Aula E-mail: marcos.rodrigues@ifrr.edu.br GERÊNCIA DE MEMÓRIA
Uma das maiores preocupações dos projetistas sempre foi
desenvolver sistemas operacionais que não ocupassem muito espaço de memória e, ao mesmo tempo, otimizassem a utilização dos recursos computacionais. Enquanto nos sistemas monoprogramáveis a gerência da memória não é muito complexa, nos sistemas multiprogramáveis essa gerência se toma crítica, devido à necessidade de se maximizar o número de usuários e aplicações utilizando eficientemente o espaço da memória principal. ❑ Funções Básicas ✔ Organizar e disciplinar o compartilhamento da memória pelos múltiplos processos em execução; ✔ Realizar a transferência temporária de processos residentes na memória principal para a memória secundária, liberando espaço para novos processos (swapping); ✔ Dá proteção as áreas de memória ocupadas por cada processo. ❑ Alocação Contígua Simples ✔ Tipo de organização de memória principal onde à subdivisão em duas áreas: uma para o sistema operacional e outra para o programa do usuário. ✔ Neste tipo de organização o usuário tem controle sobre toda a memória principal. Para proteger o sistema de acessos indevidos, alguns sistemas implementam proteção através de um registrador que delimita áreas do sistema operacional. ✔ Uma desvantagem neste tipo de organização é que apesar da fácil implementação e do código reduzido, a alocação contígua simples não permite a utilização eficiente dos recursos computacionais, uma vez que apenas um usuário pode dispor desses recursos. ❑ Técnica de Overlay ✔ Tipo de organização de memória principal onde à divisão do programa em módulos, de forma que é possível a execução independente de cada módulo, utilizando uma mesma área de memória; ✔ Permite expandir os limites da memoria principal; ✔ As áreas de Overlay serão definidas pelo próprio programador. ❑ Técnica de Overlay ❑ Alocação Particionada Estática / Fixa ✔ Tipo de organização de memória principal onde a memória é dividida em pedaços de tamanho fixo, chamados partições. Podendo ser absoluta ou relocável. Alocação Particionada Estática Absoluta ✔ Tipo de organização de memória principal onde todas as referências a endereços no programa são posições físicas na memória principal, ou seja, o programa só poderia ser carregado a partir do endereço de memória especificado no seu próprio código. Alocação Particionada Estática Relocável ✔ Tipo de organização de memória principal onde todas as referências a endereços no programa são relativas ao início do código e não a endereços físicos de memória. ✔ Para manter o controle sobre quais partições estão alocadas. a gerência de memória mantém uma tabela com o endereço inicial de cada partição, seu tamanho, e se está em uso. ✔ Tanto nos sistemas de alocação absoluta quanto nos de alocação relocável, os programas, normalmente, não preenchem totalmente as partições onde são carregados. Este tipo de problema, decorrente da alocação fixa das partições, é conhecido como fragmentação interna. ❑ Alocação Particionada Dinâmica ✔ Tipo de organização de memória principal onde cada programa utiliza o espaço necessário, tornando essa área sua partição. Eliminando assim, o conceito de partições de tamanho fixo. ✔ Um problema neste tipo de organização é que quando os programas forem terminando irão deixar espaços cada vez menores na memória, não permitindo assim o ingresso de novos programas. Esse tipo de problema é chamado de fragmentação externa. ✔ Existem duas soluções para o problema da fragmentação externa da memória principal. A primeira é a união dos espaços livres adjacentes e a segunda é a relocação de todas as partições ocupadas, também conhecida como alocação particionada dinâmica com relocação.
união dos espaços livres
adjacentes alocação particionada dinâmica com relocação ❑ Estratégias de Alocação de Partição ✔ Os sistemas operacionais basicamente implementam, três tipos de estratégias para determinar em qual área livre um programa será carregado para execução. ✔ Independentemente do algoritmo utilizado, o sistema possui uma lista de áreas livres, com o endereço e tamanho de cada área. Best-fit ✔ É escolhida a melhor partição, ou seja, aquela em que o programa deixa o menor espaço sem utilização; ✔ Existe uma lista de áreas livres ordenada por tamanho; ✔ Uma grande desvantagem é que como é alocada a partição que deixa a menor área livre, a tendência é que cada vez mais a memória fique com pequenas áreas não-contíguas. Best-fit Worst-fit ✔ É escolhida a pior partição, ou seja, aquela em que o programa deixa o maior espaço sem utilização; ✔ Apesar de utilizar as maiores partições, a técnica deixa espaços livres maiores que permitem a um maior número de programas utilizar a memória. Worst-fit First-fit ✔ É escolhida a primeira partição livre de tamanho suficiente para carregar o programa; ✔ Existe uma lista de áreas livres ordenada crescentemente por endereços; ✔ Das três estratégias apresentadas é a mais rápida, consumindo menos recursos do sistema. First-fit ❑ Swapping ✔ Técnica aplicada à gerência de memória para programas que esperam por memória livre para serem executados. ✔ O sistema escolhe um processo residente, que é transferido da memória principal para a memória secundária (swap out). Posteriormente, o processo é carregado de volta da memória secundária para a memória principal (swap in) continuando sua execução. ✔ O algoritmo de escolha do processo a ser retirado da memória principal deve priorizar aquele com menores chances de ser executado. ✔ Os processos retirados da memória estão geralmente no estado de espera, mas existe a possibilidade de um processo no estado de pronto também ser selecionado. ❑ Swapping ✔ Permite maior compartilhamento da memória principal gerando uma maior utilização dos recursos do sistema computacional. ✔ Seu maior problema é o elevado custo das operações de entrada/saída (swap in/out). Onde em situações criticas, quando há pouca memória disponível o sistema pode ficar quase que dedicado à execução de swapping.