Hyppää sisältöön
    • Suomeksi
    • In English
Trepo
  • Suomeksi
  • In English
  • Kirjaudu
Näytä viite 
  •   Etusivu
  • Trepo
  • Kandidaatintutkielmat
  • Näytä viite
  •   Etusivu
  • Trepo
  • Kandidaatintutkielmat
  • Näytä viite
JavaScript is disabled for your browser. Some features of this site may not work without it.

Ajonaikaiset virheet ja niiden tunnistaminen

Hiipakka, Rami (2023)

 
Avaa tiedosto
HiipakkaRami.pdf (279.7Kt)
Lataukset: 



Hiipakka, Rami
2023

Tietojenkäsittelytieteiden kandidaattiohjelma - Bachelor's Programme in Computer Sciences
Informaatioteknologian ja viestinnän tiedekunta - Faculty of Information Technology and Communication Sciences
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2023-06-06
Näytä kaikki kuvailutiedot
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tuni-202305316369
Tiivistelmä
Käsittelen tässä tutkielmassa tietokoneohjelmien ajonaikaisia virhetiloja. Vikatilassa ohjelma voi kaatua, jonkin toiminnon suoritus voi keskeytyä tai ohjelma voi tuottaa vääriä tuloksia. Vikatilat voivat johtua fyysisen ympäristön aiheuttamista tietokoneen sisäisen tilan odottamattomista muutoksista tai ohjelmoijan tekemistä virheistä.
Perehdyn tutkielmassani pääasiassa erilaisiin tietokoneohjelmien ajonaikaisiin virhetiloihin ja niiden tunnistamiseen kirjallisuuden avulla. Pohdin myös sitä, miksi ohjelmoija saattaa tehdä virheitä ja miten virhe ohjelmoijan kirjoittamassa ohjelmakoodissa voi aiheuttaa vikatilan ohjelmaa ajettaessa. Tutkielman tutkimuskysymys on: Minkälaisia ohjelman tai ohjelmiston ajonaikaisia virheitä on mahdollista esiintyä ja miten ne on mahdollista tunnistaa?
Kuvaan tutkielmassa erityisen virhealttiita ohjelmistorakenteita ja asioita, jotka johtavat ohjelmoijan tekemään virheitä ohjelmakoodin kirjoittamisessa. Yksi karkea virheiden luokittelu on jako muistivirheisiin, rinnakkaisuusvirheisiin ja semanttisiin virheisiin. Muistivirheet ja rinnakkaisuusvirheet ovat myös semanttisia virheitä, mutta semanttisilla virheillä tarkoitetaan usein sellaisia virheitä, joita ei voida luokitella tarkemmin. Rinnakkaisuusvirheet rajoittuvat ohjelmiin, jotka hyödyntävät rinnakkaisuutta. Bittien kääntyminen on yksi esimerkki laitteistotason virhetilanteesta. Miksi bitit laitteen muistissa saattavat kääntyä nollasta ykköseksi tai päinvastoin ja miten se voi vaikuttaa ohjelman toimintaan? Laitteen ja ohjelmiston (esimerkiksi satelliitti) yhdistelmää suunniteltaessa täytyy huomioida bittien kääntymiset.
Ajonaikaisten virhetilojen tunnistaminen on tärkeää. Kuvaan miten bittien kääntymisiä voidaan tunnistaa ja korjata sekä laitteistollisesti että ohjelmallisesti. Kuvaan myös lyhyesti kahta menetelmää, joilla voidaan todeta ohjelman toimivan väärin. Ensimmäinen näistä menetelmistä perustuu ohjelman ajoitusten seurantaan. Toinen perustuu poikkeamiin ohjelman suorituspolussa.
Tutkielmani tulos on katsaus tapahtumaketjuun siitä, miten virheitä syntyy ohjelmiin ja millaisia ajonaikaisia virheitä voi ilmetä sekä miten ohjelman virheellinen toiminta voidaan tunnistaa. Bittien kääntyminen on edelleen ongelma, joka täytyy pitää mielessä erityisesti laitteita suunnitellessa. Muistivirheiden määrä yleensä vähenee ohjelman kehityksen edetessä ja suurempi osa virheistä on semanttisia virheitä. Rinnakkaisuusvirheet riippuvat siitä, onko ohjelmassa käytetty rinnakkaisuutta. Ne ovat erityisen vaikeita tunnistaa ja korjata, koska niitä on usein vaikea toistaa.
Kokoelmat
  • Kandidaatintutkielmat [9156]
Kalevantie 5
PL 617
33014 Tampereen yliopisto
oa[@]tuni.fi | Tietosuoja | Saavutettavuusseloste
 

 

Selaa kokoelmaa

TekijätNimekkeetTiedekunta (2019 -)Tiedekunta (- 2018)Tutkinto-ohjelmat ja opintosuunnatAvainsanatJulkaisuajatKokoelmat

Omat tiedot

Kirjaudu sisäänRekisteröidy
Kalevantie 5
PL 617
33014 Tampereen yliopisto
oa[@]tuni.fi | Tietosuoja | Saavutettavuusseloste