Olá, espero que esteja bem! Nesta lição, trataremos de um assunto, relativamente, novo quando lembramos da história da computação: a virtualização. Quando se fala em virtual, tem-se, em mente, algo abstrato que, de alguma forma, tenta representar algo real. Na computação, existem muitas aplicações relacionadas à virtualização, mas, nesta unidade, daremos continuidade à apresentação das várias memórias que são utilizadas pelo computador e, antes de conhecer os componentes nos quais armazenamos os nossos arquivos de texto, planilhas, vídeos, fotos etc., conheceremos o conceito de memória virtual do computador.
O conceito de virtualização, na computação, ocorre para muitos fins. Pode ocorrer quando empregamos uma carga de trabalho ao computador e ele precisa simular que possui outros recursos que o programa necessita para dar conta do recado. Ou, ainda, quando temos um computador bem potente que está sendo pouco utilizado e tem potencial para fazer muito mais. Há muitas outras finalidades, mas não ampliaremos muito o conceito de virtualização de computadores, pois o tema é extenso e complexo. Iremos além do assunto em questão, que é a memória.
Relacionaremos estas duas finalidades apresentadas ao exemplo das lições anteriores. Lembra do conceito de comprar um caminhão para transportar um saco de 60 quilos de milho, enquanto poderíamos carregá-lo com uma motocicleta básica? É, de certa forma, assim. Já que temos um caminhão, é possível, então, simular que temos umas 100 motocicletas? E se temos uma motocicleta e precisamos transportar uma carga de 500 quilos? Em se tratando de recursos computacionais (hardware e software), é possível? Especificamente, em relação à memória do computador, como isso funciona? Quais as memórias envolvidas nessa virtualização? Como de costume, fique comigo e descobriremos isso.
Também voltaremos à situação do Antônio, lembra? Ele é proprietário de um empreendimento rural com 54 hectares. A propriedade produz grãos, feijão, milho e soja. Ele mora na propriedade, que fica a 18 quilômetros da cidade, com a esposa e o filho de 16 anos e, pelo que vimos nas lições anteriores, ele decidiu comprar um computador para ajudar na gestão do empreendimento. Antônio optou por adquirir um processador da marca AMD e modelo Ryzen 3. É um processador de 3,6 gigahertz, quatro núcleos, consome cerca de 65 W e pode funcionar até 95 graus Celsius. Tem memória interna, sendo a memória cache L1 com 384 KB, L2 com 2 MB e L3 com 4 MB. De acordo com a lição sobre RAM, pelo fato de o nosso personagem ter, como objetivo, trabalhar com processador de textos e planilhas e, como eles podem ser grandes, possuir figuras e imagens, a Crucial (2021a, on-line) recomenda 8 gigabits.
Ok, consideraremos que Antônio fez esta escolha e respeitou, também, a geração de RAM bem como a velocidade suportada pelo processador. O filho, Pedro, quer cursar faculdade de Engenharia Civil e, duas vezes por semana, depois da escola, ele fica até mais tarde na cidade, a fim de estudar em uma escola de informática, onde tem aprendido a fazer projetos, por meio do uso de softwares específicos para isso, então, Pedro tem se envolvido, com entusiasmo, na compra do computador pelo seu pai, atento aos componentes que Antônio intenciona comprar.
Pedro perguntou ao seu professor de informática quanto de RAM o programa que ele tem utilizado em seus estudos de elaboração de projetos consome. O professor falou que, de acordo com o fabricante, o recomendado é 32 gb. Pedro ficou chateado, pois percebeu que não poderia instalar o programa no computador que o pai estava comprando, porque, a princípio, terá 8 gb. O professor respondeu que os computadores da escola também não têm mais que 16 gb e que é possível, sim, executar programas os quais exigem mais RAM, graças ao processo de virtualização de memória que o computador faz. O aluno ficou curioso e falou que pesquisaria mais sobre o assunto.
E você, também ficou curioso(a)? Então, vamos lá! Fique comigo que te ensinarei, um pouco, sobre isso.
Enquanto as outras memórias do computador, do processador, RAM e HDs, mesmo não sendo utilizadas, ou, até mesmo, com o computador desligado, estão presentes e prontas para serem utilizadas de acordo com suas finalidades e, quando necessárias, a memória virtual não. Isso ocorre porque algumas memórias possuem dados, apenas, enquanto o computador estiver ligado. Ao desligá-lo, elas são zeradas, ou seja, desaparecem. Mas há outras memórias que são permanentes e, mesmo com o computador desligado, os dados ficam gravados. Ainda que eles sejam apagados, dependendo do processo como isso ocorre, elas podem ser recuperadas.
Já a memória virtual, conhecida, na área de tecnologia da informação, pela sigla VM, que vem do inglês Virtual Memory, não existe até que, em algum momento, o computador, ou, mais precisamente, os programas nele instalados percebam, matematicamente, que ela precisa ser criada para atender a algum processamento solicitado. Assim como a RAM, a memória virtual é temporária, sendo descartada depois de cumprir o seu propósito.
De acordo com Gillis, Peterson e Lelii (2021, p. 16): “A memória virtual é uma técnica de gerenciamento de memória em que a memória secundária pode ser usada como se fosse parte da memória principal. O uso da memória virtual é uma técnica comum usada no sistema operacional (SO) de um computador”.
A fim de entender melhor, vamos lembrar da lição sobre RAM? Ela tem um quadro com a hierarquia da velocidade das memórias e, para você não precisar recorrer, novamente, à lição, o reproduziremos, a seguir:
Preste atenção nas seções da coluna “Nível”, que tem, apenas, duas células: Primário e Secundário. Se Gillis, Peterson e Lelii (2021) descrevem a virtualização da memória do computador nestes termos: a memória secundária sendo usada como se fosse a primária, significa dizer que o computador utilizará SSD M2 Nvme, HD SSD M2 Sata, HD SSD Sata, Memória flash/Pen-drive e HD magnético como se fossem Registradores, Cache L1, Cache L2, Cache L3 e RAM. Mas por que o computador faria isso? Na verdade, é o sistema operacional junto com outras memórias que fazem isso.
Ao falarmos em sistema operacional, não por uma questão de preferência, mas por amplitude de utilização, o sistema operacional Windows domina absoluto, atualmente, tanto no ambiente pessoal quanto no corporativo. Logo, sempre que falarmos, em nossas lições, de sistema operacional bem como de outras aplicações e hardware, estaremos nos referindo ao sistema operacional Windows. Em lições futuras, aprofundaremos em sistemas operacionais, mas, agora, basta saber que usaremos o Windows como padrão, quando falarmos de sistemas operacionais.
Segundo Gillis, Peterson e Lelii (2021), o computador (hardware e sistema operacional) faz o processo de virtualização da memória para permitir que um computador compense a falta de memória física, transferindo, temporariamente, dados da memória de acesso aleatório (RAM) ao armazenamento em outras memórias. O mapeamento de blocos de memória a arquivos de disco (SSDs e HDs) permite que um computador trate a memória secundária como fosse a memória principal.
Pensaremos em um exemplo do seu dia a dia para explicar este processo: digamos que, lamentavelmente, você quebre a perna enquanto joga vôlei, com isso, você necessitará engessar a perna e tomar todos os cuidados necessários para ficar bem o mais rápido possível. Mas, enquanto estiver impossibilitado(a) de utilizar uma das pernas, andará com a ajuda de uma muleta. Quando a sua perna estiver boa, deixará de usar a muleta, pois, apenas a sua perna será suficiente. Fazendo o comparativo com a virtualização da memória, pense que a VM é como a muleta, que entra em cena quando o computador está impossibilitado de andar com “as próprias pernas”. Além disso, perceba que, assim que o computador não precisar mais da “muleta” (da VM), ele a dispensa.
De acordo com a Crucial (2021b, on-line) a memória virtual (também conhecida como arquivo de paginação) é, essencialmente, um bloco de espaço em seu disco rígido (HD) ou unidade de estado sólido (HD SSD) alocado pelo sistema operacional com o objetivo de fingir ser RAM, quando ela fica curta para rodar programas que necessitam de mais RAM do que o computador possui instalado na placa-mãe.
Segundo Gillis, Peterson e Lelii (2021), a memória virtual foi desenvolvida em uma época em que a RAM era muito mais cara. Os computadores têm uma quantidade finita de RAM, portanto, a memória acabará, eventualmente, quando vários programas forem executados ao mesmo tempo, ou, ainda, um programa que utiliza uma quantidade muito grande de dados precisa deixar à disposição uma biblioteca enorme de modelos, diagramas, entre outros elementos pré-carregados.
Um sistema que usa memória virtual usa uma seção dos discos rígidos para emular a RAM. Com a memória virtual, um sistema é capaz de carregar programas maiores ou vários programas rodando ao mesmo tempo, permitindo que cada um opere como se tivesse mais espaço, sem precisar comprar e instalar mais RAM. Segundo, ainda, a Crucial (2021b, on-line), a memória virtual fornece RAM “falsa” adicional para permitir que os programas continuem funcionando. No entanto cabe lembrar que, como o acesso e o desempenho do HD e do SSD são muito mais lentos do que a RAM real, a perda de desempenho é perceptível e, geralmente, observada quando se utiliza, extensivamente, a memória virtual. Quanto mais lentas forem as taxas de gravação e leitura dos dispositivos de armazenamento secundário (HDs e SSDs), mais lento o computador ficará, caso necessite, por falta de RAM, gerar memória virtual.
Gillis, Peterson e Lelii (2021) complementam: isso significa que o uso de memória virtual causa, de modo geral, a redução perceptível no desempenho do computador. Por causa da troca, os computadores com mais RAM são considerados de melhor desempenho. O gerenciamento do uso da memória virtual pode ser ajustado, manualmente, no sistema operacional Windows. A Crucial (2021b, on-line), no entanto, afirma que isso é desnecessário. O Windows, por padrão de comportamento de parâmetros, ajustará a memória virtual, dinamicamente, com base nas suas necessidades e na RAM instalada. O Windows tenta ajustar-se ao que espera que você necessite, com base na RAM instalada; se ajustará, caso o uso aumente, mas também reduzirá, caso não haja mais necessidade e, assim por diante, ocorrendo de forma automática, sem que você tenha que clicar em nada.
Depois de conhecer como funciona a memória virtual dos computadores, você pode concluir que o professor de informática de Pedro estava, de fato, com a razão. Agora, a pergunta é: quando devo adquirir RAM ou quando devo deixar o computador gerar memória virtual para atender às necessidades que os usuários impõem sobre ele? Depende! Primeiro, deve-se observar o que o usuário utilizará e com qual frequência.
De forma geral, você já viu que, para trabalhar com processador de textos e planilhas grandes, a Crucial (2021a, on-line) recomenda 8 gigabits. Mas e se você utilizar um programa que usa mais do que isso? Esta pergunta gera uma outra: com que frequência você faz uso do programa cujos 8 gigabits não são suficientes? São muitas questões a considerar, ainda. Você utiliza uma vez por semana, ou usa algumas vezes no ano, ou utiliza todos os dias? Em qual situação vale a pena comprar mais RAM?
Outro ponto que nos aprofundaremos mais na próxima lição: qual é a velocidade de gravação e leitura do seu HD? Se for um dispositivo superrápido, você nem perceberá que o computador está gerando memória virtual. Caso seja for lento, a situação ficará bem complicada e o sistema demorará a responder, apresentando aqueles sintomas que listamos na lição sobre RAM.
Para você ter uma ideia do quanto isso pode variar, existem HDs no mercado, atualmente, que, em média, gravam e fazem leitura a 50 mb/s (megabytes por segundo), também existem alguns que gravam e leem 7500 mb/s. Então, se você tiver o primeiro HD e o computador tiver a necessidade de gerar memória virtual, pode buscar um café e aguardar. Porém, se for o segundo, você nem perceberá.
Assim, está na hora de sabermos mais a respeito dos dispositivos de memória secundária, também conhecidos como armazenagem em massa, os quais veremos na próxima lição.
CRUCIAL. How Much Computer Memory (RAM) do You Need? [2022a]. Disponível em: https://www.crucial.com/articles/about-memory/how-much-ram-does-my-computer-need. Acesso em: 17 fev. 2022.
CRUCIAL. Virtual Memory – Settings and Suggestions. [2021b]. Disponível em: https://br.crucial.com/support/articles-faq-memory/virtual-memory-settings-suggestions. Acesso em: 17 fev. 2022.
GILLIS, A. S.; PETERSON, S.; LELII, S. Virtual Memory. Massachusetts: Tech Target, 2021.
STALLINGS, W. Arquitetura e Organização de Computadores. 8. ed. São Paulo: Pearson Prentice Hall, 2010.