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ș.