Mikä on sivuvika?

Sivuvika on toiminto, joka tapahtuu tietokoneessa, jossa on virtuaalimuisti. Tämä tekniikka mahdollistaa kiintolevyn osan lisätä tietokoneen fyysistä muistia. Useimmat sivuviat ilmenevät, kun ohjelma yrittää käyttää kiintolevyn virtuaalimuistitiedostoon tallennettuja tietoja. Tämä on virtuaalimuistin normaali toiminto, ja tietokone reagoi lataamalla tarvittavat tiedot fyysiseen muistiin. Vakavampi kaatumisiin ja tietokonevirheisiin liittyvä sivuvika voi ilmetä, kun ohjelma etsii tietoja muistipaikasta, jota ei ole tai se on suojattu. Syynä voi olla viallinen laitteisto tai huonosti kirjoitettu ohjelmisto.

Nykyaikaiset tietokonejärjestelmät jakavat muistin pienemmiksi paloiksi, joita kutsutaan sivuiksi, ja jokaiselle sivulle pääsee tietyllä osoitteella. Useimmat järjestelmät tukevat myös virtuaalimuistina tunnettua käsitettä, jossa sivut voidaan siirtää tietokoneen fyysisestä hajamuistista (RAM) ja tietokoneen kiintolevylle tallennettuun virtuaalimuistitiedostoon ja tarvittaessa takaisin RAM -muistiin. Tämän monimutkaisen muistinhallintajärjestelmän yksityiskohdat on piilotettu ohjelmistolta; sovelluksella ei ole mitään keinoa tietää, onko tietyn osoitteen sivu ladattu RAM -muistiin vai virtuaalimuistiin. Sivuvika ilmenee, kun ohjelma yrittää lukea tai manipuloida muistin osaa, jota ei ole ladattu RAM -muistiin tai joka sijaitsee odottamattomassa osoitteessa.

Pahasta nimestä huolimatta sivuvirhe on yleensä normaali ja odotettu toimenpide, ja useimmiten käyttäjä ei koskaan huomaa, että vika on tapahtunut. Se on eräänlainen operaatio, joka tunnetaan nimellä “ansa”, mikä tarkoittaa, että vian laukaisevan ohjelman ohjeet siepataan väliaikaisesti tai jäävät loukkuun, kun tietokone tutkii kyseistä muistiosoitetta. Jos osoite on kelvollinen, mutta sitä ei ole ladattu tietokoneen RAM -muistiin, tiedot siirretään kiintolevyn virtuaalimuistitiedostosta fyysiseen muistiin ja ohjelma jatkaa normaalia toimintaa. Tämä tunnetaan nimellä “vaihtaminen sisään” tai “hakeminen sisään”, ja se on yhteistä lähes jokaiselle tietokoneelle käyttöjärjestelmästä tai asennetun RAM -muistin määrästä riippumatta. Liian vähän RAM -muistia aiheuttaa kuitenkin sen, että tietokone sekoittaa jatkuvasti muistisivuja kiintolevyn ja fyysisen muistin välillä, mikä heikentää suorituskykyä.

Sivuvirheen toinen mahdollinen tulos tapahtuu, kun pyydetty muistiosoite todetaan virheelliseksi tai suojatuksi. Tämäntyyppinen virhe, joka tunnetaan myös segmentointivirheenä, voi johtua viallisista muistimoduuleista, viallisista kiintolevyistä tai huonosti toimivasta ohjelmistosta. Ohjelmalle, joka laukaisi vian, lähetetään erityinen signaali, joka yleensä aiheuttaa ohjelman äkillisen lopettamisen. Käyttöjärjestelmästä riippuen vakavimmat sivuviat voivat aiheuttaa tietokoneen käyttöjärjestelmän vikaantumisen, jolloin käyttäjille näytetään salaperäinen Blue Screen of Death (BSoD) tai ytimen paniikkiviesti.