Sítio do Piropo

B. Piropo

< Diversos >
Volte
01/07/2002

< Esvaziamento de pilha >


P: Estou às voltas com um problema. Quando entro na Internet, recebo um aviso numa janela do Explorer que me solicita o fechamento desta e a conseqüente perda dos dados amealhados. Quando clico no “detalhes” desta janela vejo que se trata do erro “esvaziamento de pilha”. Se fosse possível, vocês dar-me-iam uma "mãozinha"?

Lauro Penha

R: Como considero irrecusável responder uma pergunta que emprega mesóclise, dar-lhe-ei a ajuda possível, respeitadas as limitações desta seção. Vai , portanto, uma explicação resumida do que vem a ser “esvaziamento de pilha”. “Pilha” é uma estrutura auxiliar, um trecho de memória usado pelos programas e pelo sistema operacional para armazenar dados transitoriamente. Quando o sistema precisa suspender temporariamente a tarefa que está executando para atender a uma interrupçãopor exemplo, solicitada por um dispositivo de entrada – copia todos os valores dos registradores (posições de memória interna do processador) na “pilha” e passa a atender à interrupção. Diz-se que os dados são “empilhados” porque vão ocupando endereços de memória sucessivos e crescentes no trecho de memória especialmente reservado para este fim (a “pilha”). Depois, quando o serviço solicitado pela interrupção é concluído e a tarefa original que foi suspensa deve ser retomada, os valores vão sendo retirados da pilha na ordem inversa e repostos nos locais originais. A CPU prossegue então com a tarefa original como se os valores nunca tivessem saído de seus registradores e não tivesse havido interrupção. A “pilha” é uma estrutura tipo LIFO (“Last In, First Out”, ou seja, o último a entrar é o primeiro a sair), como uma pilha de pratos. Como o objetivo da pilha é armazenar dados provisoriamente enquanto uma tarefa permanece suspensa, ela deve devolvê-los exatamente no estado e na quantidade em que foram recebidos. Portanto, a pilha jamais pode “esvaziar” (ou seja: acabarem os dados que estão na pilha) antes que sejam novamente preenchidos todos os locais de onde foram removidos os dados encaminhados à pilha (geralmente, os registradores da CPU). Se isso ocorrer, ou seja, se a pilha se apresentarvazia” (sem dados) enquanto aindaum ou mais registradores a serem preenchidos, evidentemente houve um erro. Esse erro é denominado “Esvaziamento de pilha”. Por que ele está ocorrendo em sua máquina, não sei. Mas como ele se apresenta sempre durante a execução do Internet Explorer, sugiro reinstalar o programa ou atualizar sua versão.

B. Piropo