Tietokoneen toiminta kesä -99

Laskuharjoitus 8 (perjantai 20.8.)


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).

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, 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. Oletetaan, että surffailet kotikoneella World-Wide Webissä sopivaa selainohjelmaa (Netscape, Internet Explorer tms) käytttäen modeemin välityksellä. Selosta miten selain saa verkosta haluamasi WWW-sivun eli kerro, minkä eri tasojen protokollia tiedonsiirrossa käytetään ja miksi. Anna esimerkkejä kunkin tason protokollista.

4. 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.

5. Kertaustehtävä:

a) Kirjoita TTK-91 -kielellä funktio Kertaus, joka tulostaa kaikki sille pinossa (aktivointitietueessa) välitettyä lukua X pienemmät positiiviset kokonaisluvut ja laskee vielä noiden lukujen summan LukuSumma. Kertaus palauttaa LukuSumman pinossa arvonaan.

b) Minkälaisia muutoksia Kertaukseen tulisi tehdä, jos LukuSumma välitettäisiinkin pääohjelmaan muuttujaparametrin arvoon tehdyn päivityksen avulla? (Tällöinhän Kertauksen ei tarvitsisi olla funktio.)
c) Onko a-kohdan ratkaisu selkeämpi?

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/kesa_1999/.