Luku 1

Tietokone

Tässä ensimmäisessä luvussa selvitämme, mikä tietokone on ja minkälaisia osia siihen voi kuulua. Kerromme myös, mikä on tietokoneen suorittama ohjelma ja missä muodossa se on tietokoneessa. Lopuksi tarkastelemme tietokonelaitteiston käsittelemiä valtavia nopeuseroja ja niiden vaikutusta tietokoneiden toimintaan.

Lähtötietoina kurssin osallistujilta oletetaan, että heillä olisi karkeasti ottaen ainakin peruskoulu suoritettuna loppuun. Olisi myös suotavaa, mutta ei pakollista, että opiskelijoilla olisi jotain ohjelmointikokemusta. Konekieliseen ohjelmointiin liittyvät esimerkit on tällöin helpompi ymmärtää. Oppimateriaalissa on runsaasti linkkejä, joita seuraamalla löytyy tausta- tai lisätietoja kulloinkin käsittelyssä olevaan aihepiiriin. Linkkien seuraamista ei mitenkään edellytetä, vaan kaikki kurssin sisältöön liittyvä materiaali on tässä aineistossa.

Tietokone

Tietokoneita on hyvin erilaisia. Kaikille tuttuja esimerkkejä tietokoneista ovat pöytäkoneet, läppärit ja tabletit. Mutta myös älypuhelimet, navigaattorit ja erilaiset urheilukellot ovat tietokoneita. Kodin pöydällä oleva sisä- ja ulkolämpötilan näyttävä lämpömittari voi olla tietokone, kun taas sen ulkona oleva anturi ei sellainen ole. Toisaalta taas, lämpömittari voi paremminkin olla ns. sulautettu järjestelmä, jossa tietokone on vain tapa toteuttaa toimintalogiikka mikropiirien asemesta. Tässä mielessä älypuhelinkin on sulautettu järjestelmä. Sen voi mieltää olevan myös ihan täysverinen tietokone, koska siihen voi käyttäjä ladata suoritettavaksi uusia ohjelmia. Suuria sulautettuja järjestelmiä ovat esimerkiksi pankkiautomaatit, matkustajalentokoneiden ohjausjärjestelmät ja voimalaitosten kontrollijärjestelmät. Tällaisten järjestelmien päätarkoitus ei ole tiedon prosessointi, vaan tietokone on ainoastaan pienehkö mutta tärkeä osa kokonaisjärjestelmää.

Kahdeksan erilaista tietokonekuvaa: läppäri, älypuhelin, urheilutietokone, playstation,  tablettipelikone, auton navigaattori, digikamera. Lopuksi Applen älypuhelin, tabletti, pöytäkone ja läppäri.

Mikä tekee jostain laitteesta tietokoneen? Yleisesti ottaen tietokone on mikä tahansa laite, joka käsittelee tietoa oman ohjelmansa mukaisesti. Siinä pitää olla jonkinlainen suoritin, jolle voidaan antaa haluttu ohjelma suoritettavaksi. Suotavaa olisi, että suoritettavaa ohjelmaa pitäisi pystyä vaihtamaan. Suoritettavan ohjelman vaihto voi tapahtua helposti ohjelman kuvaketta klikkaamalla läppärillä, tai se voi olla huollossa tehtävä toimenpide, kuten esimerkiksi urheilukellojen ohjelmiston päivitys. Kuvaketta klikkaamalla pyydetyn suoritettavan ohjelman vaihdon tekee tietokoneen käyttöjärjestelmä, joka huolehtii myös kaikesta muusta järjestelmän ylläpidosta. Käyttöjärjestelmään sisältyy monia apuohjelmia, jotka tekevät tietokoneen käyttämisestä helpompaa. Käyttöjärjestelmä myös piilottaa varsinaisen laitteiston ohjelmilta ja käyttäjiltä. Tämä tekee ohjelmien tekemisestä helpompaa, kun ei tarvitse murehtia eri laitteistojen yksityiskohdista.

Pikatehtävät (kyselyt, quizit)

Kurssilla on huomattava määrä automaattisesti arvioitavia pikatehtäviä. Pääosa niistä on kunkin aliluvun lopussa, mutta osa myös keskellä oppimateriaalia. Joissakin pikatehtävissä voi olla monta oikeata vastausta. Valitse tuolloin joku niistä.

Pohdi kysymyksiä harkiten ja käy läpi oppimateriaalia uudestaan tarvittaessa. Jokainen kysymys on mahdollisuus oppia lisää ja syventää tietämystästäsi. Älä siis heitä näitä mahdollisuuksia hukkaan!

Kurssi on suunniteltu sillä ajatuksella, että opiskelijat tekevät kaikki tehtävät ajatuksella. Jotkut tehtävistä ovat triviaaleja, mutta joidenkin pohtimiseen voi mennä paljonkin aikaa. Syvällisempi oppiminen tapahtuu juuri tehtäviä pohtiessa. Älä silti suotta hermoile, jos joku vastauksesi on väärin, koska ainakin joidenkin tehtävien osalta vastauksen oikeellisuus voi riippua näkökulmasta. Virheelliseksi merkityistäkin vastauksista oppii paljon - usein jopa enemmän kuin oikeista vastauksista!

Yhdessä oppiminen on hauskempaa ja usein tehokkaampaa kuin yksin puurtaminen. Molemmat hyötyvät siitä. Toinen saa neuvoa asiassa, jota ei ollut hyvin sisäistänyt. Toinen taas oppii materiaalin entistä paremmin, kun hänen pitää jäsentää asia sen toiselle selittämisen vaativaan muotoon. Älä kuitenkaan neuvo liikaa, jotta et vahingossa pilaa toisen oppimismahdollisuuksia. Syvällisempi oppiminen tapahtuu asioita itse pohtiessa. Jos annat johonkin tehtävään suoraan oikean vastauksen toiselle, niin tällöin hän ei juurikaan opi tehtävästä, vaikka saisikin itsepetollista tyydytystä muka oikein osatusta tehtävästä. Tämä voi haitata oppimista myöhemmin, kun vaikeammissa asioiden selittämisessä on otaksuttu, että aikaisempi oppimateriaali olisi ymmärretty. Vaatii taitoa neuvoa sopivasti mutta ei liikaa.

Tietokoneen osat

Minkälaisia laitteita tietokoneessa on? Tietokoneen osat voi karkeasti ottaen jakaa kolmeen luokkaan: laitteiston sisäiset osat tai laitteet, muiden tietokoneiden kanssa kommunikoivat laitteet ja ihmisen kanssa kommunikoivat laitteet. Ainoastaan suoritin ja muisti ovat ohjelman suorituksen aikana välttämättömiä, ja kaikkia muita laitteita kutsutaan sen vuoksi yleisnimellä oheislaite. Järjestelmän käynnistystiedot on talletettu jonkinlaiseen massamuistiin, jossa tieto säilyy ilman sähkövirtaa. Massamuistit ovat myös oheislaitteita. Eri tietokoneissa on vain niiden omiin käyttötarkoituksiin sopivat osat ja osien välinen tiedonsiirto on toteutettu erilaisten väylien kautta. Väylät taas ovat pohjimmiltaan joukko sähköjohtoja, joiden kautta tieto kulkee ykkösinä ja nollina.

Tietokonelaitteisto harmaalla taustalla. Sen yläosassa oheislaitteet käyttäjälle: näppäimistö, kosketusnäyttö, kuulokkeet, peliohjain. Näistä kaikista on nuolet ylhäällä olevalle käyttäjälle. Tietokonelaitteistossa oikealla on emolevy, jossa on suoritin, muisti ja väylät. Siihen on kytketty massamuistit, joista esimerkkkinä kovalevy. Siihen on kytketty myös langaton verkkosovitin, josta on yhteys Internetiin.

Tietokonejärjestelmän suoritin on sen aivot. Se osaa toteuttaa naurettavan yksinkertaisia konekäskyjä, mihin kaikkien ohjelmien suoritus perustuu. Monimutkaisin asia, minkä suoritin (ja tietokone) osaa tehdä, on kertolasku. Kaikki vaikeammat tehtävät tehdään yhdistelemällä näitä yksinkertaisia konekäskyjä sopivalla tavalla. On usein vaikea ymmärtää ja uskoa, kuinka "tyhmä" tietokone oikeastaan on. Järjestelmien käyttäjille näkyvä tietokoneen "viisaus" onkin vain laitteistossa suoritettavan ohjelman ominaisuus. Tämä ei mitenkään sulje pois sitä, etteikö tietokoneen laitteisto olisi nerokkaasti suunniteltu. Laitteisto vaan nyt ei ole (ainakaan vielä) mitenkään älykäs, vaan pelkästään yksinkertaisia käskyjä toteuttava kone.

Suorittimen sisällä on pienehkö hyvin nopea muisti, jonka alkioita kutsutaan rekistereiksi. Siellä on tyypillisesti muutama kymmen tai satakunta rekisteriä eri tyyppisille tiedoille. Rekistereitä ei voi olla kovin monta, koska pieneen määrään rekistereitä on helpompi ja nopeampi viitata kuin suureen määrään. Pienessä porukassa henkilöt voidaan nimetä pelkän etunimen "Matti" perusteella ja asiat voi hoitaa helposti puhumalla. Isossa joukossa Matteja voi olla useita, jolloin pitää kertoa, että haluaa puhua (huutaa?) nimenomaan Jokisen Matille. Oikean Matin löytäminen väkijoukosta voi myös kestää paljon kauemmin kuin lähipiiristä.

Laitteistossa on aina jonkinlainen muisti (ns. keskusmuisti), jossa on suoritettava ohjelma ja kaikki ohjelman käyttämä tieto (data). Nykyisissä koneissa sekä ohjelma että sen käyttämä data ovat nopeusvaatimusten takia samassa muistissa. Ensimmäinen suomalainen tietokone ESKO (Elektroninen SarjaKOmputaattori) oli erityisen hidas, koska sen ohjelmat luettiin hitailta reikänauhoilta vaikka ohjelman käyttämä data oli nopeammassa rumpumuistissa.

Laitteistoon sisältyy aina myös jonkinlainen pysyväismuisti, jossa olevien tietojen avulla järjestelmä voidaan alustaa, kun virta kytketään päälle. Pysyväismuistia voidaan lukea keskusmuistin tavoin, mutta siellä olevat tiedot säilyvät ilman sähkövirtaa. Nykyään pysyväismuisti on lähes aina toteutettu flash-muistiteknologian avulla ja sitä voidaan myös kirjoittaa. Alustukseen tarvittava pysyväismuisti voi olla hyvinkin pieni, jolloin käyttöjärjestelmä alustetaan lopuksi ulkoisesta massamuistista. Toisaalta esimerkiksi esineiden internetin pienissä laitteissa erillistä massamuistia ei tarvita, jos pysyväismuistiin mahtuu myös käyttöjärjestelmän alustustiedot.

Varsinainen käyttöjärjestelmän (esim. Windows tai Linux) alustuslaite on yleensä massamuisti ja se voidaan valita järjestelmää käynnistettäessä pysyväismuistista. Alustukseen käytettävä massamuisti voi olla esimerkiksi kovalevy, SSD-levy, DVD-levy, Blu-ray -levy, USB-muistitikku tai vähintään jokin vain luettava ROM-muisti.

Normaaliin tietokoneeseen (esim. pöytäkone, sylitietokone, tabletti, pelikone, älypuhelin) sisältyy aina myös luettava ja kirjoitettava massamuisti. Siellä säilytetään (käyttöjärjestelmän alustukseen tarvittavien tietojen lisäksi) mm. kaikkien suoritettavien ohjelmien koodit ja käyttäjien tiedostot. Massamuisti on yleensä kovalevy tai SSD-levy.

Kaksi laatikkoa ja alla joukko samansuuntaisia viivoja, jotka muodostavat väylän. Oikea laatikko on iso muisti, jossa on ohjelman koodi ja data. Vasen laatikko on suoritin, jossa on pieni muistialue rekisterit. Suoritin ja muisti on yhdistetty väylällä, jossa on kimppu sähköjohtoja. Kukin johdin on kuvassa viivana.

Haipuva keskusmuisti ja hitaampi massamuisti

Tietokoneen (keskus)muistille on tyypillistä, että se on toteutusmekanisminsa vuoksi haipuvaa, jolloin tieto häviää muistista virran katkettua. Tämä on tosi harmillista, koska siihen pitää varautua jollain tavoin koko ajan. Kun tietokone suljetaan, sen tärkeät tiedot talletetaan ensin kovalevylle tai muuhun massamuistiin ja sitten vasta pistetään virrat pois. Vastaavasti tietokoneen käynnistämisen yhteydessä pitää tarvittavat tiedot kopioida massamuistista keskusmuistiin, ennen kuin tietokone on käytettävissä. Käynnistämisen yhteydessä ladataan myös käyttöjärjestelmä muistiin ja käynnistetään se. Tähän kuluu usein ärsyttävän paljon aikaa, jopa minuutteja.

Lepotilassa tietokone "nukkuu" ja kuluttaa vain sen verran sähköä, että tieto säilyy haipuvassa keskusmuistissa ja että laite pystyy heräämään vaikkapa läppärin kantta nostettaessa. Lepotilan avulla läppärin akku saadaan riittämään kauemman aikaa ja laite on silti aika nopeasti koko ajan käytettävissä. Jos sähköä halutaan säästää vielä enemmän, laite voidaan laittaa horrostilaan, jossa kaikki ohjelmien ja käyttöjärjestelmän tiedot talletetaan ensin massamuistiin ja sitten laitetaan kokonaan virrat pois päältä. Horrostilasta herättäessä tiedot palautetaan takaisin keskusmuistiin ja tietokoneen käyttö voi jatkua ihan samasta kohtaa kuin mitä se oli horrostilan alkaessa. Tietojen palauttamiseen voi silti kulua aika paljon aikaa - ainakin jos sitä odottaa tietokoneen äärellä. Se on kuitenkin nopeampaa kuin täysin sammutetun laitteen käynnistäminen, koska käyttöjärjestelmää ei tarvitse käynnistää alusta pitäen uudelleen.

Muistin kokoa mitataan yleisesti tavuina (B). Tavun koko on kahdeksan bittiä ja yhteen tavuun voi tallettaa vaikkapa yhden merkin (esim. 't') tai pienen kokonaisluvun (esim. 57). Muistin koko vaihtelee huomattavasti tietokoneen mukaan. Jonkun pienen laitteen muistin määrä mitataan kilotavuina (KB, 1024 tai 1000 tavua), kun läppärin tai pöytäkoneen muistin koko voi olla useita gigatavuja (GB, miljoona KB) tai jopa teratavuja (TB, 1000 GB). Apollo-ohjelmassa lennettiin kuuhun vuonna 1969 AGC-tietokoneen avulla, jossa oli muistia alle 20 KB.

Väylä on kimppu sähköjohtoja

Suorittimen ja muistin välillä on väylä, jossa tieto siirtyy usean vierekkäisen sähköjohtimen kautta. Väylää kutsutaan myös järjestelmäväyläksi tai muistiväyläksi. Väylällä on erikseen johtimet dataa, osoitetta ja ohjaustietoa varten. Näistä väylän osista käytetään yleisesti nimitystä dataväylä, osoiteväylä ja kontrolliväylä. Jokaisella laitteella on oma väyläsovittimensa, joka toteuttaa etukäteen sovittua käytäntöä (protokollaa) väylän käytössä. Esimerkkikoneessamme on vain yksi väylä, mutta oikeassa koneessa niitä on useampia ja eri nopeuksisia. Lähellä suoritinta olevat väylät ovat nopeampia.

Väylän toiminnan perusajatuksena on se, että vain yksi laite voi laittaa sinne tietoa kerrallaan ja kaikki muut voivat sitten lukea sinne kirjoitetun tiedon. Useimmiten tieto on tarkoitettu vain yhdelle vastaanottajalle ja tuolloin muut laitteet jättävät sen huomioimatta. Laitteet voivat havaita väylän kontrollijohtimien (kontrolliväylän) tai osoitetta varten olevien johtimien (osoiteväylän) sisällön perusteella, kenelle tieto on tarkoitettu.

Väylälle on ominaista, että sen nopeus määräytyy siihen liitetyn hitaimman laitteen mukaiseksi. Ryhmäkeskustelussakin on tärkeätä, että kaikki puhuvat tarpeeksi hitaasti, jotta jokainen pysyy keskustelussa mukana. Tietokoneessa nopeimmat väylät ovat suorittimen ja muistin välissä. Muut väylät on liitetty näihin hierarkkisesti käyttäen sovittimia, joiden avulla hitaammat väylät voidaan liittää nopeampiin suorituskyvyn siitä kärsimättä. Sovitin toimii kummallekin väylälle sen omalla nopeudella.

Nopein väylä on sisäinen väylä suorittimen ja välimuistin välillä. Seuraavaksi nopein muistiväylä yhdistää välimuistin muistiin. Muistiväylässä on myös sovitin vähän hitaammalle PCI-väylälle, jossa on kiinni kovalevy. PCI-väylässä on myös sovitin vielä hitaammalle USB-väylälle, jossa on kiinni USB-muistitikku ja näppäimistö.

Oheislaitteet

Suorittimen ja muistin lisäksi tietokoneeseen ei tarvitse sisältyä muita laitteita, mutta yleensä niitä on sekalainen joukko. Näihin sisältyvät erilaiset tiedon tallennusvälineet (massamuistit), tietokoneverkkolaitteet ja yhä hienommat laitteet ihmisen kanssa kommunikointiin. Sana "oheislaite" on vähän hämäävä, koska osa oheislaitteista (esimerkiksi kovalevy) voi olla toteutettu itse tietokonelaatikon sisälle (sisäinen kovalevy) tai sen ulkopuolelle (ulkoinen kovalevy). Niitä käytetään kuitenkin samalla tavalla käyttöjärjestelmän tarjoaman käyttöliittymän kautta.

Yleensä tietokoneeseen liittyy ainakin jokin (keskus)muistia paljon suurempi massamuistilaite, jossa tieto säilyy myös ilman sähkövirtaa. Tyypillisiä massamuistilaitteita ovat kovalevyt ja SSD-muistit, joiden koko mitataan giga- tai teratavuina.

Kukin oheislaite on liitetty väylään käyttäen oheislaitteen omaa laiteohjainta, joka on räätälöity sopimaan juuri kyseiselle väylätyypille. Esimerkiksi järjestelmän sisäisen kovalevyn mukana voi tulla laiteohjain. Se on pienehkö piirilevy, joka pitää kiinnittää pöytäkoneen emolevyllä olevaan sille sopivaan väylään. Kovalevy kiinnitetään sitten omilla johdoillaan laiteohjaimeen. Järjestelmän ulkoinen muistitikku taas käyttää USB-väylää (Universal Serial Bus), mikä on nykykoneessa usein valmiiksi asennettuna. USB:tä käyttävässä laitteessa laiteohjain on yleensä integroitu itse laitteen kanssa samaan koteloon.

Tietokoneita käytetään usein ympäristössä, jossa niiden täytyy pystyä kommunikoimaan käyttäjän eli ihmisen kanssa. Tällöin oheislaitteista täytyy löytyä kuhunkin käyttötarkoitukseen sopiva laite. Sellaisia ovat vaikkapa näppäimisto, hiiri, peliohjain, näyttö, kosketusnäyttö, kuulokkeet ja virtuaalitodellisuuslasit.

Useimmat tietokoneet tarvitsevat yhteyksiä toisiin tietokoneisiin ja ne tarvitsevat tietoliikennettä varten sopivat oheislaitteen tai -laitteet. Esimerkiksi älypuhelimessa voi olla sisäänrakennettuna 3G- ja 4G-verkkolaitteet puheluja ja datan siirtoa varten, USB-liitin muihin tietokoneisiin liittämistä varten ja Wi-Fi langattoman verkon käyttöön. Toisaalta taas auton lisävarusteena myydyssä puhelimen handsfree-laitteessa voi olla ainoastaan pari näppäintä ja Bluetooth-moduuli laitteen ulkopuolista kommunikointia varten.

Tietokoneissa voi myös olla erilaisia sensoreita, jotka keräävät tietoa ympäristöstä. Ne ovat samanlaisia oheislaitteita muiden joukossa, vaikka tieto kulkeekin vain yhteen suuntaan. Tällaisia ovat esimerkiksi sukellustietokoneiden paineanturit ja urheilukellojen sykemittarit. Älypuhelimissa voi olla valoisuus- ja kiihtyvyysantureita sekä GPS- ja Glonass-satelliittien vastaanottimet. Kiihtyvyysanturin avulla järjestelmä tietää puhelimen asennon ja voi laittaa kuvat oikein päin katsojalle. Satelliittivastaanottimien keräämän tiedon avulla voidaan laskea puhelimen tarkka sijainti missä päin tahansa maapallolla.

Ihmisten kanssa suoritusaikana tapahtuva kommunikointi tehdään siis siihen sopivien oheislaitteiden avulla. Kaikki ihmisen syöttämä tieto siirretään oheislaitteelta (esim. näppäimistö tai hiiri) tietokoneen muistiin, josta ohjelma sen sitten saa käyttöönsä. Vastaavasti kaikki käyttäjälle annettava tieto talletetaan ensin muistiin, josta se sitten kopioidaan käyttäjän haluamalle oheislaitteelle (esim. näytölle tai kovaäänisiin). Kommunikointi muiden tietokoneiden kanssa tapahtuu samalla tavalla käyttäen niille sopivia oheislaitteita (esim. wifi'ä tai bluetooth'ia).

Pääsit aliluvun loppuun! Jatka tästä seuraavaan osaan:

Muistathan tarkistaa pistetilanteesi materiaalin oikeassa alareunassa olevasta pallosta!