Thrashing. O verbo thrash significa "bater cegamente", ou algo do tipo. Algo como o que se faz quando você definitivamente não sabe lutar e está rodeado por... ninjas... ou coisa do tipo. Enfim, a questão é que o "thrashing" em computação tem um significado mais restrito – e indesejado – que envolve toda a performance do sistema. Mas antes, uma curta aula sobre memória virtual. =D


A verdade sobre os sistemas operacionais é que, em termos de gerência de memória, que é uma das partes mais importantes no que se refere a desempenho – e todos nós queremos desempenho, caramba! –, o SO meio que joga tudo pro alto. Em um computador de 32 bits (não pergunte, vamos só prosseguir), por exemplo, cada programa "assume" que o computador tem uns 4GB de memória RAM disponível. Só pra lembrar, 4GB é um bocado, dá pra guardar umas 4 cópias do "The Wall" ali dentro...

Enfim, o caso é que um computador comum não tem 4GB de memória, que dirá 4GB para cada processo. Daí o que ocorre é que o sistema operacional, que é o sujeito que coordena essa bagunça toda, de vez em quando tem que mandar uns processos saírem pra outros rodarem. O que acontece nessa "dança das cadeiras" é que o que estava na memória obviamente não é jogado fora. Todo esse espaço de endereçamento é guardado então no disco rígido. Um detalhe interessante é que, comparado ao acesso na memória principal(RAM), acessar um disco rígido demora umas 100.000 vezes mais. Logo, quando o SO começa a trocar processos de lugar, o desempenho cai um pouco.

O que é chamado de "thrashing" é quando o sistema está sobrecarregado a tal ponto que o SO passa mais tempo trocando páginas de memória de lugar do que realmente executando. O resultado é uma "luz do HD" piscando feito louca e uma queda de desempenho significativa beirando o "nada". Agora, voltemos à nossa programação normal...


Muito bem, com a noção de "thrashing" na cabeça, voltemos ao assunto do nosso post que é... ah, sim, "thrashing aplicado à vida real". Viver em thrashing, em poucas palavras, é uma angústia.

Comece pelas causas: muito o que fazer. O resultado da sobrecarga é que você passa mais tempo decidindo se vai fazer a análise daquele artigo sobre Minerção de Dados, os sprites pro trabalho de IA para Jogos, comentar nos trabalhos da maldita disciplina à distância de português, ou escrever no blog, que já está quase virando semanal e temos que dar um jeito nisso o quanto antes. Ufs! D=

O problema do "live thrashing" é que sua solução não é trivial. No caso de seu PC, é trivialíssimo: mate alguns processos, sobretudo os mais interativos(navegador, processador de texto, editor de imagens, jogos...). No caso da vida real... bom, eu adoraria matar meus trabalhos, mas infelizmente matar os trabalhos tem uma consequência nada boa na vida real, certo? =P

Daí a gente vive em thrashing e se acostuma, por incrível que o pareça. Até chegarem as férias – ó benditas e malditas férias! –, quando esquecemos dessas responsabilidades imatáveis e desfrutamos de nosso tempo livre com nenhuma sabedoria... afinal, não tenho o direito de ser levemente irresponsável? =P

E no semestre seguinte, retorna o thrashing. E começa a história toda de novo...

(E o Anime Festival é nesse fim de semana e eu nem sequer comprei o ingresso. Mais um processo pra lista... =P)