homee-mail
 
 
Table of Contents / Inhoudstafel van deze site
 
PRIVACY PLEDGE
We will not sell or disclose any information about you.
 

 Rated with RSACi

 
Bijgewerkt op maandag 19 juli 1999 /
info@datatestlab.com

© Copyright 1997-1999 by
DTL bvba,
Oud-Turnhout, Belgium
Data TestLab® is a registered trademark of DTL bvba,
Oud-Turnhout, Belgium

e-mail

Click here to report alleged copyright infringment in this domain

DTL Data TestLab
Wie wat waarDTL Internet introductieTestenPrivacyDTL Xplore
Global Village.beDVD Region Hacks

 

Villa PC

Leven met bugs (2) 

door Jozef Schildermans

Villa PC nr. 205 (geschreven 1/6/99); deel 1 vind je hier

Computers zijn deterministische machines en vertonen toch "onlogisch" gedrag. Sommige computergebruikers worden daar bijgelovig van. Ze voeren bepaalde rituelen uit voor ze met hun computer aan de slag gaan. Vorige week zagen we waarom dit soort gedrag zo wijdverspreid is. Deze week hebben we het er over waarom het minder belachelijk is dan sommigen misschien denken. Je kunt een deterministische machine niet beïnvloeden met rituelen, dus waarom de moeite doen? Omdat computers niet altijd zo deterministisch reageren als ze worden verondersteld te doen. Is het u bijvoorbeeld nooit overkomen dat u op een pictogram klikt en het gekozen programma niet wil starten? Klikt u dan nog een tweede of zelfs derde keer (ik ga ervan uit dat u telkens correct klikt)? Strikt genomen zijn de tweede en derde kliks overbodig: als het de eerste keer niet werkt, dan zal het de tweede keer ook niet werken. De computer is immers volkomen deterministisch. Maar is het u ook al niet overkomen dat het programma bij de derde klik wél start. Hoe kan dat? Hoe vallen deze en andere toevallige computerfouten te verzoenen met het wetenschappelijke beeld van de computer als een machine met een eindig aantal toestanden? Omdat dit beeld de computer idealiseert. De computers die u en ik gebruiken zijn gemaakt van onperfecte onderdelen. Door een hardware- of softwarefout kan de computer vastgeraken tussen twee eindige toestanden. Invloeden van buitenaf (een stroomopstoot, kosmische stralingen, quantumfluctuaties) kunnen er voor zorgen dat de computer spontaan overschakelt van de ene eindige toestand naar de andere. Toevallige, niet-herhaalbare fouten zijn dus best mogelijk, zélfs bij een computer die uit perfecte onderdelen is samengesteld. Hoe ingewikkelder de computer, hoe groter de kans op dit soort "fluctuaties" of toevallige bugs. Een computer met 32 MB geheugen heeft 2 tot de 268.435.456ste mogelijke toestanden (32 megabyte is 256 megabits, ofwel 268.435.456 bits; elke bit staat uit of aan). Dat is een getal dat geen mens zich kan inbeelden. Als je als gebruiker de computer in een bepaalde toestand zet en hem met identieke gegevens voedt dan krijg je altijd hetzelfde resultaat. Maar een computer met 2 tot de 268.435.456ste mogelijke toestanden zal noodzakelijkerwijze een hoop toestanden kennen die oppervlakkig identiek lijken maar in de details verschillen. Als er een probleem optreedt kun je proberen het te reproduceren. Maar de kans dat dit lukt bij een min of meer toevallige fout is klein. Immers, een verschil van één byte tussen twee toestanden is al voldoende om een computer hopeloos in de war te brengen. De kans dat de computer door toeval twee keer na elkaar in een identieke toestand terecht komt, is infinitisimaal klein. Computerfouten kunnen dus optreden (het is een wonder dat ze zo weinig optreden) en zijn inherent moeilijk te doorgronden. Debugging heeft meer weg van zwarte kunst dan van exacte wetenschap. De computer mag dan intern (op microniveau) functioneren als een deterministische machine, extern (op macroniveau) lijkt zijn gedrag dikwijls érg onlogisch. We zullen dus moeten leren leven met bugs, zélfs als computers ooit perfect worden, wat hoogst onwaarschijnlijk is. Wie hierover meer wil lezen, raad ik dit artikel uit American Scientist aan.

Discussiëren over dit of andere onderwerpen? http://www.globalvillage.be/cgi-bin/Ultimate.cgi?action=intro