Viimeksi päivitetty 1.9.1999

Helsingin yliopisto
Tietojenkäsittelytieteen laitos

58123-3 Tietokoneen toiminta (3 ov)

Kesä 1999


Sisältö


Tavoitteet

Kurssilla tutustutaan tietokoneen toimintaan laitteiston, symbolisen konekielen ja käyttöjärjestelmän tasoilla. Tavoitteena on ennen kaikkea selkeä kokonaiskuva ja peruskäsitteiden hallinta. Symbolista konekieliohjelmointia harjoitellaan kuvitteellisen kielen (TTK-91) ja simulaattorin avulla. Esitietoina edellytetään tunnetuiksi kurssien Tietotekniikan alkeet ja Johdatus ohjelmointiin (tai Ohjelmointi (Pascal)) asiat.


Ajankohtaista

Koe 27.8.1999
Kokeen tulokset ovat nyt nähtävissä verkkosivulla ja ne ilmestyvät avoimen ilmoitustaululle muutaman päivän päästä.

Kokeen arvostelusta

Luentokalvot
Luentokalvojen kopiot ovat haettavissa osoitteesta http://www.cs.helsinki.fi/~marttine/tito/kesa99/luentokalvot. Luentokalvot on tehty Windows 95:n MS Officen PowerPoint-ohjelmistolla. Paperikopiot kalvoista on kopiointia varten talletettu kurssimappiin (A412).

Harjoituspisteet

Tehdyistä harjoitustehtävistä saa harjoituspisteitä seuraavasti:

harj. pisteitä    tehtyjä tehtäviä
     0                18   
     1                19-20                 
     2                21-22
     3                23-24
     4                25-26
     5                27-29
     6                30-32
     7                33-35
     8                36-38
     9                39-41
    10                42-48

Vanhoja kokeita

Vanhoihin koetehtäviin kannattaa tutustua:
loppukoetehtävät 26.02.99


Opetus

Luennot

2.8.-20.8 Auditorio (Teollisuuskatu 23) ma, ti, to ja pe klo 9-12 ( Liisa Marttinen)

Luentoja on kaikkiaan 36 tuntia.

Harjoitukset

4.-20.8. ma, ke ja pe. 

1. Olli Lahti 12 - 14 A318 2. Olli Lahti 16 - 18 A318

Kaikkiaan kurssiin liittyy siis 8 harjoituskertaa. Kurssin suorittaminen edellyttää aktiivista harjoituksiin osallistumista eli opiskelijan on osallistuttava vähintään kuuteen (6) harjoitukseen. Pelkkä läsnäolo ei riitä, vaan kullakin kerralla opiskelijan on etukäteen tehtävä vähintään puolet harjoituskerran kotitehtävistä. Ratkaisujen ei välttämättä tarvitse olla täysin oikeita, vaan rehellinen yrittäminen riittää. Harjoituksen alussa kukin opiskelija merkitsee kiertävään listaan tekemänsä tehtävät. Merkintä listassa tarkoittaa sitä, että opiskelija on valmis esittämään muille oman ratkaisunsa.

Harjoitustehtävät jaetaan luennoilla ja ne ovat myös kopioitavissa verkosta.

4.8. Harjoitus 1 Exercise 1
6.8. Harjoitus 2 Exercise 2
9.8. Harjoitus 3 Exercise 3
11.8. Harjoitus 4 Exercise 4
13.8. Harjoitus 5 Exercise 5
16.8. Harjoitus 6 Exercise 6
18.8. Harjoitus 7 Exercise 7
20.8. Harjoitus 8 Exercise 8

Harjoitustehtävien esimerkkivastauksia

Ohjelmointiharjoitus

Kurssiin liittyy vapaaehtoinen konekieliohjelmoinnin pienimuotoinen harjoitustyö. Siitä voi saada enimmillään kolme ylimääräistä kurssipistettä varsinaisten jatkoksi. Työssä suunnitellaan ja laaditaan esimerkkikone TTK-91:lle monipuolinen sovellus ratkaisemaan tietty laskennallinen ongelma. Tehtävä on kaikille sama, ja se tulisi suorittaa itsenäisesti. Ongelman voi ratkaista toki useammalla tavalla, ja laskuharjoitusten ohjaajan neuvot ja lisävihjeet ovat tarvittaessa käytettävissä.

Harjoitustyön aihe ja ohjeita (jaettu luennolla pe 6.8.)

Täsmällisen tiivis ja kattava toteutussuunnitelma on jätettävä viimeistään ma 16.8. laskuharjoituksissa. Ohjaaja antaa suunnitelmasta palautetta muutaman päivän kuluessa. Lopullisen toteutuksen kuvaus ja selkeästi kommentoitu ohjelmakoodi on toimitettava ti 24.8. klo 19 mennessä joko TKTL:n ala-aulan vahtimestarien välityksellä tai sähköpostitse ohjaajalle (Olli Lahti, olahti@cs.helsinki.fi).


Kurssimateriaali

Luentomoniste

Kurssin luentorunkona on A. Häkkisen luentomoniste "Tietokoneen Toiminta" (HY/TKTL, moniste D390). Huom: ohjelmaesimerkeissä on v. -98 ja -99 painoksissa käytetty Java-kieltä, aiemmissa Pascalia. Korjauksia uudemman painoksen painovirheisiin löytyy täältä. Monistetta voi ostaa TKTL:n monistemyynnistä (B435, avoinna ma - pe kello 12.00 - 13.00) hintaan 75 mk.

Luentojen kalvo- ja PowerPoint -kopioita, erilaista oheismateriaalia ja harjoitusten vastauksia löytyy TKTL:n salissa A412 olevasta kurssikansiosta. Lisäksi verkossa on luennoilla käsiteltyjä ohjelmaesimerkkejä (selitetty/selitetään siis luennoilla!).

Konekielisimulaattori KOKSI on kopioitavissa täältä. Tarjolla on myös käyttöohje ja käskykannan kuvaus.

Lisämateriaalia

Oheislukemistoiksi soveltuu ainakin:

  • Tanenbaum A.S: Structured Computer Organisation, 4th ed. Prentice-Hall, 1999.
  • van de Goor A.J: Computer Architecture and Design. Addison-Wesley, 1989.
  • Heuring V. P. & Jordan H: Computer Systems Design and Architecture. Addison-Wesley, 1997.
  • Norton P: Inside the PC, 6th ed. Sams Publishing, 1995.
Tietokonelehdistä löytyy paljon kurssin aihepiiriin liittyvää materiaalia, samoin verkosta.


Kurssin asiasisältö

Tämä sisällysluettelo tarkentuu kurssin edetessä ja tulee sisältämään myös tiedot luentojen etenemisestä.
1.  Johdanto     2.8.  
    - atk-järjestelmä
    - tietokoneiden historiaa
    - hierarkkisen tietokoneen tasot
    - ohjelmasta prosessiksi  
2.  Tiedon esittäminen    3.8.   
    - bittiesitys
    - binääriluvut
    - datan  esitys
        - kokonaisluvut, reaaliluvut, merkit
        - muista lausekielten tietotyypeistä
        - kuvat ja ääni
    - tiedon oikeellisuuden tarkistus 
        - pariteettibitit
        - Hamming-koodi
3.  Keskusyksikkö     5.8.  
    - keskussuoritin, väylä, keskusmuisti
    - käskyjen suoritus
   
4.  TTK-91 symbolinen konekieli    6.8.  
     - Tietokoneen TTK-91 rakenne
     - käskyrakenne
     - osoitusmuotoja
     - yhteenveto TTK-91 -käskyistä
    
5.  Konekielisiä ohjelmia     9.8.  
    - KOKSI-simulaattori
    - yksinkertaisia ohjelmia
    - monimukaisempia ohjelmia
          - pinon käyttö
          - linkitetty lista
    -aliohjelmat
           - kutsumekanismi
           - aktivointitietueet 
    - rekursio             10.8.         
    - lisää tietorakenteita
6.  Käännös, linkitys ja lataus 
7.  Yleistä käyttöjärjestelmästä     12.8.   
   7.1 Käyttöjärjestelmän kehityksestä
   7.2 Käyttöjärjestelmien perustyypit 
   7.3 Käyttöjärjestelmän tehtäviä
   
8. Prosessien hallinta 
    8.1. Prosessi 
    8.2  Keskeytyskäsittely
    8.3  Prosessien vuorottaminen    13.8.   
    8.4  Prosessien poissulkeminen ja synkronointi
    
9. Muistinhallinta 
    9.1  Muistin organisointi
    9.2  Kanta- ja rajarekisteriä käyttävä järjestelmä
    9.3  Virtulaalimuisti
         sivu/sivutila, sivutaulu, 
         TLB, sivunpuutoskeskeytys   16.8.   
    9.4  Heittovaihto      
    
10. Tiedostojärjestelmä ja muistilaitteet 
   10.1  Tiedostojärjestelmän periaatteita
   10.2  Tiedostojen talletus levylle
   10.3  Suojaus
   10.4  Tiedoston käyttö
   10.5  Magneettilevyt
   10.6  Optiset levyt   17.8.    
   10.7  Magneettinauha
    
11. Siirräntäjärjestelmä 
    - laiteriipumaton siirräntä, laiteajurit
    - muistiinkuvattu I/O, DMA-siirto
    - syöttö- ja tulostuslaitteita
    
12. Tietoliikenne   19.8.   
    - modeemit
    - lähiverkot
    - Internet 
    
13. Toiminnan nopeutus 
    - liukuhihnoitus, rinnakkaisuus
    - RISC-arkkitehtuurit
14. Kertausta    20.8.   



Suoritus

Hyväksyttyyn suoritukseen vaaditaan noin 30 p. ja parhaaseen arvosanaan 3/3 n. 51 p. Pisteitä saa seuraavasti:

Koe                     max. 50 p.  pe 27.8. klo 12-16  Auditorio (Teollisuuskatu 23)
Laskuharjoitukset       max. 10 p.
                        ----------
Yhteensä                max. 60 p.  

Ohjelmointiharjoitus    max.  3 lisäpistettä. 

Kokeessa kysytään pääosin luentomonisteesta löytyviä asioita sekä harjoituksissa käsiteltyjä tehtäviä.

Kesän kurssiin kurssiin liittyvä 1. uusintakuulustelu järjestetään la 16.10.99 klo 9-13 ja 2. uusintakuulustelu la 27.11.99 klo 9-13. Uusintakuulustelujen paikka ilmoitetaan myöhemmin. Uusintakuulusteluihin on ilmoittauduttava erikseen.


Tämä sivu:
http://www.cs.helsinki.fi/~marttine/tito/kesa99/