Você está na página 1de 5

SWAPPING

Marcelo Augusto Machado, Lucas Barreto Caramuru, Pedro Henrique de Lima

Universidade Paulista – UNIP


São José dos Campos - SP, Brasil
Outubro/2023

Resumo.

Swapping é um conceito relacionado à gerência de memória em sistemas de


computadores. Ele descreve a técnica de transferir temporariamente partes
de programas ou dados da memória principal (RAM) para um espaço de
armazenamento secundário, como um disco rígido, para liberar espaço na
memória RAM para outros processos ou dados. Essa técnica é usada quando
a quantidade de memória RAM disponível é insuficiente para acomodar todos
os programas e dados que estão sendo executados ou carregados.

Abstract.

Swapping is a concept related to memory management in computer systems.


It describes the technique of temporarily transferring portions of programs or
data from main memory (RAM) to secondary storage space, such as a hard
drive, to free up space in RAM for other processes or data. This technique is
used when the amount of available RAM is insufficient to accommodate all the
programs and data that are being executed or loaded.

Palavras-chave: Swapping, Swapping-IN, Swapping-OUT, Memória Principal,


Memória Secundária

1. INTRODUÇÃO

A gestão eficiente da memória é um desafio crítico para os sistemas


operacionais modernos, que precisam equilibrar a demanda de recursos de
diferentes processos em execução. Quando um programa é carregado na memória
principal de um computador, ele consome uma parte dessa memória física. Em
sistemas com recursos limitados, como smartphones e dispositivos embarcados,
essa alocação de memória pode se tornar um problema, uma vez que programas
maiores podem não caber completamente na memória disponível.

O swapping é uma técnica que resolve esse problema, permitindo que partes do
programa sejam movidas entre a memória principal e a memória secundária,
geralmente um disco rígido. Isso permite que programas maiores sejam executados
em sistemas com memória limitada, garantindo que apenas as partes necessárias
do programa estejam na memória principal durante a execução.

2. DESENVOLVIMENTO

Swap in e out são operações críticas no contexto da paginação, uma técnica


de gerenciamento de memória virtual usada por sistemas operacionais para alocar
eficientemente a memória física. Essas operações permitem ao sistema equilibrar a
disponibilidade limitada de memória RAM com as necessidades dos processos em
execução.

2.1 Swap In (Incorporação): Quando um processo precisa acessar uma página de


memória que não está atualmente na RAM, o sistema operacional realiza uma
operação de swap in para trazer essa página do armazenamento secundário
(geralmente um disco rígido) de volta para a memória principal (RAM). Por exemplo,
imagine um programa de edição de imagem que requer acesso a uma imagem
grande armazenada no disco. Quando o usuário abre essa imagem, o sistema
operacional realiza uma operação de swap in para carregar partes da imagem na
RAM, permitindo que o processo de edição acesse e manipule esses dados de
maneira eficiente.

2.2 Swap Out (Desincorporação): Quando a RAM está ficando escassa e o sistema
precisa liberar espaço para alocar memória para novos processos ou operações, ele
realiza uma operação de swap out. Nesse caso, páginas de memória na RAM que
não são mais frequentemente utilizadas são movidas do RAM de volta para o
armazenamento secundário. Por exemplo, um navegador da web pode ter várias
guias abertas, mas o sistema decide que algumas delas não são usadas há algum
tempo. O sistema então realiza uma operação de swap out dessas páginas de guias
inativas, liberando espaço na RAM para outros aplicativos em execução.
Fonte: Silberschatz, Galvin e Gagne, 2000

Fonte: Silberschatz, Galvin e Gagne, 2000

3 – TRABALHOS RELACIONADOS

Em Operating System I/O Speculation (2006) o autor se concentra na aplicação


da execução especulativa no kernel do sistema operacional como uma estratégia
para aprimorar o desempenho de aplicativos que dependem de operações de
E/S. Diante do aumento constante da diferença entre as velocidades de
processamento e os tempos de acesso a dispositivos de armazenamento, a
automação da pré-busca de dados por meio da execução especulativa se revela
uma abordagem promissora. A pesquisa demonstra que essa técnica oferece
melhorias substanciais no desempenho de uma ampla gama de aplicativos,
abrangendo desde aqueles com necessidades explícitas de E/S até aplicativos
que fazem uso intensivo da troca de memória virtual. Além disso, a
implementação no kernel do Linux 2.4.8 demonstra sua viabilidade prática e
eficácia, representando uma contribuição significativa para a otimização de
desempenho em sistemas que enfrentam desafios relacionados à E/S de disco e
armazenamento.
No estudo Process Swapping in MINIX (2006), o autor aborda a técnica de troca
de processos como um componente crucial no gerenciamento de memória do
sistema operacional MINIX. A troca de processos é uma abordagem que permite
otimizar a utilização da memória, movendo processos inativos para o disco,
liberando espaço para processos ativos em execução. A implementação dessa
técnica envolve modificações no microkernel para lidar com a comunicação e a
coordenação de trocas de processos, bem como alterações no código de
gerenciamento de memória para efetivamente gerenciar essas trocas.

O estudo também destaca a importância de manter a integridade das estruturas


de dados relacionadas durante o processo de troca. Além disso, é ressaltada a
historicidade da técnica de troca de processos, que remonta às primeiras versões
do UNIX, e como essa técnica evoluiu para se adequar aos sistemas
operacionais modernos. Portanto, este trabalho oferece uma visão abrangente e
acadêmica sobre a implementação da troca de processos, enfatizando sua
relevância no contexto do sistema operacional MINIX e a importância de manter
a coerência das estruturas de dados envolvidas.

No estudo sobre Implementing smart swapping algorithm to boost the


performance of Linux PC’s.(2019), é abordada a questão do gerenciamento de
memória virtual no sistema operacional Linux, com foco em dispositivos de baixo
custo. Quando aplicativos que consomem muita memória são executados em
sistemas com recursos limitados, a RAM é preenchida e a memória virtual
(espaço de troca) começa a ser utilizada. No entanto, após a conclusão desses
aplicativos e com a disponibilidade de RAM suficiente, a transição de volta da
memória virtual para a RAM não ocorre, resultando em um desempenho
comprometido do sistema.

A pesquisa propõe uma metodologia para resolver esse problema, permitindo a


transferência do conteúdo da memória de troca de volta para a RAM, garantindo
que a operação seja executada apenas quando houver RAM disponível em
quantidade adequada. Isso resulta em uma melhoria significativa no desempenho
do sistema, com uma interface do usuário mais ágil e uma inicialização mais
rápida de aplicativos. A pesquisa destaca a importância de monitorar
continuamente a quantidade de RAM disponível e a memória de troca ocupada,
bem como a necessidade de realizar a troca de maneira transparente para evitar
afetar negativamente os processos em execução. Essa abordagem visa resolver
problemas de instabilidade em sistemas de baixo custo e aprimorar o
gerenciamento de memória virtual no Linux.

4. CONSIDERAÇÕES FINAIS
Em conclusão, o swapping é uma técnica valiosa para otimizar o uso da
memória em sistemas de computador. No entanto, seu impacto no desempenho
depende de como é gerenciado e do tamanho da memória disponível. Um equilíbrio
cuidadoso deve ser mantido para garantir que o swapping seja usado de forma
eficaz e que não prejudique significativamente o desempenho do sistema. Em
sistemas modernos, onde a RAM é mais abundante, o impacto do swapping pode
ser menos perceptível do que em sistemas mais antigos com recursos limitados.

REFERENCIAS

SHARMA, Shivam. Implementing smart swapping algorithm to boost the


performance of Linux PC’s. In.: ScienceSirect. 12 de novembro de 2019.
Disponivel em:
https://www.sciencedirect.com/science/article/pii/S1877050920300399. Acesso em
29 de outubro de 2023

HOMER, John. Process Swapping in MINIX. 2006. Tese de Doutorado. Kansas


State University. Disponível em: https://citeseerx.ist.psu.edu/document?
repid=rep1&type=pdf&doi=5a0b700ed7c2ed1b18f646c6f3e277b6aa34da02. Acesso
em 30 de outubro de 2023.

FRASER, Keir. Operating System I/O Speculation: How two invocations are
faster than one. In.: USENIX. 3 de junho de 2003. Disponível em:
https://www.usenix.org/legacy/event/usenix03/tech/full_papers/fraser/fraser.pdf.
Acesso em 25 de outubro de 2023.

Você também pode gostar