Helsingin yliopisto Tietojenkäsittelytieteen laitos
 

Tietojenkäsittelytieteen laitos

Tietoa laitoksesta:

 
Käyttöjärjestelmät S2006 / OSIO 3 (9.11. - 8.12.)
Suomeksi in
English
Tiedostojärjestelmä ja siirräntä

VIIMEINEN PALAUTUSPÄIVÄ: pe 8.12.2006

o TAVOITTEET

Osion tavoitteena on havainnollistaa miten käyttöjärjestemä hallinnoi tiedostojärjestelmää ja miten tiedostojen siirto levyjen ja keskusmuistin välillä tapahtuu.

Avainsanat: I/O menetelmät, laiteriippuva vs. laiteriippumaton siirräntä, tiedostojenhallinta, vapaan levytilan hallinta

oMATERIAALIA

Muuta materiaalia: Tanenbaum A.S.: Modern Operating Systems. 2nd ed. 2001. Luvut 5-6, sivut 269-452. Kirja löytyy myös TKTL:n kirjastosta.

o OPINTOPIIRITOIMINTA

Osion 3 raportti tulee palauttaa kirjallisena joko luennolla tai huoneen D225 vieressä olevaan lokeroon. Raportin voi palauttaa myös luennolla tai harjoituksissa. Viimeinen palautusajankohta on pe 8.12.

Palautettavassa raportissa pitää olla:

o A - OPINTOPIIRITEHTÄVÄ

OSA 1: Tiedostosta luku

Tällä kertaa käyttäjän prosessi haluaa käsitellä tiedostoa JEMMA. Itseasiassa prosessi haluaa ainoastaan lukea tiedostosta yhden tähän tiedostoon tallennetun tavun, mutta kyseessä ei ole tiedoston ensimmäinen vaan vasta 2152. tavu. Käykää läpi kaikki käyttöjärjestelmän, laitteiston ja tiedostojärjestelmän piirteet, jotka tämän tehtävän suorittamiseen osallistuvat ja kertokaa mitä kaikkea järjestelmässä tapahtuu.

Pohtikaa ja perustelkaa millaista tiedoston avausta (eksplisiittinen vai implisiittinen) käytätte. Eksplisiittinen tiedoston avaus tarkoittaa, että ohjelma täytyy erityisellä palvelupyynnöllä pyytää tiedoston avaamista ja sulkemista. Implisiittisessä avauksessa käyttöjärjestelmä avaa tiedoston, kun prosessi käyttää tiedostoa ensimmäisen kerran ja KJ sulkee tiedoston prosessin suorituksen päättyessä.

Muistakaa ottaa kantaa myös hakemistorakenteeseen ja sen käyttöön tiedostoa avattaessa sekä tiedoston käyttötapojen kuvaamiseen. Kertokaa siis millainen on järjestelmänne hakemistorakenne.

Tehtävän yksinkertaistamiseksi käytämme vanhaa FAT (File Allocation Table)-tiedostojärjestelmää tiedostojen tallentamiseksi levylle. Tiedosto JEMMA on siis tallennettu tälle FAT-tiedostojärjestelmää käyttävälle levylle. FAT-tiedostojärjestelmä käsittelee levyä ikäänkuin se olisi jatkuva levyn ulkoreunasta alkava varausyksikköjen (lohkojen) muodostama yksiulotteinen taulukko. Ensin numeroidaan ylimmän levypinnan uloimman uran lohkot, sitten seuraavan levypinnan uloimman uran lohkot jne. Tämän jälkeen numeroidaan ylimmän levypinnan toiseksi uloimman uran lohkot jne.

Levyllä, jonne JEMMA on tallennettu, on kaksi levypintaa (numerot 0 ja 1), kummallakin pinnalla on 80 uraa (numerot 0..79 ulkoapäin lukien). Urat jakaantuvat 18:aan sektoriin (numerot 1..18). Sekä sektorin että lohkon koko on 512 tavua. Levyn alusta on varattu 1 sektori boottitietuetta varten, yhteensä 18 sektoria varaustaululle ja sen kopiolle (FAT, file allocation table) sekä 14 sektoria juurihakemistolle.

Hakemistoalkiossa on tiedostonimen ja attribuuttien lisäksi vain tiedoston ensimmäisen lohkon numero. Loput tiedoston lohkot käyvät ilmi seuraamalla varaustaulussa ylläpidettyä ketjutusta. Tiedoston JEMMA ensimmäinen lohko on varausyksikössä 44, ja varaustaulun sisältö ko. kohdassa:

43:
44: 45
45: 46
46: 50
47:
48:
49:
50: 51
51: 52
52: 60

Kuvatkaa tuo tiedostosta luku ja sen aiheutamat kj:n toiminnot niin yksityiskohtaisesti, että kuvauksesta käy ilmi miltä levypinnalta, uralta ja sektorilta tuo haluttu 2152. tavu löytyy. Pitäkää huoli, että selitys kertoo täsmällisesti miten tarvittava tieto kulkee käyttöjärjestelmän ja levyn välillä.


OSA 2: LEVYN VIKAANTUMINEN

Levyn vikaantuminen on sangen tavanomaista ja kaikilla levyillä on vain tietty käyttöikä. Erilaiset tiedostojärjestelmät toimivat vikaantumisten suhteen eri tavoin. Miettikää mitä tapahtuu toisaalta a) FAT ja toisaalta b) ext3fs tiedostojärjestelmän käytölle, jos vapaata levytilaa osoittava taulu tai linkitetty lista katoaa? Entä jos virhe ilmaantuu vain yhden tiedoston käyttämään osaan levystä? Onko jotain tehtävissä, jotta tiedostoja voidaan käyttää tai levylle vielä turvallisesti kirjoittaa?

o B - ITSEARVIOINTI

Tiimityönä: Pohtikaa ryhmänne toimintaa seuraavien kysymysten valossa. Kirjatkaa pohdintanne raportin yhteyteen.

  • Lyhyt kuvaus ryhmän toiminnasta: montako kertaa tapasitte, miten, osallistuivatko kaikki toimintaa aktiivisesti?
  • Miltä opintopiiritehtävät kurssilla vaikuttivat? Kannattaako niiden käyttöä jatkaa kurssilla?
  • Olisitteko halunneet tutustua jonkun käyttöjärjestelmän toteutukseen kooditasolla?
  • Miten kurssia pitäisi kehittää tulevina vuosina?


Osioon 2 o


Paras kuri - ainoa joka tehoaa - on itsekuri.

Sivu luotu 6.11.2006 Tiina Niklander