Toteutuskatsaus

ITKA203 Käyttöjärjestelmät -kurssin Demo 7c keväällä 2014. "Toteutuskatsaus"

Paavo Nieminen, paavo.j.nieminen@jyu.fi

Jyväskylän yliopiston tietotekniikan laitos.

Contents

Mistä tässä harjoitteessa on kyse

Harjoituksen tavoitteet:

  • Otat kosketusta oikean käyttöjärjestelmän oikeaan koodiin.
  • Totuttelet lukemaan toisten tekemää koodia (IT-alan metataito).
  • Ehkäpä (toivottavasti) havaitset, kuinka tämä pieni kurssimme on (toivottavasti) antanut joitain pieniä, alustavia, pohjia ymmärtää edes jotakin oikean käyttöjärjestelmän toteutuksellisista yksityiskohdista.

Joissakin korkeakouluissa otetaan bottom-up -lähestymistapa, jossa toteutetaan itse pieni käyttöjärjestelmä. Andrew S. Tanenbaumin oppikirjassa aikoinaan esimerkkinä ollut "koeputkikäyttöjärjestelmä" Minix on ollut pohjana ainakin Linuxin ensimmäisille versioille. Omalla kurssillamme katsotaan kuitenkin käyttöjärjestelmien teoriaa ja käytäntöä läpileikkauksena ja jonkinlaisena ohjattuna läpikävelynä. Tässä harjoitteessa ihmetellään ajankäytöllisten rajoitteiden puitteissa jotakin palasta olemassa olevasta koodista ja yritetään sitä kautta hahmottaa miltä todellinen toteutus voisi näyttää. Millään tapaa kurssiin käytössä oleva aikaikkuna ei riitä syventymiseen, vaan tarkoituksena on toivon mukaan näyttää lähtökohtia ja työkaluja omatoimiseen syventymiseen, mikäli sellainen jotakuta alkaisi kiinnostaa pidemmän päälle. Lisämotivaatioksi tarjotaan lisäpiste tenttiin.

Tutkittavien kohteiden valinta oli palautusmuodon määrittelyn lisäksi suuri haaste tällaisen tehtävän julkaisussa.. en tiedä onnistuiko tämä ekalla kertaa laisinkaan... Tavoitteena oli, että valittavana olisi suurin piirtein saman kokoista ja/tai tasoista koodia sopivan kokoinen palanen eri aihealueista. Keväällä 2014 yritin parhaani mukaan varmistua, että ehdotetut koodinpätkät ovat relevantteja käytännön toteutuksen tai sovellusten kannalta. Prosessissa jouduin selaamaan koodia loppujen lopuksi aika paljon, ja jouduin toteamaan, että todellisuus pystyy olemaan aika paljonkin monimuotoisempi kuin miltä se pelkistetyissä oppikirjaesimerkeissä näyttää. Arvostaisin palautetta ja parannusehdotuksia tulevia kurssikertoja varten!

Vaatimukset

Tehtävässä tutustut käytössä olevaan avoimena lähdekoodina tuotettuun käyttöjärjestelmään yleisellä tasolla sekä yhteen yksityiskohtaan syventyen.

Palautuksena on määrämuotoinen tiivistelmä ja oppimisdokumentaatio tekstitiedostona.

Käytä hyödyksesi seuraavia:

Valitse tutkittavaksesi yksi seuraavista kohteista (tiedostoista / funktioista / tietorakenteista). Heitä vaikka arvalla ja hylkää, mikäli arvottu aihepiiri ei kiinnosta tai tuli kohde, joka on arvioitu liian hankalaksi/pitkäksi (merkkasin "level 2" tai "level 3", jos jouduin itse kahlaamaan kovinkin paljon oheismateriaalia).

Vapaaehtoinen palautustehtävä (1p)

Tästä demosta saa bonuspisteen, mikäli Optima-järjestelmän palautuskansioon on palautettu seuraavanlainen vastaus: