Tietokoneen toiminta syksy -99

Laskuharjoitus 7 (7.-10.12.)

Maanantain ryhmät on peruutettu itsenäisyyspäivän takia. Maanantairyhmäläiset käykää muissa harjoitusryhmissä.

1. Selitä, mitä tietoa välitetään ja miten
a) ohjelman ja käyttöjärjestelmän laiteriippumattoman tason välillä,
b) käyttöjärjestelmän laiteajurin ja laiteohjaimen välillä, kun ohjelma kirjoittaa tavuja tiedostoon (oletetaan, että ohjain pystyy DMA-siirtoon).

c) Miten pitäisi kovalevyn ajurin reagoida, jos levyohjain ei vastaa ollenkaan - koska se puuttuu tai on epäkunnossa?

2. Unix-tiedostojen (huom. myös hakemisto on tiedosto!) käyttöoikeudet kirjataan tiedostomääreisiin antamalla käyttäjien tai käyttäjäryhmien prosesseille seuraavia oikeuksia:
r = oikeus lukea tiedoston sisältö,
w = oikeus kirjoittaa tiedostoon (eli oikeus muuttaa sisältöä) ja
x = oikeus suorittaa ohjelmakoodi tai oikeus käyttää hakemistoa polussa.

Olkoon meillä hakemisto /usr , jossa sijaitsevat käyttäjien Kalle ja Ville kotihakemistot. Käyttäjällä Kalle on ainakin alihakemistot Sorsat ja Tekstit. Kumpikin sisältää useita tiedostoja (Piirrä kuva!). Millaiset oikeudet käyttäjällä Ville täytyy vähintään olla hakupolulla sijaitseviin hakemistoihin ja Kallen tiedostoihin, jotta hän voisi saada selville, mitä tiedostoja Kallen alihakemistossa Tekstit on, mutta ei mitä tiedostoja on hakemistossa Sorsat, voisi lukea Kallen alihakemistossa Sorsat olevan tiedoston demo.c ja hävittää tiedoston demo.c.

Missä vaiheessa käyttöjärjestelmä tarkistaa nämä käyttöoikeudet? Miten?

3. Virtuaalimuistisivun koko on 1024 sanaa (0..1023), virtuaalimuistissa on 10 samankokoista sivua (virtuaaliosoitteet 0..10239) ja keskusmuistissa on 4 sivukehystä (fyysiset osoitteet 0..4095). Sivutaulun sisältö annetulla hetkellä on seuraavanlainen (jos sivu ei ole keskusmuistissa niin läsnäolobitti on arvoltaan nolla):

Sivun numero Sivukehys Läsnäolobitti
0 3 P=1
1 0 P=1
2 P=0
3 P=0
4 1 P=1
5 P=0
6 P=0
7 P=0
8 2 P=1
9 P=0

Mitkä osoitteet aiheuttavat sivunpuutoksen? Mitkä ovat virtuaaliosoitteita 546, 800, 1023, 1024, 2048, 8000, 9000 vastaavat fyysiset (todelliset) muistiosoitteet?

4.Mitä tietoa KJ ylläpitää prosessista prosessin kuvaajassa (PCB)? Pohdi myös kunkin prosessin kuvaajaan talletettavan tiedon osalta milloin ja mihin KJ ko. tietoa tarvitsee. Missä prosessin kuvaaja sijaitsee?

5. Alat aikasi kuluksi suunnitella RISC-konetta TTK-91-kielen pohjalta. Päätät alkajaisiksi heittää käskykannasta pois kaikki käskyt, joita ilmankin voi tulla toimeen. Mieti siis mitkä TTK-91 käskyt voidaan haluttaessa toteuttaa muiden käskyjen avulla. Poistettavien käskyjen toteutus saattaa tarvita useita käskyjä ja pieniä ohjelmasilmukoita jne.!
Mieti myös mitä osoitusmuotoja ei oikeastaan tarvittaisikaan, ts. mitkä osoitustavat voitaisiin toteuttaa koodaamalla itse tarvittavat laskutoimitukset.

6. Kerro mikä oli kurssilla mielestäsi hyödyllisintä asiaa ja anna erillisellä paperilla harjoituksen vetäjälle kolme vinkkiä siitä, mitä kokeessa ehdottomasti kannattaisi kysyä. Perustele valintasi lyhyesti! Täytä myös kurssiarvostelulomake sivulla http://www.cs.helsinki.fi/kurssit/kyselyt/syksy_1999/.