25 december 2009

Kako deluje miška?

Kako deluje miška?

08 maj 2005 sem to prvič zapisal. Osnove so ostale, toda v teh 4 letih in še nekaj, so proizvajalci strojne in programske opreme zagotovo kaj popravili in izboljšali.
Želim le malce razumevanje pri branju.

~~~~~~~~~~~~~~~~~~~~~~~~~~~

Pri vsakem premiku miške gredo 3 bajti do računalnika. Označimo jih kot smer x in y ter g za gumb in vedno gredo v skupini po 3 (pustimo ob strani za hip kolešček med tipkama). Po žici potuje naslednje:

x y g x y g x y g x y g ... ... ...

Sedaj predpostavimo, da nam nagaja kabel, signali se zgubijo, pomešajo in do računalnike pride naslednje:

x y g x g x y g x y g x ... ... ...

Operacijski sistem pri drugem kompletu zgubi sinhronizacijo z miško in prične napačno interpretirati prejete podatke: ''y g x'' razume da ''y'' predstavlja razliko ''x'' (za pojasnilo: prenašajo se razlike med prejšnjimi in sedanjimi podatki na neko časovno obdobje), ''g'' predstavlja razliko ''y'' in ''x'' predstavlja stanje gumba. Rezultat: miška nekontrolirano zbezlja! Oh, seveda, pozabil sem, saj imamo vendar miško s koleščkom - k, kar seveda popestri zadevo.

Ko prižgemo računalnik in se prične nalagati operacijski sistem, poizkuša ugotoviti, kakšna miška je priklopljena na sistem. Po končanem ugotavljanju in pogajanju se obe strani dogovorita, da gre za miško s koleščkom. V tem primeru velja, da miška generira 4 bajte, ki jih prikažemo na naslednji način:

x y g k x y g k x y g k x y g k ... ... ...

Če pride do izgubljene sinhronizacije, potem je zmešnjava neizbežna!

Posebna zgodba in zabava pa je pri prenosnem računalniku - notesniku. Danes ima skoraj vsak notesnik vtičnico za priklop zunanje miške. Ko priklopimo tako zunanjo miško, preko PS/2 ali USB, se izklopi vgrajena miška (pointing device, touchpad) in zunanja miška je pripravljena. Ta preklop se naredi izključno v strojni opremi (firmware) in operacijskemu sistemu se ne sanja o zamenjavi mišk.

Vzemimo, da je zunanja miška s koleščkom priklopljena in prižgemo notesnik. Pogajanja so uspešna, operacijski sistem je dogovorjen z miško: paket s 4 bajti. Zadeva deluje brezhibno.

Če sedaj odklopimo zunanjo miško, strojna oprema izvede preklop na touchpad, ki je seveda brez koleščka in začne pošiljati operacijskemu sistemu pakete po 3 bajte. Operacijski sistem pa še naprej te podatke interpretira kot pakete s 4 bajti. Ali kdo dvomi o zmedi?

To sicer ni basen, ampak vseeno lahko pri notesnikih zaključimo naslednje:

¤ vedno uporabljamo miško brez koleščka (miška in touchpad pošiljata po 3 bajte, zadeva bo delovala ok).

¤ če prižgemo notesnik brez zunanje miške, potem lahko pozneje, med delom, priklopimo ali miško s koleščkom ali pa miško brez koleščka. Miška brez koleščka je brez dvoma kompatibilna s touchpad - oba po 3 bajte. Tudi priklop miške s koleščkom bo v redu, ker se s to miško operacijski sistem pri prižiganju ni pogajal in se deluje v kompatibilnem načinu, to je kot miška brez koleščka.

¤ če pa prižgemo notesnik s priklopljeno miško s koleščkom, potem nikoli ne odklopimo take miške med delovanjem. Strojna oprema bo izvršila preklop, operacijskemu sistemu se o tem ne bo sanjalo, obdeloval bo sprejete podatke po 4 bajte skupaj, pa čeprav mu touchpad pošilja le skupine po 3 bajte. Touchpad pa bezlja po svoje!

Seveda pa se vedno lahko nekaj najde in zadeva gre v franže!