Tietokoneen käytön ja ohjelmoinnin alkeet

Kurssin kotisivulle


1 Tietokone

Tietokone on laite, joka pystyy suorittamaan useita erilaisia ohjelmia. Juuri ohjelmoitavuus tekee tietokoneista tavattoman monipuolisia työkaluja. Toisaalta ilman ohjelmaa tietokone on täysin hyödytön eikä osaa tehdä mitään. Sananlaskun mukaan tietokone on yhtä älykäs kuin sen tyhmin ohjelmoija.

Tietokoneita on nykyisin ympärillämme vähän joka paikassa, vaikka emme sitä usein huomaakaan. Ne ohjaavat monia laitteita kuten mikroaaltouuneja, pesukoneita, digibokseja ja autojen moottoreita. Nämä eivät ole sillä tavoin yleiskäyttöisiä kuin varsinaiset tietokoneet, että niiden ohjelmia voisi muutella mielin määrin. Ainakaan käyttäjä ei pääse niihin käsiksi. Monet digiboksien omistajat ovat kuitenkin huomanneet, että joskus boksi haluaa ladata ohjelman uuden version, jota lähetetään muun signaalin joukossa. Joistakin auton moottoreista on tarjolla eri tehoisia versioita, mutta kustannussyistä ne kaikki valmistetaan täsmälleen samalla tavalla; halvemmissa malleissa tehoa vain rajoitetaan tietokoneen avulla. Lisää tehoa saa ostamalla uuden ohjelman.

Historiaa

On oikeastaan mahdotonta sanoa, kuka keksi tietokoneen ja milloin se keksittiin. Idea ohjelmoitavasta laitteesta on nimittäin ikivanha. Jo antiikin ajan keksijä Heron Aleksandrialainen rakensi erilaisia automaatteja. Tietokoneen edeltäjänä voi pitää automaattista teatteria, jonka laitteiden toimintaa ohjasi pyörivän rummun tappeihin kiedottu köysi. Kyseessä oli siis ohjelma, jota voitiin muuttaa tarpeen mukaan.

Vuonna 1801 ranskalainen Joseph-Marie Jacquard (1752--1834) kehitti kangaspuut, joiden toimintaa ohjattiin rei'itetyillä pahvikorteilla. Kangaspuut kutoivat minkä tahansa korteille lävistetyn kuvion. Vastaavanlaisia laitteita oli rakennettu jo aikaisemminkin, mutta vasta Jacquardin kangaspuissa ohjelmaa voitiin vaihtaa pelkästään reikäkortteja vaihtamalla kajoamatta muuhun laitteistoon.

Englantilainen matemaatikko Charles Babbage (1791--1871) tutustui Jacquardin koneeseen ja innostui kehittämään laitetta, jolla voitaisiin automaattisesti laskea matemaattisia taulukoita. Hän esitteli pienen koelaitteen 1822, mutta lopullisen version valmisti vasta myöhemmin ruotsalainen Georg Scheutz. Ongelmana ei ollut riittävän tarkasti työstettyjen osien valmistaminen, kuten joskus on väitetty, vaan Babbagen ajatusten nopea lento. Hän alkoi jo suunnitella paljon mutkikkaampaa laitetta, jota voitaisiin ohjata korteilla Jacquardin kangaspuiden tapaan. Uusikin laite jäi idea-asteelle, mutta se innosti runoilija Byronin tytärtä Ada Lovelacea (1815--1852), joka teki kirjoituksillaan Babbagen ajatuksia tunnetuiksi. Vaikka ohjelmoinnin idea on peräisin jo antiikin ajoilta, Lady Ada kehitti ohjelmoinnin periaatteita edeltäjiään paljon pitemmälle. Hän esitti mm. ajatuksen silmukasta, rakenteesta, jota toistetaan useita kertoja. Babbagen ja Lady Adan ajatuksissa esiintyi jo monia nykyaikaisille tietokoneille ominaisia piirteitä.

Kuten Babbagen suunnitelmat osoittivat, tietokone voitaisiin toteuttaa pelkästään mekaanisena laitteena. Sellainen on kuitenkin teknisesti mutkikas, kuluttaa paljon energiaa ja toimii hitaasti. Tietokoneiden kehitys pääsikin vauhtiin vasta, kun mekaaniset osat korvattiin sähköisillä piireillä. Ensimmäiset sähkötoimiset reikäkortteja käyttävät laitteet kehitti Herman Hollerith (1860--1929) 1800-luvun lopulla. Vuosikymmenien mittaan niistä kehittyi yhä mutkikkaampia laskulaitteita, mutta ne eivät vielä olleet yleiskäyttöisiä tietokoneiden tapaan. Hollerithin keksintöjen pohjalta syntyi myöhemmin IBM-yhtiö.

John Atanasoff rakensi 1939 sähköllä toimivan laskulaitteen lineaaristen yhtälöryhmien ratkaisemiseksi. Sitä voi jo pitää tietokoneen esiasteena, vaikkei se ollutkaan vapaasti ohjelmoitavissa.

Yhdysvalloissa tietokoneiden teoriaa kehitti erityisesti John von Neumann (1903--1957). Hänen mukaansa nykyisten koneiden rakennetta kutsutaan von Neumannin arkkitehtuuriksi, vaikka monet muutkin osallistuivat työhön. Oleellinen ajatus on, että ohjelma ja sen käyttämät tiedot sijaitsevat samassa muistissa. Itse asiassa minkä tahansa muistipaikan sisältö voidaan tulkita joko dataksi tai suoritettavaksi käskyksi.

Tietokoneita kehitettiin myös Englannissa, jossa alan merkittävin tutkija oli Alan Turing (1912--1954). Turing esitti teoreettisen Turingin koneen ja osoitti sen avulla, mitä kaikkea tietokoneilla voidaan ylipäätään laskea. Yhdysvalloissa suunniteltiin laitteita, joissa oli monenlaisia eri tehtäviin erikoistuneita osia; Turingin ajatuksena sen sijaan oli pitää laitteisto mahdollisimman yksinkertaisena ja toteuttaa mutkikkaammat toimenpiteet ohjelmien avulla. Tässä mielessä hän ennakoi 1980-luvun RISC-arkkitehtuuria (Reduced Instruction Set Computer, laite, jonka käskyvalikoima on hyvin suppea).

Ensimmäisissä sähkökäyttöisissä tietokoneissa käytettiin tyhjiöputkia, niitä samoja, joita oli radioissa ja televisioissa aina 1950-luvulle saakka. Puolijohdetekniikkaan perustuvat transistorit mullistivat tietokonetekniikan 1960-luvulla. Putkilla on kohtalaisen lyhyt elinikä, ja kun tietokoneessa saattoi olla tuhansia putkia, niitä jouduttiin vaihtamaan vähän väliä. Transistorit ovat lähes ikuisia, putkia paljon pienempiä, kuluttavat vain vähän energiaa ja toimivat nopeammin.

Seuraava kehitysaskel oli siirtyminen erillisistä komponenteista integroituihin piireihin, joissa yhteen elementtiin on pakattu suuri määrä transistoreja ja muita komponentteja.

Tietokoneen rakenneosat

Tietokoneita on hyvin monenlaisia, mutta periaatteessa useimmissa niistä on tietyt samat rakenneosat.

Keskusmuisti. Muisti on varasto, johon ohjelma talletetaan. Muistia käytetään myös ohjelman tarvitsemien ja laskemien tietojen tallettamiseen sekä työtilana. Muisti koostuu muistipaikoista, joista kullakin on yksikäsitteinen osoite.

Keskusyksikkö (central processing unit, CPU). Keskusyksikkö huolehtii ohjelman suorituksesta. Joskus siinä erotetaan kaksi osaa: ohjausyksikkö ja aritmeettinen yksikkö.

Ohjausyksikkö tulkitsee muistissa olevia käskyjä ja suorittaa niiden edellyttämät toimenpiteet. Yksikössä on osoiterekisteri, jonka sisältö kertoo, missä muistipaikassa on seuraavaksi suoritettava ohjelman käsky. Osoitteiden laskemista varten yksikössä voi olla myös useita indeksirekistereitä.

Aritmeettinen yksikkö suorittaa laskutoimituksia. Yleensä laitteistotasolla on toteutettu ainakin yhteen-, vähennys-, kerto- ja jakolasku. Yksikkö suorittaa myös vertailuja ja loogisia operaatioita. Laskutoimituksia varten yksikössä on yksi tai useampia rekistereitä.

Oheislaitteet. Jotta tietokone voisi kommunikoida ulkomaailman kanssa, tarvitaan oheislaitteita, kuten näppäimistö ja näyttö. Muistiin mahtuu vain pienehkö määrä tavaraa, joten suurempien tietomäärien säilyttämiseen on oltava muita välineitä. Lähes kaikissa yleiskäyttöisissä koneissa on kiintolevy (jonka sisällä on itse asiassa pyörivä levy), jolle mahtuu hyvin paljon enemmän tietoa kuin keskusmuistiin.

Kiintolevyjen lisäksi koneeseen voidaan liittää monenlaisia taltiointivälineitä. Tietoa voidaan tallettaa levykkeille, CD- ja DVD-levyille tai muistitikuille. Näiden avulla tietoja voidaan myös siirtää laitteelta toiselle. Tällaisten taltioiden kapasiteetti kasvaa jatkuvasti ja samalla kehitellään yhä uudenlaisia laitteita. Tästä on sellainen ikävä seuraus, että laitteet vanhenevat nopeasti, ja vuosia sitten tehtyjä tallenteita ei ehkä enää pystytäkään lukemaan.

Muisti

Useimmissa koneissa muisti on jaettu tavuihin (byte). Tavu on silloin pienin yksikkö, jolla on osoite. Osoite on kokonaisluku, joka ilmaisee tavun paikan joko muistin alun suhteen (absoluuttinen osoite) tai esimerkiksi ohjelman alun suhteen (suhteellinen osoite).

Tavu sisältää 8 bittiä (bit < binary digit) eli 2-järjestelmän numeroa (0 tai 1). Yhdellä tavulla voidaan siten esittää 28=256 erilaista kokonaislukua.

Tavuja voidaan edelleen ryhmitellä sanoiksi (word), joissa voi olla esimerkiksi 2, 4 tai 8 tavua. Yhden sanan avulla voidaan esittää suurempia kokonaislukuja tai reaalilukuja. Lukujen esitystapoja käsitellään seuraavassa luvussa.

Muistin määrä ilmoitetaan yleensä tavuina. Yksikkö voi olla kilotavuja (KB, kilobyte), megatavuja (MB) tai jopa teratavuja (TB). Koska tietokoneissa käytetään 2-järjestelmää, muistin määrä on usein jokin kakkosen potenssi tai sellaisen kerrannainen. Niinpä kilo ei tässä yhteydessä yleensä tarkoita tasan tuhatta vaan lukua 1024.

Muisti voidaan toteuttaa fyysisesti useilla eri tavoilla. Oleellisin ero on, säilyykö muistin sisältö vai tuhoutuuko se, kun virta katkaistaan. Keskusmuisti on tavallaan tilapäistä työtilaa, joten on luonnollista, että sen sisältö häviää, kun laite sammutetaan.

RAM (random access memory eli hajasaantimuisti) on yleisnimitys muistille, josta tietoa voidaan hakea mistä kohtaa tahansa. Tietokoneen keskusmuisti on tätä tyyppiä.

ROM (read-only memory) on muisti, jonka sisältöä ohjelma ei voi muuttaa. Tieto tallennetaan muistiin erityisellä laitteistolla, minkä jälkeen se säilyy muistissa vaikka virta katkaistaisiin. Esimerkiksi monien kodinkoneiden ohjausjärjestelmät ovat ROM-muistissa, koska niiden täytyy säilyä muuttumattomina.

Virtuaalimuisti

Keskusmuistin täytyy toimia nopeasti. Kun keskusyksikkö tarvitsee tietoa muistista, tieto on saatava siirretyksi mahdollisimman lyhyessä ajassa. Tämän nopeusvaatimuksen takia keskusmuisti on suhteellisen kallista. Niinpä sen määrä ei ole mitenkään valtavan suuri. Tosin muistipiirien hinta laskee koko ajan ja samalla keskusmuistit kasvavat yhä suuremmiksi.

Joka tapauksessa ohjelma voi tarvita tilaa enemmän kuin muistissa on käytettävissä. Ratkaisu ongelmaan on virtuaalimuisti (virtual memory).

Ohjelma ja sen tarvitsemat tilat jaetaan yleensä sivuiksi (page). Käytössä on ollut muitakin menetelmiä, kuten muistin jakaminen ohjelman ja sen työtilojen tilatarpeiden mukaisiin eri kokoisiin segmentteihin. Tämä vastaa paremmin ohjelman logiikkaa, mutta on vaikeampi toteuttaa ja siksi usein hitaampi kuin raaka jako samankokoisiin sivuihin.

Muistisivut ovat aluksi levyllä, jossa tilaa on paljon enemmän kuin keskusmuistissa. Sivuja noudetaan levyltä muistiin sitä mukaa kuin niitä tarvitaan. Kun muisti täyttyy, kauimmin käyttämättä olleita sivuja siirretään takaisin levylle. Näin pienenkin keskusmuistin avulla voidaan suorittaa mielivaltaisen suuria ohjelmia.

Kun ohjelma tarvitsee sivua, joka ei ole muistissa, tapahtuu sivunpuutoskeskeytys (page fault interrupt). Ohjelma pysäytetään siksi aikaa, kun sivua haetaan levyltä, ja sillä aikaa keskusyksikkö voi puuhailla jotakin muuta eli käytännössä suorittaa jotakin toista ohjelmaa.

Sivunpuutoskeskeytykset vievät aikaa ja hidastavat ohjelman toimintaa. Paljon muistia vaativissa tehtävissä tämä on otettava huomioon ja pyrittävä muotoilemaan ohjelma niin, että keskeytyksiä tapahtuu mahdollisimman vähän. Asiaa käsitellään tarkemmin numeeristen menetelmien kurssilla.

Välimuisti

Keskusmuistin ja keskusyksikön välillä siirretään koko ajan tietoa. Tätä tiedonsiirtoa kuljettava väylä muodostuu helposti pullonkaulaksi, joka hidastaa suoritusta. Tätä pullonkaulaa voidaan avartaa välimuistilla (cache).

Välimuisti on tavallista muistia nopeampaa ja siten myös kalliimpaa. Hyvin usein muistiviittaukset kohdistuvat peräkkäisiin osoitteisiin, joten saman tien kannattaa hakea myös muutamien seuraavien muistipaikkojen sisällöt välimuistiin, josta ne ovat nopeasti saatavilla.

Välimuisti on jatkoa virtuaalimuistin idealle. Tieto on hitaassa keskusmuistissa, josta sitä noudetaan tarpeen mukaan sopivina palasina nopeaan välimuistiin.

Levyt

Kiintolevy tai kovalevy (hard disk) on oleellinen osa jokaista varsinaista tietokonetta. Se on laite, jolle voidaan tallettaa paljon enemmän tietoa kuin keskusmuistiin, ja tieto säilyy vaikka tietokone sammutetaan. Levyjen tallennuskapasiteetit ja siirtonopeudet ovat jatkuvasti kasvaneet vaikka hinnat ovatkin samalla laskeneet.

Levyssä on nimen mukaisesti pyöreä pyörivä levy tai useampia päällekkäin olevia levyjä. Levyjen pinnat ovat magnetoituvia. Luku/kirjoituspää voi lukea pinnan magnetoinnin tilan tai muuttaa sitä.

Paikka levyllä voidaan ilmoittaa samaan tapaan kuin sylinterikoordinaatistossa. Ura (track) on levyn pinnalla oleva ympyrärenkaan muotoinen alue, jonka pisteet ovat samalla etäisyydellä levyn pyörimisakselista. Jos samalla akselilla on useita levyjä, niiden samansäteiset urat muodostavat sylinterin (cylinder). Tietyssä suunnassa oleva uran (tai sylinterin) osa on sektori (sector).

Lukupäitä voi olla yksi tai useampia kutakin levypintaa kohti. Niitä on kuitenkin vähemmän kuin levyllä uria, joten halutun uran lukemiseksi lukupää on siirrettävä oikeaan paikkaan. Sen jälkeen on odotettava, että levy pyörähtää oikeaan asentoon niin, että haluttu tieto on lukupään kohdalla. Näistä liikkeistä aiheutuu viivettä, minkä vuoksi saantiaika (access time) levyltä on paljon pitempi kuin muistista.

Levyn haittapuoli on, että se on mekaaninen laite, jossa on liikkuvia osia. Levy pyörii suurella nopeudella ja lukupää heiluu kuin heinämies aivan sen pinnan lähellä. Tämän voi usein kuulla levyasemasta kuuluvana rapinana. Lopulta tällainen koje tulee väistämättä tiensä päähän. Pahimmassa tapauksessa lukupää osuu levyn pintaan ja raapii sen pilalle. Koskaan ei kannata luottaa siihen, että levylle talletetut tiedot ovat tallessa vielä huomennakin.

RAID (Redundant Array of Independent Disks) on useammasta levyasemasta koostuva yksikkö. Tiedosto voidaan hajauttaa useammalle fyysiselle levylle, jolloin saantiaika lyhenee. Tavallisemmin nimitystä käytetään kuitenkin järjestelmästä, jossa tieto talletetaan esimerkiksi kahteen kertaan niin, että se ei tuhoudu yhden levyaseman rikkoutuessa.

Tiedostojen koolla on taipumus kasvaa. Ohjelmat kehittyvät yhä mutkikkaammiksi ja suuremmiksi. Digitaalikamerat tuottavat yhä tarkempia kuvia, jotka vievät yhä enemmän tilaa. Tieteellisissä tutkimuksissa käsitellään yhä suurempia aineistoja. Niinpä levytilan tarve kasvaa aina vain. Kun aikoja sitten Suomeen oltiin hankkimassa ensimmäistä supertietokonetta ja joku kysyi Crayn myyntimieheltä, miten suurta levykapasiteettia hän suosittelee, vastaus tuli salamannopeasti: "Twice as much as you can afford".

Liitännät

Tietokoneisiin voidaan liittää oheislaitteita monilla eri tavoilla ja uusia standardeja syntyy koko ajan. Tämä on kieltämättä ongelma, sillä tietokoneesta hajoaa yleensä vain jokin osa kerrallaan, mutta vielä toimivia ja uusia komponentteja ei enää ehkä pystytäkään liittämään yhteen.

Sarjaväylän kautta tietoa siirretään bitti kerrallaan. Sarjaporttiin liitettävässä kaapelissa on tavallisesti vain kolme lankaa, mutta silti liittimessä voi olla useampia nastoja.

Rinnakkaisväylän kautta tietoa siirtyy useita bittejä rinnakkain, esimerkiksi merkki kerrallaan. Tietokoneen sisäisissä väylissä käytetään yleensä rinnakkaista tiedonsiirtoa. Ulkoisista laitteista tyypillisesti kirjoittimien liitäntään on käytetty rinnakkaisportteja.

RS-232 on jo 1960-luvun lopulla esitetty sarjallisen tiedonsiirron standardi. Sitä on käytetty paljon esimerkiksi tietokoneen ja modemien välillä. Kaapelin päissä voi olla 9- tai 25-napaiset D-liittimet, muta lankoja on tavallisesti paljon vähemmän, usein vain kolme. Tietokoneen tai päätteen liitin on tavallisesti koiras ja modeemin naaras. Muille laitteille vastaavia sääntöjä ei ole, mikä on johtanut melko sekavaan tilanteeseen, kun kaapelin kummassakin päässä voi olla mikä tahansa neljästä tai useammasta erilaisesta liittimesstä.

ATA (Advanced Technology Attachment) on standardi PC-koneiden laitteiden liittämiseksi. IDE (Integrated Device Electronics) on 1986 alkunsa saanut standardin toteutus, jota on myöhemmin laajennettu eri tavoin. IDE-väylää käytetään erityisesti tietokoneen sisäisten kiintolevyjen ja CD-asemien liittämiseen. Liitäntä tapahtuuu 40 johtimen lattakaapelilla. Samaan kaapeliin voidaan liittää korkeintaan kaksi eri laitetta.

SATA (Serial ATA) on edellisestä kehitetty sarjaliitäntä, jossa tarvitaan vain 7 johdinta. Nopeus 3 gigabittiä sekunnissa, tulossa 6 Gb. SATA on hyvää vauhtia korvaamassa ATAn.

SCSI (Small Computer System Interface) on 1986 standardoitu tapa liittää oheislaitteita. SCSI-väyliä on sittemmin käytetty runsaasti kaikenkokoisissa laitteistoissa. Pienkoneissa sen käyttö on kuitenkin vähentynyt halvempien ratkaisujen yleistyessä. SCSI-laitteita voidaan liittää peräkkäin ketjuksi. Laitteessa on kaksi liitintä, joista toinen yhdistetään edelliseen laitteeseen tai tietokoneeseen ja toinen seuraavaan laitteeseen. Ketjun viimeisenä olevan laitteen toiseen liittimeen tarvitaan vielä erillinen terminointikappale. Laitteet erotetaan toisistaan niille annettavien loogisten laitenumeroiden perusteella. Numero valitaan laitteessa olevien kytkimien tai jumpperien avulla.

USB (Universal Serial Bus) on alunperin PC-koneille kehitetty sarjaliitäntästandardi, joka julkaistiin 1996 ja on sittemmin yleistynyt myös muissa laitteistossa. USB on yleiskäyttöinen liitäntä, jota voidaan käyttää kaikenlaisissa oheislaitteissa hiirestä ja näppäimistöstä ulkoisiin levyasemiin ja tulostimiin. Tietokoneen sisäisenä väylänä käytetään yleensä jotakin muuta, nopeampaa väylää, kuten IDE tai SCSI. USB-laitteita voidaan liittää ja irrottaa tarvitsematta käynnistää tietokonetta uudelleen. Pienet laitteet saavat tarvitsemansa virran USB-kaapelin kautta, joten erillistä virtajohtoa tarvitaan vain, jos laitteen virran tarve on vähäistä suurempi. Monien vanhempien standardien mukaiset liittimet ovat isoja ja täynnä helposti vääntyviä piikkejä, ja kiinnittämiseen saatetaan tarvita ruuvimeisseliä. USB-liittimet on suunniteltu kestämään paremmin toistuvaa irrottamista ja liittämistä.

Firewire on alkuaan Applen 1990 kehittämä sarjaliitäntästandardi, jolla korvattiin kalliimpi SCSI-väylä. Se on yleistynyt myös PC-koneissa USB-väylän rinnalla. Etuna on suurempi siirtonopeus. Lisäksi eri laitteet voivat kommunikoida keskenään ilman tietokoneen apua.

Bluetooth on langattoman tiedonsiirron standardi. Kommunikointi tapahtuu 2.45 GHz:n radiotaajuusalueella. Kaistoja on useita ja kaistaa voidaan vaihtaa nopeasti, etteivät eri lähetykset häiritse toisiaan. Menetelmää on käytetty erityisesti matkapuhelimissa, mutta se on yleistynyt hyvin monenlaisiin laitteisiin.

Taltiot

Vanhimmat kirjoitetut tekstit ovat säilyneet lukukelpoisina tuhansia vuosia. Tietokoneissa käytettävät taltiot sen sijaan vanhenevat paljon nopeammin, muutamassa vuosikymmenessä.

Jacquardin kangaspuissa ja Hollerithin koneissa käytettiin lävistettyjä reikäkortteja. Lopulta reikäkortin muoto ja koodaus standardoitiin ja kortit olivat käytössä aina 1980-luvulle. Sen jälkeen kortinlukijat katosivat, eikä vanhoja korttipakkoja pysty enää lukemaan juuri missään. Taltiona kortti oli sikäli turvallinen, että vain tulipalo tai vesivahinko saattoi hävittää tietoa. Haittana oli suuri tilan tarve: yhdelle kortille mahtui vain 80 merkkiä, joten nykyisen mittapuun mukaisten ohjelmien tallettamiseen olisi tarvittu hyllymetreittäin korttilaatikoita. Toinen haitta oli tietojen hankala päivitettävyys: yhdenkin merkin muutos vaati koko kortin uusimista.

Reikänauha oli vastaavanlainen taltio. Se oli kapea paperinauha, johon merkit koodattiin lävistyksillä. Tieto mahtui pienempään tilaan kuin kortteja käytettäessä, mutta päivittäminen oli vielä hankalampaa. Nauhaa ei voinut muuttaa, vaan pienenkin korjauksen takia se oli lävistettävä kokonaan uudestaan.

Erilaiset magneettiset taltiot ovat paljon kätevämpiä: pieneen tilaan mahtuu paljon tietoa, ja vanhentuneet tiedot voidaan pyyhkiä pois ja korvata uusilla.

Suurissa tietokoneissa on käytetty magneettinauhoja. Pisimpien nauhojen pituus oli 2400 jalkaa ja suurin tallennustiheys 6250 merkkiä tuumalle, mistä voi laskea, että yhden nauhan kapasiteetti oli korkeintaan 180 MB. Tieto talletetaan nauhalle kuitenkin paloina, joiden välissä on tyhjää tilaa. Näitä välejä tarvitaan laitteiston mekaanisen toiminnan takia. Niinpä todellinen kapasiteetti oli korkeintaan luokkaa 140 MB.

Magneettinauhoja on käytetty myös erilaisissa kasettijärjestelmissä. Ensimmäiset kotitietokoneet käyttivät tavallisia C-kasetteja tietojen tallentamiseen.

Hieman C-kasettia pienempiä ovat DDS- ja DAT-nauhat, joita on käytetty paljon mm. pienten koneiden levyjen varmuuskopiointiin. Ensimmäisten nauhojen pituus oli 60 tai 90 metriä ja kapasiteetti 1.3 tai 2 GB. Uudemmissa versioissa kapasiteetti on muutamia kymmeniä gigatavuja.

Nauhoilla on kaksi ongelmaa, jotka johtuvat magnetoinnin leviämisestä. Tieto on nollina ja ykkösinä eli magnetoitumattomina ja magnetoituneina kohtina. Magneettikenttä leviää vähitellen naapuribittien alueelle, ja alkuaan täsmällisten pulssien muoto muuttuu epämääräiseksi. Lopulta nollia ja ykkösiä on vaikea erottaa toisistaan. Tämä ongelma koskee kaikkia magneettisia taltioita. Toinen ongelma on tyypillinen nauhoille. Magneettikenttä vaikuttaa myös nauhan edelliseen ja seuraavaan kerrokseen. Ilmiön voi havaita kauan säilytetyillä ääninauhoilla, joilla esiintyy vastaavaa läpikuulumista. Näiden ongelmien vuoksi laskentakeskuksissa arkistointiin käytetyt nauhat oli kopioitava muutamien vuosien välein. Käyttäjien omiin hyllyihinsä varastoimille nauhoille tällaista kopiointia ei yleensä tehty, ja seurauksena saattoi olla aineistojen muuttuminen vähitellen käyttökelvottomiksi.

Kaikkia magneettisia taltioita uhkaavat myös ulkoiset sähkö- ja magneettikentät.

Erilaiset levykkeet ovat kovalevyjen pehmoversioita. Niissä läpikuuluminen on vähäistä, mutta magneettikentän diffusoituminen heikentää niidenkin laatua ajan mittaan, ja ne ovat myös alttiita ulkoisille magneettikentille.

Ensimmäiset levykkeet olivat puolikkaan A4-arkin kokoisia, ja niille mahtui tietoa 256 kilotavua. Niitä seurasivat hieman pienemmät PC-koneiden levykkeet eli lerput, joiden kapasiteetti oli 512 kilotavua. Sitten tulivat tukevammat korput, joille tietoa mahtui jo megatavun verran. Viimeksimainittuja on edelleen käytössä, mutta ennen pitkää nekin kadonnevat, joten korpuilla olevat tiedot kannattaa jo kopioida muille taltioille, mikäli levykkeet ovat vielä luettavissa.

Uudempi levykeversio on zip-levyke, jolle mahtuu joko 100 tai 200 megatavua. Aikaisemmin käytetiin kirjoitinporttiin liitettäviä zip-asemia, mutta sittemin niiden tilalle ovat tulleet USB-zipit. Näiden etuna on, etteivät ne tarvitse erillistä virtalähdettä, vaan saavat tarvitsemansa virran USB-kaapelin kautta.

CD-levyjä luetaan optisesti. Kapasiteetti on 650 tai 700 megatavua. Niiden kestävyys on hieman epäselvä asia. Musiikki-CD-levyjä on ollut markkinoilla pari vuosikymmentä, ja vanhimmatkin toimivat vielä. Kotitietokoneella CD-levyn kirjoitus tapahtuu kuitenkin eri tavalla, ja niiden säilyvyys on huonompi. CD-R-levyt voidaan kirjoittaa vain kertaalleen, CD-RW-levyt useampaan kertaan.

DVD-levyllä tallennustiheys on paljon suurempi: yhdelle levylle mahtuu 4.7 GB. Nykyisin lähes kaikki tietokoneet osaavat käsitellä CD- ja DVD-levyjä.

Uusimpia tulokkaita ovat muistitikut, joiden kapasiteetti voi olla useita gigatavuja. Ne kiinnitetään suoraan USB-porttiin ilman mitään kaapeleita, joten ne ovat todella vaivattomia käyttää.

Alalla on selvä varustelukierre, josta hyötyvät laite- ja ohjelmistovalmistajat ja jonka maksajia ovat käyttäjät. Ohjelmat ja data vievät yhä enemmän tilaa, jolloin tarvitaan yhä suurempia taltioita. Niitä varten kehitellään yhä uudenlaisia liitäntöjä, jolloin vanhat laitteet jäävät käyttökelvottomiksi. Laitteet vanhenevat vuosikymmenen tai korkeintaan parin aikaskaalassa, minkä jälkeen tiedot on kopioitava uudelle, entistä tehokkaammalle taltiolle.

Laskentateho

Tietokoneen suorituskykyä voidaan mitata erilaisilla mittareilla. Miten tahansa mitattuna tietokoneiden nopeus on koko ajan vain kasvanut, mutta erilaisten laitteiden vertailu ei ole aivan yksinkertaista.

Tietokoneen käskyjen suoritusnopeuden yksikkö on MIPS (million instructions pr second), joka kertoo kuinka monta miljoonaa käskyä kone suorittaa sekunnissa. Erilaisten laitteiden arvot eivät ole vertailukelpoisia, sillä käskyt voivat olla hyvin erilaisia. Jossakin laitteistossa neliöjuuri voidaan laskea yhdellä konekäskyllä, toisessa siihen tarvitaan kymmeniä käskyjä.

Tieteellisen laskennan kannalta kiinnostavampi yksikkö on flops (floating-point operations per second), joka ilmoitta, kuinka monta reaalilukujen peruslaskutoimitusta (+, --, *, /) suoritetaan sekunnissa. Tämänkin kanssa on oltava varovainen, sillä teho riippuu paljon siitä, miten ohjelma on kirjoitettu. Jos halutaan etsiä parasta laitteistoa, on syytä valita joukko ohjelmia, joita laitteistolla tullaan tyypillisesti suorittamaan, ja ajaa sitten täsmälleen samat ohjelmat samoilla syöttöaineistoilla kaikilla vertailtavilla laitteistoilla. Näin on mahdollista saada edes jotenkin tehtävän kannalta vertailukelpoisia lukuja.

Mooren lain mukaan integroituun piiriin mahtuvien transistorien määrä kaksinkertaistuu kahdessa vuodessa. Sama pätee karkeasti ottaen myös tallennuskapasiteettiin ja tietokoneiden laskentanopeuteen. Nykyiset kannettavat koneet hakkaavat jo vanhat superkoneet. Samalla kuitenkin ohjelmiin lisätään yhä uusia piirteitä (joita useimmat eivät tarvitse), jolloin niistä tulee yhtä raskaampia. Ohjelmat ulosmittaavat saavutetun edun, uudet ohjelmat eivät toimi vanhassa käyttöjärjestelmässä, uusi käyttöjärjestelmä taas on liian hidas vanhassa koneessa ... ja kierre jatkuu.