Tietokoneen toiminta, kevät 2001
Harjoitus 5
Käsitellään harjoitusryhmissä keskiviikkona 30.5.2001.
- Pariteettibittien käyttö
- Millaisia bittivirheitä pariteettibitti huomaa?
- Poikittais- ja pitkittäispariteetissa jokaisen 7 bitin tavun perässä on
pariteettibitti. Tämän lisäksi aina 7 peräkkäistä tavua tarkistetaan vielä ns.
poikittaispariteetilla:
1 0 0 0 1 0 0 P
0 1 1 1 0 1 0 P
1 0 0 1 0 1 1 P
0 1 0 1 0 0 1 P
1 0 1 0 1 1 0 P
0 0 1 0 1 1 0 P
1 1 1 0 0 1 0 P
P P P P P P P P
Millaisia bittivirheitä nyt huomataan? Löytyykö virhekombinaatioita, joita ei
huomata?
- Hamming-koodi
-
Kirjainmerkkien A ja B ASCII-koodit ovat kymmenjärjestelmässä 65 ja 66. Esitä merkkijono AB
biteillä Hamming-koodia käyttäen.
-
Oletetaan, että 7. bitti vasemmalta on muuttunut. Näytä, miten Hamming-koodi
havaitsee ja korjaa muuttuneen bitin. Entä miten käy, jos kaksi bittiä muuttuu?
-
Miksi Hamming-koodin käyttö ei ole hyvä ratkaisu langattomien verkkojen
tiedonsiirron turvaamiseen?
-
Välimuisti. Oletetaan, että tiedon (1 sana) saantiaika välimuistista on 2ns ja tavallisesta muistista 10 ns per
sana. Välimuistin lohkon (rivin) koko on neljä sanaa. Oletetaan, että välimuistia
käytettäessä 97% muistiviitteistä löytyy välimuistista.
Voit (epärealistisesti) olettaa, että välimuistista löytyy aina tilaa uudelle lohkolle
ja että tiedon siirtoaika MBR:stä rekisteriin on nolla.
-
Jos välimuistia ei käytetä, niin kauanko keskimääräisesti kestää datan (1 sana) lukeminen
rekisteriin?
-
Jos välimuistia käytetään, niin kauanko keskimääräisesti kestää datan (1 sana) lukeminen
rekisteriin?
-
Miten prosessi tietää, löytyikö tieto välimuistista vai ei?
-
Miten sovelluksen käyttäjä (ihminen) tietää, löytyikö tieto välimuistista vai ei?
- Miten käyttäjä (ohjelmoija) voi vaikuttaa välimuistin tehokkuuteen?
-
Prosessi.
- Mitä tapahtuu, jos Ready-to-Run jono on tyhjä?
- Voiko samasta ohjelmasta olla monta prosessia yhtä aikaa Ready-to-Run
jonossa? Miten tai miksi ei?
- Kumpi kestää kauemmin, aliohjelman kutsu vai prosessin vaihto? Miksi?
- Kuuluuko välimuistin sisältö prosessin suoritinympäristöön vai ei? Miksi?
- Kuuluvatko R6 ja R7 prosessin suoritinympäristöön vai ei? Miksi?
- Kuuluvatko PC ja IR prosessin suoritinympäristöön vai ei? Miksi?
- Kuuluvatko MAR ja MBR prosessin suoritinympäristöön vai ei? Miksi?
-
Selitä yksityiskohtaisesti, kuinka prosessori ja käyttöjärjestelmä toimivat, kun suorituksessa
olevan prosessin aikaviipale täyttyy. Selostuksestasi tulee siis käydä ilmi vastaukset ainakin
seuraaviin kysymyksiin:
- Mistä CPU tietää, että viipale on täysi?
- Miten CPU saadaan suorittamaan käyttöjärjestelmää?
- Miten CPU otetaan pois vanhalta prosessilta?
- Miten se annetaan uudelle prosessille? Mille?
- Anna esimerkkejä tilanteista, jolloin on järkevää, että keskeytyksen käsittelyn jälkeen
jatketaan eri käyttäjäprosessia (user process) kuin mikä oli suoritusvuorossa keskeytyksen
tapahtuessa. Anna myös esimerkkejä tilanteista, jolloin keskeytyksen jälkeen on järkevää jatkaa
saman prosessin suoritusta.
-
Oletamme, että virtuaalimuistijärjestelmässä
- sivun koko on 1 kB (1024 tavua)
- ohjelman osoiteavaruus on 1 MB (1024 x 1024)
- käytetään tavuosoitteita.
- Miten monta alkiota on sivutaulussa? Miten monta sivutilaa on keskusmuistissa?
- CPU suorittaa ohjelmaa, joka viittaa muuttujaan osoitteessa 2060. Selvitä miten tämän
muuttujan todellinen muistiosoite saadaan, kun viitattu sivu sijaitsee viittaushetkellä
keskusmuistin sivutilassa 10.
- Mitä tapahtuu, jos ko. sivu ei ole muistissa? Miten sivun puuttuminen havaitaan?