You are on page 1of 5

REFACE 2ªedição 2018

UNIVERSIDADE FEDERAL DO SUL E SUDESTE DO PARÁ - UNIFESSPA


INSTIUTO DE GEOCIÊNCIAS E ENGENHARIA - IGE
FACULDADE DE COMPUTAÇÃO E ENGENHARIA ELÉTRICA - FACEEL
REVISTA ELETRÔNICA DA FACEEL - REFACE

The MM Simulator: Simulador de Gerência de


Memória para auxiliar no Ensino/Aprendizagem
de Sistemas Operacionais
Luan O. da Silva, Leandro dos Santos A., Victor F. Souza, Sthefany O. da Silva,

Universidade Federal do Sul e Sudeste do Pará (UNIFESSPA)

O objetivo deste artigo é apresentar um software


Resumo—Neste artigo propõe-se um simulador de gerência de educacional gráfico, interativo e intuitivo para os usuários,
memória (The MM (Memory Management) Simulator) para o afim de auxiliar no ensino/aprendizagem das políticas de
ensino/aprendizagem da disciplina de Sistemas Operacionais do alocação de memória (First-Fit, Next-Fit, Best-Fit e Worst-
curso de Sistemas de Informação. Foram utilizadas diversas Fit), sendo utilizada a técnica de re-divisão das partições da
referências e realizado um estudo e análise das mesmas, para um memória para alocação de novos processos (alocação
melhor aproveitamento das informações obtidas por meio de
artigos e revistas. E com base nas estratégias de alocação de
dinâmica). Este software é referenciado como The MM
memória, foi desenvolvido um software com interface gráfica (Memory Management) Simulator.
intuitiva e de boa usabilidade, para que o usuário aprenda de
forma dinâmica as técnicas de alocação de memória (First-fit, Este artigo está estruturado da seguinte forma: na sessão 2
Next-fit, Best-fit, e Worst-fit), e então analisar qual delas tem uma será abordado conceitos técnicos acerca dos algoritmos
melhor utilização de acordo com o tamanho alocado que o propostos para implementação no software, além de conceitos
usuário previamente pode definir. O estudo apresentou provenientes do Gerenciamento de Memória. Na sessão 3,
resultados relevantes para a inclusão do software como demonstraremos alguns trabalhos correlatos relacionados a
metodologia de ensino da disciplina, podendo ser utilizado para softwares educacionais aplicados ao mesmo nicho desde
facilitar o aprendizado de alunos dispensando o uso de quadro
negro ou lousa.
software proposto. Na sessão 4, falaremos acerca da
metodologia empregada no desenvolvimento deste software.
Index Terms— Algoritmos, Educação, Gerência de Memória, Na sessão 5, será abordado os resultados da implementação do
Simulador. software, bem como descrição detalhada do seu
funcionamento. E por fim, na sessão 6, serão descritas
I. INTRODUÇÃO algumas conclusões e sugestões para trabalhos futuros.

A busca por profissionais com caráter inovador e capazes


de unir dinamismo e domínio crítico sobre diversos
assuntos está ligada diretamente às metodologias de ensino
II. FUNDAMENTAÇÃO TEÓRICA
que são empregadas durante todo o seu desenvolvimento A memória principal (RAM - Random Access Memory) é
profissional dentro da universidade. Melhorar a didática de um recurso computacional importante que deve ser gerenciado
cuidadosamente. Existe um mecanismo no SO (Sistema
ensino em âmbito geral torna-se necessário a cada dia, afim
Operacional) que gerencia esse recurso, e é chamado de
ser possível obter melhores resultados no processo de
gerenciador de memória.
ensino/aprendizagem. Para isso, uma alternativa é o uso de
Segundo [3] sua função é gerenciar eficientemente a
softwares capazes de transformar processos abstratos em memória: controlar quais partes estão sendo usadas, alocar
concretos, o que aumenta a interação entre os alunos e o memória para processos quando eles precisam dela e liberá-la
objeto em estudo. [1] quando tiverem terminado. Destacando uma função
Sistemas e ambientes de aprendizagem têm apresentado importante desde mecanismo é em relação ao gerenciamento
uma crescente importância nos últimos anos, tendo um papel do uso da memória. Esse rastreamento pode ser feito através
fundamental no ensino e treinamento, sendo relevantes não de duas técnicas, utilizando: mapas de bits ou listas
apenas no ambiente acadêmico, mas também no meio livres(encadeadas).
industrial. [2] Com o gerenciamento da memória utilizando o mapa de
bits, a memória é dividida em unidades de alocação tão
Este trabalho foi apoiado pelo professor da disciplina de Sistemas
Operacionais do curso de Sistemas de Informação. Data de envio: 14/08/2018
pequenas quanto umas poucas palavras e tão grandes quanto
vários quilobytes. Correspondendo a cada unidade de alocação
REFACE 2ªedição 2018
UNIVERSIDADE FEDERAL DO SUL E SUDESTE DO PARÁ - UNIFESSPA
INSTIUTO DE GEOCIÊNCIAS E ENGENHARIA - IGE
FACULDADE DE COMPUTAÇÃO E ENGENHARIA ELÉTRICA - FACEEL
REVISTA ELETRÔNICA DA FACEEL - REFACE

há um bit no mapa de bits, que é 0 se a unidade estiver livre e e inúteis. O First-fit gera espaços livres maiores em média. [3]
1 se ela estiver ocupada (ou vice-versa). [3]
D. Worst-Fit
Já o gerenciamento da memória utilizando listas livres
(encadeadas) contém um processo ou é um espaço vazio entre Por fim, o Worst-fit foi idealizado para contornar o
dois processos. Cada entrada na lista especifica se é um espaço problema de quebrar um espaço livre em um processo e um
livre (L) ou alocado a um processo (P), o endereço no qual se trecho livre minúsculo. A solução proposta por esse algoritmo
inicia esse segmento, o comprimento e um ponteiro para o é: sempre escolher o maior espaço livre, de maneira que o
item seguinte. Essa estrutura torna mais fácil encontrar a novo segmento livre gerado seja grande o bastante para ser
entrada anterior e ver se a fusão é possível. [3] útil. [3]
Quando processos e espaços livres são mantidos em uma
lista ordenada por endereço, por exemplo, vários algoritmos III. TRABALHOS CORRELATOS
podem ser usados para alocar memória para um processo Existem diversos simuladores aplicados ao processo de
criado (ou um existente em disco sendo transferido para a ensino/aprendizagem de disciplinas referentes a SO’s,
memória). Os algoritmos são: First-Fit, Next-Fit, Best-Fit e abordando de maneira prática todo o assunto teórico debatido
Worst-Fit. Descreveremos a seguir resumidamente esses em sala de aula, com o intuito de aumentar o nível de
algoritmos. entendimento.
A. First-Fit A partir disso, pode-se mencionar alguns trabalhos, que
embora tenham diferentes focos e níveis de detalhamento,
O algoritmo mais simples é First-fit (primeiro ajuste). O ajudaram no aprimoramento da ferramenta proposta neste
gerenciador de memória examina a lista de segmentos até artigo.
encontrar um espaço livre que seja grande o suficiente. O
espaço livre é então dividido em duas partes, uma para o A. Software Hipermídia para o Ensino de Sistemas
processo e outra para a memória não utilizada, exceto no caso Operacionais
estatisticamente improvável de um encaixe (ajuste) exato. Neste artigo é descrito o desenvolvimento de uma
First- fit é um algoritmo rápido, pois ele procura fazer a menor hipermídia educacional para o auxílio do aprendizado na
busca possível. [3] disciplina de Sistemas Operacionais, onde o software
B. Next-Fit apresenta interface gráfica na qual possui três opções: a de
Sistemas Operacionais, Estudos de Caso, e os Simuladores de
Uma pequena variação do First-fit é o Next-fit. Ele funciona Sistemas. Os mesmos, respectivamente, mostram conceitos
da mesma maneira que o First-fit, exceto por memorizar a teóricos básicos sobre SO, tais como a estrutura, processos,
posição que se encontra um espaço livre adequado sempre que Threads e entre outros. No qual são representados em forma
o encontra. Da vez seguinte que for chamado para encontrar de texto, figuras e animações.
um espaço livre, ele começa procurando na lista do ponto onde Na opção dos Estudos de Caso, os autores [4] apresentam
havia parado, em vez de sempre do princípio, como faz o os Sistemas Operacionais mais utilizados, tais como: o
First-fit. [3] Windows, MAC-OS, Linux e os que não estão mais
C. Best-Fit disponíveis comercialmente, como o Minix. As informações
Outro algoritmo bem conhecido e amplamente usado é o apresentadas neste tópico caracterizam-se pelos seus
Best-fit. O Best-fit faz uma busca em toda a lista, do início ao históricos, gerência do processador, Sistemas de Arquivo,
fim, e escolhe o menor espaço livre que seja adequado. Em Gerência de Memória. Para uma melhor interação com o
vez de escolher um espaço livre grande demais que talvez seja usuário, ele tem a opção de visualizar as principais telas.
necessário mais tarde, o Best-fit tenta encontrar um que seja de E por fim nos simuladores do sistema é permitido executar
um tamanho próximo do tamanho real necessário, para casar comandos básicos tal como criar diretórios e manipulação de
da melhor maneira possível a solicitação com os segmentos arquivos.
disponíveis. [3] Para avaliar o desempenho do software, foram realizados
O Best-fit é mais lento do que o First-fit, pois ele tem de testes com alunos do curso de Sistemas de Informação, onde
procurar na lista inteira toda vez que é chamado. De uma os mesmos observassem as condições de navegação e
maneira um tanto surpreendente, ele também resulta em um apresentação do conteúdo. O software foi bem avaliado pelos
desperdício maior de memória do que o First-fit ou Next-fit, alunos e sobressaltou-se a sua facilidade de uso para
pois tende a preencher a memória com segmentos minúsculos apresentação do conteúdo. [4]
REFACE 2ªedição 2018
UNIVERSIDADE FEDERAL DO SUL E SUDESTE DO PARÁ - UNIFESSPA
INSTIUTO DE GEOCIÊNCIAS E ENGENHARIA - IGE
FACULDADE DE COMPUTAÇÃO E ENGENHARIA ELÉTRICA - FACEEL
REVISTA ELETRÔNICA DA FACEEL - REFACE

B. IO Simulator: Um Simulador de Dispositivos de Entrada e


Saída para Auxiliar o Ensino de Sistemas Operacionais
Neste artigo eles demostram um simulador que apresenta
conceitos do sistema de E/S de forma dinâmica, no qual foi
desenvolvido utilizando técnicas de animação.
O software tem como objetivo auxiliar o aprendizado da
disciplina de SO por meio de simulações do sistema de
Entrada e Saída. Possibilita ao usuário verificar o fluxo de E/S
e consulta os conceitos relacionados a cada componente do
sistema.
Para a avaliação do sistema, 38 alunos utilizaram a
ferramenta e então responderam ao questionário a respeito de
sua usabilidade, se auxiliou no processo de aprendizado e se o
conteúdo programático estava de acordo. E os resultados,
todas apresentam porcentagens satisfatórias. [5]
C. OS Simulator: Um Simulador de Sistema de Arquivos
para Apoiar o Ensino/Aprendizagem de Sistemas
Operacionais
Os autores desse artigo [6] desenvolveram um simulador
para apoiar o ensino/aprendizagem da disciplina de SO. O OS
Simulator tem como objetivo expor conteúdos teóricos acerca
de Sistemas de Arquivos, desenvolvido em JEE (Plataforma
de programação para servidores na linguagem Java).
Por meio do software, o aluno insere e remove arquivos,
verificando as diferentes formas de alocação e como elas se
comportam. Em sua tela inicial, é possível o usuário
configurar o simulador adequando quantos slots deseja alocar
e seu tamanho para cada e unidade computacional. Também
tem a opção de escolher a estratégia de alocação a ser utilizada Figura 1- Fluxograma da metodologia do trabalho
(First-fit, Best-fit, Worst-fit, Encadeada, e Indexada).
A aplicação permite ao usuário adicionar e remover
arquivos e pastas. A forma em que os arquivos são ocupados e O ambiente de desenvolvimento (IDE - Integrated
as informações nos slots depende da estratégia de alocação Development Environment) do software foi o NetBeans,
escolhida para ser simulada. fazendo uso da biblioteca Swing para a criação das interfaces
Na realização dos experimentos, dois professores do curso gráficas e a linguagem de programação utilizada para a
de Bacharelado em Ciencia da Computação da UNIPÊ, codificação dos algoritmos foi o Java.
utilizaram a aplicação em suas aulas de SO como ferramenta
para apresentar de forma prática como acontece o sistema de V. RESULTADOS
arquivos, anteriormente apresentado apenas em conceito.
Cerca de 27 alunos preencheram um questionário para O The MM Simulator foi desenvolvido com o intuito de
indicar melhorias o desempenho e usabilidade através das auxiliar no ensino/aprendizagem das políticas de alocação de
respostas, obteve resolução significativamente positiva, memória para processos. A interface foi desenvolvida com o
dispensando realização de tradicionais desenhos em quadro máximo de usabilidade e interatividade possível. A seguir será
negro ou lousa. [6] demonstrado o resultado após o desenvolvimento do software.
A. Telas do Software
IV. METODOLOGIA
A tela inicial do The MM Simulator apresenta uma interface
A metodologia utilizada para a elaboração desde artigo
simples e objetiva, conforma mostra a Figura 2. Primeiro, o
consiste no método de pesquisa descritiva bibliográfica. A
usuário deve selecionar o algoritmo que ele deseja usar para
pesquisa bibliográfica faz uso de livros, revistas, artigos,
realizar a alocação de processos. Ao selecionar um algoritmo,
manuais e leituras da internet para reunir informações e dados
é mostrado uma breve descrição de seu funcionamento (no
que servem de base na construção de outros artigos e afins. [7]
quadro ao lado (Informações) será mostrado ao usuário
Para o desenvolvimento deste trabalho, o que consiste no
informações sobre o algoritmo).
artigo e o The MM Simulator, foram idealizadas algumas
estratégias. Estão dispostos no fluxograma (Figura 1).
REFACE 2ªedição 2018
UNIVERSIDADE FEDERAL DO SUL E SUDESTE DO PARÁ - UNIFESSPA
INSTIUTO DE GEOCIÊNCIAS E ENGENHARIA - IGE
FACULDADE DE COMPUTAÇÃO E ENGENHARIA ELÉTRICA - FACEEL
REVISTA ELETRÔNICA DA FACEEL - REFACE

O usuário deve inserir o tamanho do processo que deseja


adicionar e, ao clicar em inserir, será alocado de acordo com o
algoritmo definido na tela anterior. Também, é registrado
dentro das partições o PID (Process Identifier) do processo
que foi inserido, bem como o seu tamanho.
Depois que o usuário inserir um processo pela primeira vez
(e única, em cada execução) lhe será mostrado um exemplo de
como ocorre uma alocação dinâmica de processos na memória
RAM, conforme mostra a Figura 5.

Figura 2- Tela inicial

Após escolher um algoritmo (First-Fit (Primeiro Ajuste),


Next-Fit (Próximo Ajuste), Best-Fit (Melhor Ajuste) e Worst-
Fit (Pior Ajuste)) o usuário deve informar o tamanho da
memória RAM, a fim de gerar as partições de tamanhos
diferentes (para uma melhor execução do programa, o
tamanho mínimo da memória dever ser 100kb). Sempre serão
gerados, inicialmente, 10 partições. Para definir o tamanho de
cada partição foi utilizada as porcentagens 4%, 8%, 10%, 13%
e 15%, criando assim duas partições para cada porcentagem
em relação ao tamanho da memória definida previamente pelo
usuário. Figura 5 - Demonstração de como ocorre uma alocação dinâmica

Na Figura 3 é demonstrada a tela que representa a memória


RAM. Após inserir um processo, o usuário pode também removê-
lo da memória. Para isso, o usuário deve inserir o PID para
remover o processo da partição.

VI. CONCLUSÃO E TRABALHOS FUTUROS


Figura 3 - Tela da memória RAM O uso de softwares educacionais como ferramentas de
ensino/aprendizagem tem se tornado uma alternativa
Depois do usuário definir o tamanho da memória que deseja
interessante, visto que proporcionam novas experiências para
particionar e adicionar processos, ele é redirecionado para
professores e alunos, além de propiciar uma fixação maior do
outra tela (Figura 4).
conteúdo por parte do aluno.
O desenvolvimento do The MM Simulator junta-se as
diversas ferramentas já existentes, que juntamente tem um
objetivo único: melhorar o ensino/aprendizagem de assuntos
complexos.
Como sugestão de trabalhos futuros, ressalta-se a
necessidade de realizar a ampliação do software, abordando a
respeito da utilização de mapas de bits para o gerenciamento
da memória. Além disso, pode-se adicionar e demonstrar o
funcionamento da Memória Virtual, utilizando Paginação,
Segmentação e Segmentação com Paginação. Também, pode-
se fazer um melhoramento da interface do software,
adicionando mais elementos que auxiliam no entendimento do
funcionamento dos algoritmos, como animações que simulem
o trajeto do processo até a partição, e entre outros. E para
validar o que foi desenvolvido, pode-se distribuir este de
Figura 4 - Tela de alocação/desalocação dos processos
REFACE 2ªedição 2018
UNIVERSIDADE FEDERAL DO SUL E SUDESTE DO PARÁ - UNIFESSPA
INSTIUTO DE GEOCIÊNCIAS E ENGENHARIA - IGE
FACULDADE DE COMPUTAÇÃO E ENGENHARIA ELÉTRICA - FACEEL
REVISTA ELETRÔNICA DA FACEEL - REFACE

software para alunos e professores, coletar o feedback e


realizar assim mais melhorias.

REFERÊNCIAS
[1] Reis, Fabrício Pereira, Paulo Afonso Parreira Júnior, and Heitor Augustus
Xavier Costa. "TBC-SO/WEB: Um software educacional para o ensino
de políticas de escalonamento de processos e de alocação de memória
em sistemas operacionais." Brazilian Symposium on Computers in
Education (Simpósio Brasileiro de Informática na Educação-SBIE).
Vol. 1. No. 1. 2009.
[2] Duarte Filho, Nemésio Freitas, et al. "SEMES: Um Sistema Educacional
Móvel para o Ensino de Engenharia de Software." RENOTE 13.1 (2015).
[3] Tanenbaum, A. and Bos, H. (2016). Sistemas Operacionais Modernos. 4th
ed. São Paulo: Pearson Education do Brasil, pp.125-133.
[4] Guedes, Jorge Roberto, and Caroline Lengert Guedes. "Software
Hipermídia para o Ensino de Sistemas Operacionais." IV Congresso
Brasileiro de Computação. Itajai-SC. 2004.
[5] Medeiros, Thiago R., et al. "IO Simulator: Um Simulador de Dispositivos
de Entrada e Saída para Auxiliar o Ensino de Sistemas Operacionais."
Workshop de Educação e Informática. XXXI Congresso da Sociedade
Brasileira de Computação. 2011.
[6] Gadelha, Renê NS, et al. "OS Simulator: Um Simulador de Sistema de
Arquivos para Apoiar o Ensino/Aprendizagem de Sistemas
Operacionais." Brazilian Symposium on Computers in Education
(Simpósio Brasileiro de Informática na Educação-SBIE). Vol. 1. No. 1.
2010.
[7] Pos-Graduando. (2017), “As diferenças entre pesquisa descritiva,
exploratória e explicativa” [Online]. Disponível:
http://posgraduando.com/diferencas-pesquisa-descritiva-
exploratoriaexplicativa/.