Tietokoneen toiminta, kevät 2005

Suurin osa tehtävistä edellytetään etukäteen tehdyiksi. Tehdyt tehtävät merkitään listaan ja harjoituspisteitä saa sitä enemmän mitä enemmän tehtäviä on tehnyt. Tehtävät käydään läpi harjoitustilaisuudessa.
Osa tehtävistä tehdään ryhmätöinä vasta harjoitustilaisuudessa. Myös ryhmätöinä tehtäviiin on syytä perehtyä etukäteen, jotta harjoituksiin varattu aika riittäisi ja jotta itselle olisi harjoituksista mahdollisimman suuri hyöty. Ryhmätöissä osallistuminen kasvattaa harjoituspistetiliä.

Harjoitus 1

Käsitellään harjoitusryhmissä maanantaina 23.5.2005.
  1. Yleistä tietokoneista
    1. Mitkä osat ovat välttämättömiä tietokonelaitteistossa? Entä mitkä ovat tietokoneiden yleisimpiä oheislaitteita?
    2. Etsi mainoksista tai verkosta vähintään kahden erilaisen tietokoneen (PC:n eli 'kotitietokoneen', kannettavan, kämmenmikron, supertietokoneen, yms) kapasiteetti- ja suorituskykyarvoja.

  2. Mitä tarkoitetaan seuraavilla käsitteillä?
    1. mikroprosessori - mikrotietokone - keskusyksikkö - kontrolliyksikkö
    2. ohjelma - prosessi
    3. lausekieli - symbolinen konekieli -konekieli -mikrokoodi
    4. käännös - tulkinta
    5. tavalliset käskyt - etuoikeutetut käskyt

  3. Kääntäminen, linkitys, ym.
    Tehdään harjoitustilaisuudessa, sillä kaikilla ei varmaan ole käytössä Linux-ympäristöä ja C-kääntäjää!
    1. Käännä ohjelma rand.c linuxissa komennolla gcc -c rand.c
    2. Linkitä ohjelma komennolla gcc rand.o -o rand
    3. Minkä kokoinen on objektitiedosto rand.o? Entä suoritettava ohjelmatiedosto rand?
    4. Symbolisen konekielisen version saat komennolla gcc -S rand.c. Mitä arvelet tiedostossa rand.s olevien konekäskyjen tekevän? Kuinka monta hyppykäskyä löysit tiedostosta rand.s?
    5. Suorita vielä ohjelma rand antamalla syötteeksi luvut 17 ja 1.
    6. Kiinnostuneille: linkki Linux-koneen assemblerin tutoriaaliin.

  4. Simulaattori
    1. Miten simulaattori eroaa todellisesta tietokoneesta?
    2. Miten simulaattorilla suoritettavat ohjelmat eroavat todellisella tietokoneella suoritettavista ohjelmista?
    3. Mitä etua on suorittaa ohjelmia simulaattorilla sen sijaan, että ne suoritettaisiin todellisella tietokoneella?
    4. Mitä haittaa on suorittaa ohjelmia simulaattorilla sen sijaan, että ne suoritettaisiin todellisella tietokoneella?

  5. Tutustu Titokoneeseen
    Titokoneen käyttöön ja ohjeisiin kannattaa tutustua etukäteen, mutta käyttöä kokeillaan harjoitustilaisuudessa. Samoin asennukseen saa tarvittaessa lisäohjausta.
    Tutustu Titokonesimulaattoriin. Kurssin kotisivulta löytyvät tarvittavat linkit. Voit myös asentaa simulaattorin annettujen ohjeiden mukaan omalle koneellesi. Näin jatkossa voit testata kirjoittamiesi ohjelmien toimintaa ja nähdä itse, kuinka Titokone käyttäytyy.

    Konekielisten ohjelmien kirjoittaminen ja testaaminen pelkästään paperilla on työlästä ja hankalaa. Niiden tekeminen ja testaaminen Titokoneella on paljon mielekkäämpää. Jos mitenkään mahdollista, niin käytä Titokonetta symbolisella konekielellä laadittavien ohjelmien testaamiseen. Titokoneen käyttö ei ole edellytys kurssin suorittamiseen. Kokeessa on kuitenkin osattava kirjoittaa konekielinen ohjelma kynällä paperille.