Käigultvahetus

Põhjused käigultvahetuseks

Käigultvahetust kasutatakse, kui on soov muuta konfiguratsiooni või remontida töötavat süsteemi ilma selle tööd katkestamata. Eelkõige on see mugavam, sest nii ei pea sulgema ja taaskäivitama mingit keerulist süsteemi, kus antud seadmeid on vaja pidevalt kasutada ja arvuti komponendid peavad olema pidevalt kasutuses.
Käigultvahetust võidakse kasutada lisaseadmete lisamisel ja äravõtmisel. See võimaldab andmeid arvuti andmetega sükroonida ning lubab rikkis seadmeid vahetada arvuti töösse pause tegemata.
Seadmed võivad olla disainitud plaaniga, et rikke korral jätkavad teised süsteemi osad tööd samal ajal, kui katkine komponent vahetatakse uue töötava komponendi vastu. Näiteks RAID-kettamassiiv lubab käigult vahetada kõvaketta uue vastu: uus seadistatakse massiivi osaks automaatselt või käsitsi. Arvutil võib olla kaks toiteplokki – nii tagatakse arvuti töö jätkumine ka ühe purunemisel ja väljavahetamisel.
Käigultvahetust kasutatakse ka turvakaalutlustel ennetamaks allkirjastamata koodi kasutamist. Kõige parem näide sellest on Xbox 360 mängukonsoolis, kus kõvaketast saab käigult vahetada.
On kaks natuke erinevat tähendust terminile käigultvahetus. See võib tähendada seadmete liitmist või äravõtmist süsteemi sulgemata, samal ajal kasutajat sellest teavitades. Näiteks RS-232 ja madalama astme väikearvutisüsteemi liidesed. Seda kutsutakse tavaliselt külmaltvahetuseks. Kui süsteem suudab tuvastada ja reageerida riistvara eemaldamisele või lisamisele, siis seda kutsutakse tõeliseks käigultvahetuseks. Näiteks universaalne järjestiksiin, FireWire ja kõrgema astme väikearvutisüsteemi liidesed.

Süsteemi eeldused

Masinad, mis toetavad käigultvahetust, peavad oskama uuendada oma operatsiooni konfiguratsiooni vastavalt muudetud seadistusele. Kõik elektrilised ja mehaanilised ühendused, mis on seotud käigultvahetamisega, peavad olema disainitud nii, et kasutaja ega muud komponendid ei saaks toimingu käigus kahjustada. Teised seadmed süsteemis peavad võimaldama käigultvahetatava elemendi eemaldamist opereerimist häirimata.
Mõned rakendused nõuavad seadmete eemaldamisele eelnevalt sulgemist. Need seadmed on küll lihtsama disainiga, kuid rikki minemise korral üsna robustsed. Kui komponent kõrvaldatakse kasutamise ajal, siis toimingud selle seadmega ebaõnnestuvad. Kasutaja peab antud toimingut uuesti alustama, kuid üldjuhul seda ei loeta suureks probleemiks.
Keerulisemad rakendused võivad nõuda komponendi sulgemist, et komponent jätaks oma tööd isegi kui see uuesti ühendada. Seda kasutatakse tavaliselt arvuti hooldamisel või katkiste komponentide vahetamisel.

Tarkvara

Käigultvahetus võib viidata ka võimele muuta jooksvat programmikoodi, ilma et programmi töö häiruks või peatuks. Interaktiivne programmeerimine on programmeerimise paradigma, kus kasutatakse ohtralt käigultvahetust, nii et programmi aktiivsus saab ise osaks programmi voolust.
Väga vähesed programmeerimiskeeled toetavad algupäraselt käigultvahetust. Osalist käigultvahetust toetavad näiteks Pike, Lisp, Erlang, Smalltalk ja Java. Microsoft Visual Studio. Seda liiki käigultvahetust nimetatakse muuda-ja-jätka (Edit-and-Continue), mida toetavad nii C#, VB.NET ja C/C++ juhul, kui kood töötab läbi siluri.
Mõned veebipõhised raamistikud nagu Django toetavad muutuste avastamist moodulites ja nende kohest taaslaadimist. Põhimõtteliselt on käigultvahetus vahemälu puhastamine uue faili ajendil. Tähele tuleb panna, et see ei kehti HTML-i ega PHP puhul, kuna nende iga fail teisendatakse iga kasutuse puhul uuesti täiesti nullist. Leidub CMSi ja PHP baasil raamistikke (nagu näiteks Drupal), kus kasutatakse vahemälu interaktiivselt. Sellistel juhtudel jäävad kehtima samad võimalused ja erandid.
Käigultvahetus leiab aset ka süsteemides, kus töötlemist vajab väga suur kogus informatsiooni, näiteks bioinformaatika genoomialgoritmides.

Signaali elektroonika

Vooluring, mis on ühenduses signaaliviikudega, peaks olema kuidagi kaitstud elektrostaatilise laengu vastu. Tavaliselt esineb see kontaktides klamberdioodide kujul, mis maandavad end alalisvoolu toiteallika kaudu. Elektrostaatilise laengu tekkimise vältimiseks peab hoolikalt kujundama käigultvahetuse komponentide ümber mehaanilise kesta. Tavaliselt materjalist, mis juhib hästi elektrit.
Erilist tähelepanu tuleks pöörata süsteemidele, mille siinid jooksevad korraga mitmesse käigultvahetatavasse komponenti. Kui käigultvahetatav komponent sisestatakse, siis moodustavad tema sisend- ja väljundsignaalid ajutise lühise, mis ka kohe maandatakse. See võib põhjustada soovimatut alalisvoolu pinge kõikumist, mis võib põhjustada töö häireid teistes käigultvahetatavates seadmetes. See oli suur probleem esimestel paralleelsetel SCSI-kettaseadmetel. Üks võimalikke lahendusi on kaitsta siinitud signaale seeriadioodidega või takistitega. CMOS-puhverseadmed on nüüd spetsialiseeritud sisendite ja väljunditega, mis vähendavad häireid siinide signaalides komponentide vahetuse ajal. Kui miski muu ei aita, siis üks lahendus on veel: süsteemi kõikide käigultvahetusega seotud komponentidega tehakse protseduur Quiesce.

Üleminekud

Kõige moodsamad käigultvahetuse meetodid kasutavad spetsiaalseid üleminekuid järkjärguliste viikudega nii, et teatud viigud ühendatakse kindlasti teistest viikudest enne. Mingi aeg oli järkjärguliste viikude tootmine kallis lahendus. Paljud tänapäeva ühenduspesad tulevad juba standardiga, kus järkjärguline viik on üks nõue. Näiteks kasutatakse seda tänapäeval kõikides kaasaegsetes väikearvutisüsteemi liideste ketta-ajamites.
Enamikul järkjärgulistel viikudel on maandusviigud teistest pikemad. See kindlustab, et tundlik vooluring ei saaks kahjustatud enne, kui süsteemil on kindel maandus olemas. Teised viigud on tavaliselt ühepikkused. Mõnel juhul kasutatakse kolme eri pikkusega viiku.
Kuigi ühendamise kiirust ei saa täpselt kontrollida, siis praktiline kaalutlemine lubab kindlaks määrata halvimad konditsioonid. Tavaliselt järjestikku asuvate viikude pikkus ei erine rohkem kui 0,5 mm, mis lubab viigud ühendada 25 ms ja 250 ms vahemikuga. Praktiline on luua käigultvahetuse ahelaid, mis töötavad dünaamilises vahemikus. Viigid, mis on ühe pikkuseda ei pruugi alati samaaegselt kontakti luua. Seda mehaanilise tolerantsi ja viikude ühendamisel tekkinud nurga tõttu.
Kui käigultvahetuse pistikud on piisavalt jäigad, loob alati üks neljast nurgaviigust ühenduse. Tüüpilise kaherealise pistikupaigutuse puhul tähendab see, et nelja esimese kontaktiviiku kasutatakse maanduseks teistele viikudele. Ülejäänud asuvad tavaliselt nurgaviikude läheduses, näiteks selleks, et kontrollida, kas viigud on täielikult pesas või paigal. Antud tabel paremal kirjeldab hästi seda olukorda, kui nurkades on maandusviigud ja keskel on vooluviigud. Kontrollviigud on mõlemal pool nurkades, et kontrollida kas pesa on ikka täpselt paigas ja annavad signaali ainult siis kui mõlemad saavad signaale. Ülejäänud viike kasutatakse igasuguseks andmevahetusteks.