Harjoitukset
Tietokoneen toiminta, Itseopiskelukurssi, HT 4
- Hamming koodi.
- Näytä, miten virheenkorjaava Hamming koodi havaitsee ja korjaa virheen
kun 7-bittisessä datassa "011 0100" kolmas bitti vasemmalta
lukien muuttuu virheelliseksi dataksi: "010 0100".
Näissä 7 bitissä on mukana sekä varsinainen data että tarkistusbitit.
- Montako piuhaa (johdinta, bittiä) tarvitaan 32-bittisen data-väylän
turvaamiseksi virheenkorjaavaa Hamming-koodia käyttäen?
(Haluamme siis pystyä kerralla siirtämään 32 bittiä todellista dataa
tarkistusbittien lisäksi)
- Miksi Hamming-koodin käyttö ei ole hyvä ratkaisu paikallisverkkojen
tiedonsiirron turvaamiseen?
- Oletetaan, että TTK-91 -koneelle on tehty käyttöjärjestelmä.
Käyttöjärjestelmään kuuluu yhtenä
osa-alueena prosessien hallinta. Oletetaan, että kellolaitekeskeytyksen
takia ollaan päädytty tilanteeseen, jossa suoritusvuorossa olevaa prosessia vaihdetaan.
- Miten ja mihin aikaisemmin suorituksessa olleen prosessin tiedot talletetaan?
Mitkä tiedot täytyy ottaa talteen?
- Miten ja mistä uuden prosessin tiedot saadaan suorittimelle?
Mistä käskystä uuden prosessin suoritus alkaa?
Miten suoritusvuoro vaihtuu uudelle prosessille?
- Mikä on suorittimen tila (käyttäjä, etuoikeutettu)
alkaen juuri ennen kellolaitekeskeytyshetkeä siihen asti kun uuden
prosessin ensimmäisen käsky suoritetaan?
- Konekäskyn osoiteosa. Ttk-91 koneen konekäskyn osoiteosa on vain 16-bittinen. Tämä asettaa rajoituksia käskyssä olevien vakioiden koolle.
- Mikä on suurin positiivinen luku, joka voidaan esittää käskyssä vakiona? Miten tulee toimia, jos tarvitaankin suurempaa vakiota? Esimerkiksi lukua 6543210?
- Mikä on pienin negatiivinen luku, joka voidaan esittää käskyssä vakiona?
- Entä miten tulisi menetellä, jos tarvitaan suurta vakiota indeksoidun osoitusmoodin kanssa? Esimerkiksi, jos halutaan lukea data osoitteesta (R1)+666666?
- Mitä hyötyä/haittaa on siitä, että konekäskyn osoiteosa on (vain) 16-bittinen?
- Kuka päättää, missä C-kielisessä olevassa ohjelmassa oleva vakio (esim. luku 7 lauseessa X += 7; ) sijoitetaan suoritusaikana? Mitä etua/haittaa tästä on?
- Mitä hyötyä/haittaa on varata jokin rekisteri koko ajan tarvittavaa vakiota (esim. luku 1) varten?
- Mitä hyötyä/haittaa on tallettaa usein tarvittavaa vakio (esim. luku 1) literaalialueelle (data-alueelle)?
- Prosessin tilat. Luennolla 8 [Stal10 tai Stal06, Ch 8.2] esitettiin prosessin elinkaarimalli,
jossa prosessilla on 5 erilaista tilaa.
Anna kullekin allaolevalle tilanteelle luonteeltaan kaksi (2) erilaista
esimerkkiä. Mainitse myös, kuka (mikä prosessi) aiheutti tilasiirtymän ja mitä
tilanmuutoksessa tapahtuu käyttöjärjestelmän tietorakenteissa?
- Prosessi P siirtyy "luonti" tilasta "odottaa" tilaan.
- Prosessi P siirtyy "suorituksessa" tilasta "odottaa" tilaan.
- Prosessi P siirtyy "valmis suoritukseen" tilasta "suorituksessa" tilaan.
- Prosessi P siirtyy "suorituksessa" tilasta "valmis suoritukseen" tilaan.
- Prosessi P siirtyy "valmistunut tai tapettu" tilaan.
- Prosessi ja I/O
- 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?
- Tarvitseeko odotustilassa oleva prosessi lainkaan muistia? Miksi?
- Voiko odotustilassa olevan prosessin tietoja siirtää levylle? Mitä etua/haittaa tästä olisi?
- Voiko tietokoneen toteuttaa ilman prosesseja? Mitä tästä seuraisi?
- Mitkä kaikki prosessit osallistuvat tavallisen levy-I/O:n toteutukseen? Missä tilassa ne suorittavat koodia?
- Tämän viikon TitoTrainer tehtävät, ainakin tehtävät c-100, c200, c-210 ja c-420.