GERENCIADOR DE MEMÓRIA

Autores

  • Eder Augusto Penharbel IFC - Campus Blumenau
  • Erick José Heiler IFC - Campus Blumenau
  • Halena Kulmann Duarte IFC - Campus Blumenau
  • Ricardo de la Rocha Ladeira IFC - Campus Blumenau

Resumo

Um sistema operacional envolve estruturas interconectadas, como gerenciadores de processos, memória,
arquivos e entrada/saída, operando para controlar os recursos do computador. Iniciou-se o
desenvolvimento de um projeto de gerenciamento de memória na disciplina de Sistemas Operacionais que
serviu como base na disciplina de Programação de Alto Desempenho, onde busca-se otimizá-lo. Para essa
otimização, foi crucial compreender conceitos essenciais, como processos (programas em execução) e
threads (unidades menores de execução em um processo). Explorou-se o paralelismo e a capacidade de
executar várias tarefas simultaneamente para melhorar a eficiência. Além disso, investigou-se a
comunicação entre processos e threads, que permite a troca de informações e a coordenação entre partes
do sistema operacional. Para testar o gerenciador de memória criou-se processos. Um processo precisa de
recursos como tempo de CPU, memória, arquivos e dispositivos de entrada e saída para que cumpra seu
papel. Sendo assim, o gerenciador de memória assegura que cada processo tenha memória suficiente para
funcionar adequadamente. Existem várias abordagens para gerenciar memória, como swapping, lista
encadeada, bitmap, memória virtual, paginação, segmentação e vários algoritmos de alocação e
substituição. Portanto, decidir qual conjunto de características e abordagens é a melhor opção e como
colocá-lo em prática requer tempo e experiência. Implementou-se o gerenciador na linguagem C e as
pesquisas basearam-se no livro “Sistemas Operacionais: Projeto e Implementação”, de 2008 por Andrew
S. Tanenbaum e Albert S. Woodhull. Procura-se otimizar o desempenho com base no livro “Operating
System Concepts - 10th ed.”, de 2018 por Abraham Silberschartz. A proposta foi criar uma simulação
com uma grande alocação de memória no início do código, para que as operações envolvendo os
processos pudessem ser realizadas em cima dela. O gerenciador aloca e desaloca memória usando uma
lista duplamente encadeada. Cada nó dessa lista registra espaços livres e ocupados, com endereços
iniciais, comprimentos e, quando necessário, referências a processos. São utilizadas lista pré-alocadas
para guardar uma grande quantidade de nós e auxiliar na alocação e desalocação, onde são realizadas as
operações apropriadas com base na condição atual dos nós, seja fragmentando-os ou agrupando-os. A
intenção do projeto foi adquirir, através da prática, um conhecimento mais aprofundado sobre como
ocorre o gerenciamento de memória em um sistema operacional e explorar diferentes técnicas para
realizá-lo. Pretende-se explorar diferentes formas de comunicação entre processos, dividindo tarefas para
que sejam executadas mais rapidamente, além de trabalhar com múltiplas threads para executar mais de
uma tarefa por vez. Até o momento, conclui-se que o gerenciador de memória é um componente
complexo, pois requer que cada uma de suas partes seja escolhida adequadamente em relação ao seu
contexto e objetivos específicos, ao mesmo tempo que os processos desempenham um papel crucial no
funcionamento eficaz da máquina. No entanto, seu progresso foi produtivo e possibilitou o
aprimoramento na compreensão desse componente essencial. Por fim, ele continuará sendo aprimorado,
explorando maneiras de melhorar a eficiência do gerenciador, incluindo comunicação entre processos,
threads, paralelismo e outros aperfeiçoamentos.

Downloads

Publicado

2023-11-28

Como Citar

Penharbel, E. A., Heiler, E. J., Duarte, H. K., & Ladeira, R. de la R. (2023). GERENCIADOR DE MEMÓRIA. Anais Da Mostra De Ensino, Pesquisa, Extensão E Cidadania (MEPEC) - ISSN 2596-0954, 5. Recuperado de https://publicacoes.ifc.edu.br/index.php/MEPEC/article/view/4802