Helsingin yliopisto Tietojenkäsittelytieteen laitos
 

Tietojenkäsittelytieteen laitos

Tietoa laitoksesta:

 
581331-5 Käyttöjärjestelmät I S2000, arvosteluperusteet

Tehtävät 1 ja 3 arvosteli Jukka Manner, tehtävät 4 ja 5 arvosteli Mikko Rauhala ja tehtävän 2 arvosteli Auvo Häkkinen.

------------------------------------------------------------------------
Käyttöjärjestelmät I, kurssikuulustelu 9.11.2000       Tehtävä 1/Jukka
------------------------------------------------------------------------

a) etuoikeutetut käskyt (3 p.)
- suoritetaan etuoikeutetussa tilassa (1 p.)
- hyöty: erilaiset suojaukset (1 p.)
- jos hyödyistä eritelty erikoisesti muistin suojaus ja tiedostojen 
  suojaus (1 p.)

b) Looginen osoite ja fyysinen osoite (2 p.)
- looginen on osoite ohjelman alun suhteen (esim. kaikille prosesseilla 0)
- fyysinen on osoite todellisessa muistissa
- mahdollistaa joustavan ohjelmoinnin, kun ohjelmoijan ei tarvitse huolehtia
  ohjelman todellisesta sijainnista levyllä
  (nuo selitetty 1 p.)
- ohjelma voi siis sijaita eri paikoissa muistissa eri suorituskerroilla
- osoitemuunnos tehdään ajonaikana MMU:ssa (1 p.)
- yksi piste selityksestä, yksi piste hyödyistä jos 
	a) erityisen hyvin selitetty tai 
	b) otettu huomioon tuo MMU ja "on-the-fly" muunnos

c) levyvälimuisti
- sijaitsee keskusmuistissa
- tarkoitus tallettaa usein käsiteltyjä levylohkoja, jotta uusi käsittely ei
  aiheuttaisi levy-operaatiota
- perustuu tiedon paikallisuuteen ja ajallisesti lähekkäisiin hakuihin
  (noista tuli 1 p.)
- kun haetaan yhta tavua, luetaan levyltä kyseinen levylohko, joka sitten
  pistetään välimuistiin, sillä pian tarvitaan todennäköisesti seuraavaa tavua
  vierestä. Samalla voi hakea myös pari muutakin viereistä lohkoa
- tarkeää: toimii molempiin suuntiin: sekä lukemisiin että
  kirjoittamisiin yhtälailla (1 p.)
- kirjoitettaessa välimuistin lohko merkataan muuttuneeksi, ja nämä lohkot
  kirjoitetaan sopivin väliajoin, tai kun tarvitaan lisää tilaa, levylle
  takaisin
- vain lukutarkoituksessa olleita muuttumattomia lohkoja ei tarvitse kirjoittaa

d) DMA
- prosessori aloittaa siirron antamalla DMA ohjaimelle tiedot: mistä, mihin,
  kuinka paljon
- tämän jälkeen laite käynnistyy siirtämään tietoa, jona aika prosessori voi
  suorittaa muita prosesseja
- kun siirto on valmis, laite aiheuttaa keskeytyksen, jonka prosessori tutkii,
  tsekkaa myös, onnistuiko siirto, ei pelkästää, että siirto loppunut
- siirroon pyytänyt prosessi pääsee  takaisin ready-jonoon
- 2 p., jos kerrottu, miten DMA toimii, selitetty, että prosessorin
kuormitus tippuu JA miten homma päättyy

------------------------------------------------------------------------
Käyttöjärjestelmät I, kurssikuulustelu 9.11.2000       Tehtävä 2/Averell
------------------------------------------------------------------------

Pyydetty tilakaavio löytyy kurssikirjan sivulta 113 (Fig.  3.7). 
Tilasiirtymien selitykset löytyvät 5:n tilan kaavion (sivut 107-110) ja
tämän 7:n tilan kaavion yhteydestä (sivut 113-116). 

Tilasiirtymät on käsitelty luennolla ja myös harjoituksissa on ollut
yksi tehtävä tästä kaaviosta (Harj 4 tehtävä 2).  Tehtävä olikin osattu
yleensäottaen hyvin, keskiarvo 10.7.  Vain viidessä vastauksessa
pistesaldo tipahti alle 6 pisteen. 

Pisteytys:
- jos kaavio piirretty oikein = + 4p
- heittovaihdon lisäsiirtymät selitetty oikein = + 3p
- READY <-> RUNNING siirtymät selitetty oikein = + 2p
- RUNNING -> BLOCKED -> READY selitetty oikein = + 2p
- NEW ja EXIT tilat mukana ja selitetty oikein = + 1p

Kaiken ei tarvinnut olla ihan prikulleen kohdallaan, esimerkiksi jos
SUSPEND-tilojen idea oli selitetty oikein, sai ko.  osasta täyden
pistepotin vaikka joku siirtymä (yleensä B&S -> B) olisikin unohtunut. 
Myöskään siirtymän EXIT -> puuttumisesta ei sakotettu (sitä ei ole
piirretty kirjassakaan, selitys tilan olemassaololle toki löytyy). 

On hieman epätäsmällistä sanoa esim.  READY->RUN siirtymästä, että
'prosessi pääsee suoritukseen', vaan pitää selittää minkä (tapahtuman)
seurauksena se pääsee suoritukseen.  Sitähän kysyttiin!

NEW- ja EXIT-tilojen olemassaolo jäi aika monelta perustelematta: ei
selitetty minkä tapahtuman seurauksena tullaan NEW-tilaan, eikä minkä
tapahtuman seurauksena poistutaan EXIT-tilasta

Aika monessa vastauksessa oli selitetty vain, että I/O-pyyntö ja sen
valmistumisen odottelu vievät prosessin BLOCKED-tilaan.  Se ei ole
kuitenkaan ainut, joten parempi vastata 'esim. I/O-pyyntö...'

------------------------------------------------------------------------
Käyttöjärjestelmät I, kurssikuulustelu 9.11.2000       Tehtävä 3/Jukka
------------------------------------------------------------------------

- valitettavasti monta prosessoria ja "paljon" muistia ei kelpaa tähän
tehtävään
- ei myöskään "keskuskone ja siihen monta terminaalia", ei säikeet, DMA,
välimuistit...  noi joko on kaikissa, myös "yhden ajon" järjestelmässä
tai sitten nuo eivät ole LAITTEISTOpiirteitä, jotka on selvästi
selitetty mm.  kalvoissa. 

- no, mitä sitte hyväksyttiin:
 (1 p. jos mainittu ja toinen piste, jos lisäksi selitetty -> 2p. per asia)

	* erilaiset _laitekeskeytykset_
	* _keskeytyskäsittelijän_ käynnistäminen keskeytyksen seurauksena,
	  rekistereiden tallettaminen, etuoikeutettuun tilaan siirtyminen
	* mm. tämän takia (ja muistin- ja tiedostojen suojaus) _etuoikeutettu
	  tila ja käskyt_ (tehtävä 1.)
	* aikaviipalekello ja aikaviipaleet
	* ajonaikainen osoitemuunnos laitetoimintona (tehtävä 1.)

Tehtävän vastaus on käyty läpi harjoituksen 3 tehtävässä 1.  Asiat on
käsitelty kurssikirjan luvussa 2. 

------------------------------------------------------------------------
Käyttöjärjestelmät I, kurssikuulustelu 9.11.2000       Tehtävä 4/Mikko
------------------------------------------------------------------------

Virtuaalimuistijärjestelmän toiminta:

* Prosessit käyttävät loogista (virtuaali)muistiavaruutta, eivätkä ole
  tietoisia siitä, missä niiden käyttämät koodi ja data fyysisesti
  sijaitsevat.
* Sivuttavan ratkaisun kuvaus on riittävä.
	- Prosessit jaetaan sivuihin ja fyysinen muisti (ja sekundäärinen
	  muisti) sivutiloihin, joihin sivuja ajonaikaisesti jaetaan
	  tilanteeseen sopivasti.
	- MMU:n, prosessorin muistinhallintayksikön tehtävänä on jakaa
	  virtuaaliosoite sivunumeroon (alkuosa) ja siirtymään (loppuosa).
	  Virtuaalisen sivunumeron perusteella voidaan hakea TLB:stä tai
	  prosessikohtaisesta tai käänteisestä, hakemistolla varustetusta
	  sivutaulusta vastaava fyysinen sivu (jos muistissa) ja katenoida
	  sivun alkuosoitteeseen siirtymäosa.
* Muunnos loogisesta osoitteesta fyysiseksi osoitteeksi tehdään
  ajonaikaisesti MMU:ssa seuraavissa vaiheissa:
	- Tarkastetaan ensin TLB:stä, onko haluttu sivutaulualkio
	  talletettuna sinne. Jos on, voidaan muunnos tehdä nopeasti TLB:n
	  perusteella hakematta keskusmuistin sivutauluja.
	- Jos ei löytynyt, haetaan keskusmuistin sivutaulusta virtuaalista
	  sivua vastaavaa alkiota.
	- Tarkistetaan, onko sivu keskusmuistissa ollenkaan
	  (Present-bitti). Jos ei, aiheutuu sivunpuutoskeskeytys, ja
	  käyttöjärjestelmä käynnistää sivunoudon levyltä. (Joku toinen
	  prosessi päässee suoritukseen kunnes sivu on noudettu.
	  Saatetaan myös samantien hakea muitakin sivuja tämän ympäriltä.)
	- Kun sivu on keskusmuistissa (hakua ei tarvittu tai se on jo
	  suoritettu), kopioidaan vastaava sivutaulun alkio TLB:hen ja
	  aloitetaan keskeytyksen aiheuttanut käsky alusta. Nyt tieto
	  fyysisestä sivusta löytyy TLB:stä, ja osoitus voidaan suorittaa.
	- Jos fyysinen muisti on täynnä, levyhaun yhteydessä joudutaan
	  poistamaan jokin (mieluusti vähän tarvittu) sivu; tässä
	  yhteydessä tarkistetaan, onko sivua muutettu sen jälkeen, kun
	  se on viimeksi ladattu levyltä muistiin (M-bitti). Jos ei,
	  muutoksia ei tarvitse viedä sekundääriseen muistiin ennen
	  korvausta.
* TLB:n sisältö merkitään epävalidiksi (V-bitti) prosessinvaihdon
  yhteydessä (tai tauluihin on merkitty muunnosriviä vastaava prosessinumero)

Pisteytys: Jokusen pienen yksityiskohdan puute ei vähennä pisteitä, mutta
kasautuessaan vähentävät lineaarisesti. Erityisesti painotettuja asioita
pisteytyksen kannalta ovat loogiset, prosessikohtaiset osoitteet,
sivutaulut ja ajonaikainen muunnos loogisesta fyysiseen osoitteeseen
vaiheittain selitettynä.

------------------------------------------------------------------------
Käyttöjärjestelmät I, kurssikuulustelu 9.11.2000       Tehtävä 5/Mikko
------------------------------------------------------------------------

Käyttöjärjestelmän keskeiset tehtävät ovat:

* Prosessien suoritusympäristön tarjoaminen
	- Käynnistys, lopetus, vuorottaminen
* Muistinhallinta
	- Muistin varaus, vapautus, suojaus
* Tiedostonhallinta
	- Luonti, tuhoaminen, luku, kirjoitus, suojaus, (lukitus)
* Siirräntä
	- Luku, kirjoitus I/O-laitteille, keskeytyskäsittely
	- Tarvittaessa poissulkeminen
* Virheiden hallinta ja niistä toipuminen
	- Virheet laitetoiminnoissa ja poikkeukset prosessien suorituksessa
* Käyttöliittymän tarjoaminen käyttäjälle

Pisteytys: 10 pistettä yllämainitut asiat sisältävästä vastauksesta.
Yksittäisen pienen yksityiskohdan puuttuminen ei välttämättä vaikuta,
isomman kokonaisuuden puuttuminen tai useamman pikkuyksityiskohdan puute
vähentää pisteitä lineaarisesti.

------------------------------------------------------------------------

Auvo Häkkinen