Skip to main content
Login | Suomeksi | På svenska | In English

Browsing by Author "Tynkkynen, Tuomas"

Sort by: Order: Results:

  • Tynkkynen, Tuomas (2019)
    Hierarkkiset tiedostojärjestelmät ovat tyypillisin tapa, jolla tietoa voidaan säilöä tietokoneen kiintolevylle tai muuntyyppiseen pysyväismuistiin. Sekä käyttöliittymä että ohjelmointirajapinnat tiedostojärjestelmän käsittelyyn kuuluukin nykyisten käyttöjärjestelmien perustoiminnallisuuksin. Unix-tyyppisissä käyttöjärjestelmissä, kuten Linuxissa, tiedostojärjestelmän käyttö tapahtuu POSIX-standardissa määriteltyjen työkalujen ja rajapintojen avulla. POSIXin tarjoamilla komentorivikomennoilla tiedostoja voidaan muun muassa kopioida, poistaa sekä organisoida hakemistoihin, kun taas sovelluksilla puolestaan on käytettävissä C-kielinen rajapinta. Käyttöjärjestelmän rooliin kuuluu toimia abstraktiona laitteistolle, eikä tiedostojärjestelmä ole tästä poikkeus -- tiedostojärjestelmärajapintoja voidaan käyttää samalla tavoin riippumatta siitä millaista levyjärjestelmää käytetään. Tämän takia monimutkaisemmatkin tietokantajärjestelmät, kuten esimerkiksi SQL-tietokannat käyttävät nykyään usein tiedostojärjestelmää raakojen levykirjoitusten sijaan. Tietokonetta käyttäessä tapahtuu toisinaan erinäisiä järjestelmän kaatumistilanteita, eli järjestelmä on käynnistettävä uudelleen esimerkiksi sähkökatkon tai käyttöjärjestelmävirheen takia. Koska kaatumistilanne voi tapahtua samalla hetkellä kun tiedostojärjestelmä on tekemässä levykirjoituksia, herää kysymys, mitä seurauksia tällä on tiedostojärjestelmän sekä sitä käyttävien sovellusten kannalta. Esimerkiksi levyllä säilytetään käyttäjän datan lisäksi tiedostojärjestelmän omia tietorakenteita, joiden konsistenssi saattaa olla vaarantunut. Toisaalta, POSIX sallii tiedostojärjestelmän käyttää erinäisiä levyvälimuisteja suorituskyvyn parantamiseksi, jotka sovelluskehittäjän täytyy ottaa huomioon kaatumisturvallista sovellusta toteuttaessa. Tässä tutkielmassa tarkastellaan tiedostojärjestelmien kaatumistilanteita molemmista näistä näkökulmista. Sovellusten osalta perehdytään POSIX-standardin tiedostojärjestelmärajapintoihin, sekä miten niitä kuuluu käyttää kaatumisturvallista sovellusta toteutettaessa. Tiedostojärjestelmien osalta tarkastellaan viiden eri tiedostojärjestelmän levytietorakenteita, ja sitä miten ne varautuvat kaatumistilanteisiin.