|
PALAUTE Osion 3 raportit ovat jaossa huoneessa C127. samassa tilassa on kurssimappeja ja laskaripapereita jaossa. Laitan lokeron takaseinän kirjahyllyyn. Noutakaa sieltä omanne. Arvioidut raportit tulevat sinne arviointiprosessin edetessä. Kaikki raportit pyritään arvioimaan ja palauttamaan lokeroon viimeistään tiistaina, jotta ainakin keskiviikkopäivä jää vielä aikaa tarkastella niitä ennen tenttiä.
TAVOITTEET
Tutustumme prosesseihin ja
säikeisiin, niiden hallintaan sekä vuorottamisen perusideaan.
Tutustumme siirrännän
perustekniikoihin sekä pohdimme kaikkeen siirräntään oleellisesti
liittyvää puskurointia.
Selvitämme kuinka
tiedostojärjestelmä voidaan toteuttaa ja kuinka prosessi käyttää
tiedostoja.
Avainsanat: prosessi, säie, prosessin kuvaaja (PCB), säikeen kuvaaja TCB, prosessin/säikeen tilat, I/O menetelmät, laiteriippuva vs. laiteriippumaton siirräntä, tiedostojenhallinta, vapaan levytilan hallinta.
OPPIKIRJAN TEKSTI
LUENTOKALVOT sekä MUUTA MATERIAALIA
Muuta materiaalia: Tanenbaum A.S.: Modern Operating Systems. 2nd ed. 2001. Sivut 71-94, 269-300, 399-408, 445-448. Kirja löytyy myös TKTL:n kirjastosta.
HARJOITUKSET, KOHDAT A-C
Ennen ryhmän tapaamista: Tutustu huolellisesti kaikkiin tehtäviin. Pohdi niitä jo itseksesi ja kirjaa ylös tehtäviin liittyviä ajatuksia, tuloksia, ongelmia ja pulmia. 1. tapaaminen: Käykää yhdessä läpi tehtävät ja pohtikaa mitä tiedätte asiasta, mitä tietoja vielä tarvitsisitte, jne. Ohjaaja on tapaamisessa käytettävissä, mutta ei ratko tehtävää puolestanne. Hän voi ohjata ryhmäänne oikeaan suuntaan, jos tuntuu, että olette ihan eksyksissä. Osion aikana: Tapaamisten välillä voitte järjestää oman tapanne kommunikoida keskenänne: tapaamiset laitoksella, sähköposti, irc, webCT (jos joku haluaa sitä käyttää, niin ottakaa yhteyttä luennoijaan). Laatikaa raporttinne 2. tapaamiseen mennessä. 2. tapaaminen: Ryhmät esittelevät raporttiensa sisältöjä muille ryhmille. 2. tapaamisen jälkeen: Jos on tarvetta vielä täydentää tai muokata ryhmän raporttia, niin tämä on mahdollista tapaamisen jälkeen. Tähän on varattu korkeintaan kaksi päivää, koska raporttien on tarkoitus olla valmiina jo 2. tapaamisessa. |
Osion 1 raportti (kohdat A-C) tulee palauttaa kirjallisena joko luennolla tai huoneen D225 vieressä olevaan lokeroon. Raporttiin pitää kirjata: opintopiirin jäsenten nimet, laskuharjoitusryhmän numero ja ohjaajan nimi. Viimeinen palautusajankohta on
Palautus on siis viimeistään kaksi päivää oman harjoitusryhmän toisen kokoontumisen jälkeen.
A - POHTIKAA PORUKALLA TEHTÄVIÄ Allaolevan tehtävälistan kaikki tehtävät on tarkoitettu kaikkien pohdittavaksi. Laatikaa yhdessä ratkaisut näihin tehtäviin ja palauttakaa ne kirjallisena (raporttiin mukaan jäsenten nimet, ohjaajan nimi ja ryhmän numero). |
3.1 - PROSESSI JA SÄIE
a) Selittäkää käsitteet prosessi ja säie. Miten ne liittyvät toisiinsa? Mitä hyötyä on säikeiden käytöstä?
b) Olettakaa, että käytössä on ytimessä toteutetut säikeet. Mitä tietoa on talletettu PCB:hen ja mitä tietoa TCB:hen? Kertokaa kunkin tiedon osalta milloin ja mihin KJ tuota tietoa tarvitsee.
c) Miten KJ:n kirjanpito poikkeaa, jos säikeet on toteutettu vain käyttäjätasolla?
3.2 - KOLMOSET MONIAJOSSA
Suoritettavana on 3 samanlaista prosessia: kukin muodostuu silmukasta, jossa ensin lasketaan 500 ms ja sitten tulostetaan 150 ms. Silmukka suoritetaan 1000 kertaa.
a) Paljonko kuluu aikaa, jos prosessit suoritetaan peräkkäin (yksiajojärjestelmä)? Mikä on prosessien keskimääräinen läpimenoaika ja mikä on prosessorin käyttöaste?
b) Esittäkää aikadiagrammin avulla miten prosessit etenevät osituskäyttöön perustuvassa moniajojärjestelmässä, jossa KJ jakaa prosessoria prosesseille 100 ms aikaviipaleina. Jos aikaviipale jää kesken, prosessi saa seuraavalla kerralla kokonaan uuden aikaviipaleen. Olettakaa lisäksi, että tulostukset toimivat rinnan eivätkä häiritse toisiaan (voivat edetä yhtäaikaa). Paljonko suorittamiseen kuluu tällä kertaa aikaa? Entä mikä on nyt prosessien keskimääräinen läpimenoaika ja prosessorin käyttöaste?
c) Olettakaa seuraavaksi, että käytössä on SMP-laitteisto, johon kuuluu kaksi prosessoria. Siinä suoritetaan b)-kohdan prosesseja, jotka käynnistetään yhtä aikaa. Esittäkää aikadiagrammin avulla kuinka prosessien suoritus etenee. Paljonko suoritukseen menee aikaa tällä kertaa? Mikä on nyt prosessien keskimääräinen läpimenoaika ja prosessorien käyttöaste?
3.3 - TOIPUMINEN
Levyn tiedostojärjestelmä voi myös vikaantua esim. ohjelmavirheen tai levyn vikaantumisen vuoksi. Tällöin levyltä ei löydykään tiedostoja normaalisti.
Ajatellaan yksinkertaista hierarkista tiedostojärjestelmää (esim. FAT), jossa käytetään tiedostoille varaustaulua. Mitä tapahtuu, jos vapaata levytilaa osoittava taulu tai lista katoaa levyn vikaantumisen vuoksi? Voidaanko tällaisesta tilanteesta toipua takaisin normaaliin tilanteeseen vai täytyykö koko levylle sanoa hyvästi? Millaisia vaihtoehtoja voisit ajatella olevan? Onko toipumisen kannalta merkitystä millaiseen rakenteeseen vapaantilan tiedot on tallennettu?
3.4 - FAT JA LEVYTIEDOSTON KÄYTTÖ
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.
Tarkasteltavalla levyllä 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.
a) Montako tavua levylle kaiken kaikkiaan sopii?
b) Montako prosenttia levystä jää käyttäjän hakemistoille ja tiedostoille?
c) 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
Millä levypinnalla, uralla ja sektorilla sijaitsee tiedoston JEMMA 2152:s tavu?
3.5 - OPEN - KÄYTÄ - CLOSE
a) Eräissä järjestelmissä tiedostoa ei tarvitse erikseen avata tai sulkea rutiineilla fd = open(tdstonimi,käyttötapa) ja close(fd), vaan KJ avaa tiedoston, kun sitä käytetään ensimmäisen kerran ja KJ sulkee sen, kun ohjelma päättyy. Mitä hyötyä / haittaa tästä on verrattuna siihen, että tiedosto on erikseen avattava ennen sen käyttöä ja että tiedoston voi halutessaan erikseen sulkea?
b) Kun prosessi avaa tiedoston, se antaa parametrina tiedostonimen sekä käyttötavan (esim. read / write / append). Kuinka KJ löytää suhteellista polkunimeä käyttävän tiedoston? Miten KJ tarkistaa onko aiottu käyttötapa sallittu tälle prosessille?
c) Montako levyhakua tarvitaan UNIX-järjestelmässä pahimmillaan, kun halutaan lukea tiedoston /usr/ville/data tavu 13423956? Oletetaan, että juurihakemiston / i-solmu on jo muistissa, eikä yksikään tarvittavista hakemistoista ole niin iso, että se jakautuisi useampaan lohkoon.
3.6 - SIIRRÄNTÄÄ JA TIEDOSTOJEN HALLINTAA
Prosessi tekee palvelupyynnön READ lukeakseen aiemmin avaamastaan tiedostosta F muuttujaan MJA yhden kokonaisluvun (siis 4 tavua). Oletetaan lisäksi, että mitään ei ole valmiiksi muistissa. Kokonaisluku on siis noudettava levyltä asti.
Mitä parametreja prosessin on välitettävä käyttöjärjestelmälle? Miten?
Kuinka KJ pääsee käsiksi juuri tähän tiedostoon F liittyviin tietoihin?
Mistä KJ saa selville monesko tiedoston lohko on luettava muistiin? Kun lohkonumero on selvillä, voi laiteriippumaton taso antaa I/O-pyynnön laiteajurille. Mitä tietoja laitejurille pitää välittää?
Ajuri laskee lohkonumerosta lohkon fyysisen sijainnin (levypinta, ura ja sektori) ja välittää sen levyohjaimelle. Mitä muita tietoja laiteajuri antaa levyohjaimelle DMA-siirtoa varten ja kuinka se nämä parametrit välittää?
DMA-ohjain pystyy siirtämään itsenäisesti tiedon levyltä muistiin, joten CPU suorittaa muita prosesseja siirron aikana. Miten KJ saa tiedon siirron valmistumisesta? Miten KJ käsittelee palvelupyynnön loppuun (vihje: minne ohjain siirsi?)?
B - PERUSTELKAA PORUKALLA TARKISTUSKYSYMYKSIÄ Kehittäkää viisi aihepiiriin liittyvää tarkistuskysymystä / keskeistä asiaa pohtivaa tehtävää, sekä perustelkaa miksi kysymyksiinne on tärkeää osata vastata. Saatte valita myös kirjan / luentokalvojen ja harjoitusten kysymyksistä. Tässä kohdassa on tärkeämpää kehittää hyvät perustelut kuin keksiä pyöriviä esineitä uudelleen. Välttäkää myös 'trivial-pursuit'-tyyppisiä yksittäisiä detaljitietoja testaavia kysymyksiä. Hyvä tarkistuskysymys on sellainen, johon vastaaminen vaatii suuremman kokonaisuuden ymmärtämistä. Vihjaiskaa, jos joku kohta kaipaa mielestänne tarkennusta, asiaan voidaan palata luennolla. |
C - TEHKÄÄ PORUKALLA EVALUOINTIA / ITSEARVIOINTIA Tiimityönä: Täyttäkää oheinen lomake 3 ja jättäkää se luennoijalle / laatikkoon ryhmän raportin mukana. Lomaketta jaetaan harjoitusryhmässä. Kyselyllä on kaksi tarkoitusta: (1) kerätä tietoa tehtävien tekemisen onnistumisesta opintopiireissä ja (2) auttaa opintopiiriä oman toiminnan parantamisessa. Arvostamme lyhyitä vastauksia, joihin olennainen on kiteytetty. Pyrkikää olemaan avoimia. Paneutukaa palautteen antamiseen huolella, vastatkaa kaikkiin kohtiin ja perustelkaa mielipiteitänne. Palautteen kattavuus (ts. onko kaikkiin kohtiin vastattu ajatuksella) arvioidaan (0, 1, tai 2), sen sijaan palautteen sisällöllä ei ole vaikutusta arviointiin. Muuta palautetta / kommentteja voitte lähettää milloin tahansa kurssin uutisryhmään hy.opiskelu.tktl.kj (toivottavasti saamme keskustelua aikaiseksi), tai kertoa suoraan kurssin vetäjille suullisesti, sähköisesti tai kirjallisesti. |
Kertauskysymyksiä (Poimittuna raporteista)
|
|