Vă amintiți când v-ați dat seama că un calculator e mai mult decât un monitor și o tastatură? Că între click-ul pe mouse și imaginea video ceva a reţinut intenția voastră, a înțeles-o, și a realizat-o? Ce e acel ceva? Or fi spiriduși? Să ne imaginăm că ne putem micșora la mărimea unui electron și ne inserăm în click-ul mouse-ului. Dacă ați demonta un mouse, ați vedea că e un dispozitiv simplu. Are câteva butoane și un sistem de detectare a mișcării și distanței. Poate aveți un mouse optic care face aceste măsurători cu lumini și senzori, dar cele vechi făceau asta cu o bilă de cauciuc tare și cu niște rotițe de plastic. Același concept. Când faceți click pe mouse, se trimite un mesaj calculatorului cu informații privind poziția sa. Când click-ul e recepționat, e prelucrat de subsistemul de bază input/output. Acesta acționează ca ochii, urechile, gura și mâinile calculatorului. În esență oferă calculatorului un mod de a interacționa cu mediul. Dar acționează și ca un tampon prevenind supraîncărcarea UCP cu informații irelevante. În acest caz, subsistemul I/O decide că click-ul e important și generează o întrerupere a procesorului (UCP). - Hei, UCP! Ai un click aici. UCP, sau unitatea centrală de procesare, e creierul calculatorului. Cum creierul nu vă umple tot corpul, tot așa, unitatea centrală nu e tot calculatorul, dar orchestrează permanent tot. Sarcina procesorului, tot ce trebuie să facă, e să aducă instrucțiuni de la memorie și să le execute. În timp ce voi tastați, tastați, tastați, poate chiar foarte repede, poate 60 de cuvinte/minut, procesorul aduce și execută miliarde de instrucțiuni/secundă. Da, miliarde în fiecare secundă: instrucțiuni să mişti mouse-ul pe ecran, să meargă ceasul de pe desktop, să cânte radioul pe Internet , se ocupă de fișierele pe care le editezi pe hard, și multe, multe altele. Procesorul tău e dat naibii la rezolvarea sarcinilor multiple! "- O, dar tocmai vine un click foarte important! Lăsăm totul și ne ocupăm de asta!" Sunt programe pentru tot ce face procesorul. Un program special pentru mouse, pentru ceas, pentru radio Internet, și pentru literele transmise de tastatură. Fiecare program a fost scris de un om într-un limbaj de programare ce poate fi citit de om, cum ar fi Java, C++ sau Python. Dar programele umane ocupă mult spațiu și conțin multe informații inutile calculatorului, așa că sunt compilate, micşorate și stocate în biți de 1 și 0 în memorie. Procesorul realizează că are nevoie de instrucțiuni să se ocupe de click-ul mouse-ului, și caută în adresele programului pentru mouse și trimite o cerere subsistemului de memorie pentru instrucțiunile stocate acolo. Fiecare instrucțiune de la driver-ul mouse-ului este preluată și executată. Ăsta nu-i sfârșitul poveștii! Procesorul află că click-ul mouse-ului a fost cu cursorul pe o imagine a unui buton de pe monitor, aşa că cere memoriei programul pentru monitor să afle despre care buton e vorba. Apoi procesorul cere memoriei programul pentru acel buton, ceea ce înseamnă că are din nou nevoie de programul pentru monitor pentru a arăta video-ul asociat acestui buton, și uite-așa funcționează. Să presupunem că sunt implicate multe programe înainte ca voi să vedeți butonul luminându-se când daţi click pe el. Simplul click pe mouse te trece prin toate componentele importante din arhitectura calculatorului vostru: perifericele, sistemul input-output de bază, unitatea centrală de procesare, programele și memoria, și nici un singur spiriduș.