Käigultvahetus

Käigultvahetus (inglise keeles "hot swapping" 'kuumvahetus') on arvuti komponentide vahetamine ilma arvutisüsteemi välja lülitamata. Täpsemalt tähendab käigultvahetus arvutikomponentide vahetamist, ilma et see tooks kaasa suuremaid häireid arvuti töös. Käigult lisamine tähendab arvuti süsteemile komponentide lisamist, ilma et esineks suuremaid häireid arvuti töös. Kui vastav tarkvara on arvutisse paigaldatud, võib kasutaja ühendada ja lahti ühendada komponente ilma taaskäivituseta. Üks väga tuntud näide on universaalne jadasiin (USB), mis võimaldab kasutajatel lisada või eemaldada selliseid lisaseadmeid nagu arvutihiir, klaviatuur või printer. Veel tuntud väljendeid on "külmvahetus" (arvuti tuleb välja lülitada, et komponendi vahetamine saaks toimuda) ja "hoiatusvahetus" (niinimetatud soe vahetus – voolutarne seadmele jätkub ja operatsioonisüsteemi välja ei lülitata, aga kõik operatsioonid selle seadmega lõpetatakse või peatatakse; see on parem lahendus kui külmvahetus, aga halvem kui 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 USB, 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 m"uuda-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.
Jõuelektroonika.
Alalisvoolu toiteallikas, mis toidab käigultvahetuse komponente, on tavaliselt eelnevalt laetud. Seda tänu spetsiaalsetele pikkadele viikudele, mis loovad kontakti enne kui põhilised vooluviigud. Need eellaetud viigud on kaitstud vooluringiga, mis piirab sissetulevad voolu viike kahjustamata ja reguleerib ühenduspesa pinget vastavalt vajadusele. Eelnevalt laetud vooluring võib olla lihtne seeria takisti, negatiivse temperatuurikoefitsiendiga takisti või elektripiirajaga vooluring. Täiendavat kaitset võib pakkuda "kergstardi" vooluring, mis pakub käivitamise ajal komponendile alalisvoolu.
Tüüpiline järjekord käigultvahetuse pistikupessa lülitamisel oleks järgmine:
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.
Raadiosaatjad.
Tänapäeva raadiosaatjad (ja mõned televisioonisaatjad) kasutavad torude asemel suure võimsusega raadiosagedusesaatjate transistore. Käigultvahetatavad jõumoodulid ei ole uus tehnoloogia. Paljud 1930. aastatel toodetud raadiosaatjad toetasid jõutorude vahetamist, kui raadiosaatja ise veel töötas. Kuid see ei saanud populaarseks ega läinud laiatarbekasutusse, kuna tulid kõrgema võimsuse ja vastupidavusega jõutorud.
1990. aastate keskpaigas hakkasid mitmed USA firmad pakkuma suurema võimsusega raadiosaatjate transistormooduleid.
Jõumoodulite taaskehtestamine on suuresti kasuks tulnud raadiosaatjate tootmisele. Moodulsaatjad on näidanud paremat vastupidavust ja kvaliteeti kui torusaatjad, kui saatja on korralikult valitud tingimustes ja vastavas kasutuskohas.
Elektrilised piirangud:
Firmad, mis toodavad jõumoodulitega saatjaid: