08.03.2018 13:13 Teemu Kerola

Tietokoneen toiminta / Computer Organization I
Verkkoluennot / Web Lectures

Verkkoluennot on tehty 2004-2005. Numerotiedot luennoissa voivat olla vähän vanhoja, mutta muutoin ne ovat täysin käyttökelpoisia. Alkuperäiset Authorware verkkoluennot ovat TKTL intranetissä.

Verkkoluennoista on Flash versiot. Ne on tallennettu aika tiiviisti - suosittelen pause-napin käyttöä eri näkymien välissä sopivan hitaan opiskelutahdin saamiseksi.

Verkkoluennoista on mp4 versiot. Ne on tallennettu aika tiiviisti - suosittelen pause-napin käyttöä eri näkymien välissä sopivan hitaan opiskelutahdin saamiseksi. Ne ovat kooltaan yli 20-kertaisia flash- versioihin verrattuna - tämä kannattaa huomioida, jos lataatte niitä hitaan yhteyden ylitse.

Verkkoluennoista on myös pdf versiot. Niissä ei ole puhuttua tekstiä, mutta opettava tekstimateriaali on luettavassa muodossa.

Web Lectures in Flash. Only lu01e, lu02e, lu03e, lu04e are English. They are recorded pretty tight - I recommend using the Pause button between views to achive slower paced viewing better suitable for studying.

Sisällysluettelot (Contents - only in Finnish. Sorry.)

Luento 1. Tietokonejärjestelmän kokonaisrakenne

	Johdanto
    	Otsake
    	Luennon rakenne
    	Yleiskuva
    	Tietokone
	Ohjelman sijainti ja esitysmuoto
    	Sijainti käyttäjän kannalta
		Pitkäaikainen talletus
		Suoritusaikainen talletus
		Konekieli
		Symbolinen konekieli
		Ohjelma vs. konekieli
		Ohjelman esitysmuodot
		C esimerkki
	Laitteiston nopeus
    	Suorittimen ja muistin sisältö
		Laitteiston nopeus
		Juustokakku
	Yhteenveto
    	Mitä opimme?
		Anna arvio

Luento 2. Ttk-91 esimerkkitietokone ja sen simulaattori

	Johdanto
    	Otsake
    	Luennon rakenne
  Konekielinen ohjelmointi
		Miksi konekieltä?
		Miksi ei oikeata konekieltä?
	Ttk-91 yleiskuva ja laitteisto
		Yleiskuva
		Laitteisto
		Rekisterit
		Kontrolliyksikkö
		Tilarekisterin kuvaus
		Tilarekisterin bitit
		Muistinhallintayksikkö
	Ttk-91 käskyt
		Käskykannan rakenne
		Tietotyypit
		Käskytyypit
		Symbolinen konekäsky
		Todellinen konekäsky
		Käskyesimerkkejä
		Tiedon osoitusmuodot
		Indeksointi
		Tiedonosoitusesimerkit
		Taulukot ja tietueet
	Ttk-91 operaatiot
		Operaatiot
		Muistiinviittausoperaatiot
		I/O-operaatiot
		Kokonaislukuoperaatiot
		Bittimanipulaatiokäskyt
		Bittien siirtokäskyt
		Kontrollinsiirtokäskyt
		Muut käskyt
		Kääntäjän ohjauskäskyt
	Ttk-91 ohjelmat ja simulaattori
		Ohjelma Hello.k91
		Ohjelma Sum.k91
		Ttk-91 simulaattori
	Yhteenveto
		Mitä opimme?
		Kokonaisarvio

Luento 3. Konekielinen ohjelmointi

	Johdanto
    	Otsake
    	Luennon rakenne
 	Tiedon sijainti
		Tiedon sijainti suoritusaikana
		Tiedon viittaamistavat
		Tieto ja sen osoite
		Osoitteen osoite
		Osoitinmuuttujat
		Kaikkialla näkyvä data
		Muistitilan käyttö
		Muistitilaesimerkki
		Muistissa oleva data
		Tiedon sijainti laitteistossa
	Konekielen perusteet
		Peruskäsitteet
		Aritmeettinen lauseke
		Taulukko
		Tietue
		Kontrolli yleensä
		If-then-else
		Case
		Toistolauseet
		For-step-until
		While-do
	Monimutkaisempi konekieli
		Koodin generointi
		Optimoitu For-lause
		Virhetilanteet
		Taulukon indeksitarkistus
		Taulukon alaraja ei ole nolla
		Moniulotteiset taulukot
		Esimerkki 2-ulotteisesta taulukosta
		Moniulotteisten taulukoiden talletus
		Monimutkaiset tietorakenteet
	Yhteenveto
		Mitä opimme?
		Kokonaisarvio

Luento 4. Aliohjelmien toteutus

	Johdanto
		Otsake
		Luennon rakenne
	Aliohjelmat ja niiden parametrit
		Aliohjelmatyypit
		Muodolliset ja todelliset parametrit
		Parametrityypit
		Arvoparametri
		Viiteparametri
		Nimiparametri
	Aliohjelman toteutus
		Aliohjelman komponentit
		Aktivointitietue
		Aktivointitietuepino
		Aktivointitietueen käsittely
		Esimerkki: aliohjelmakutsu
		Esimerkki: aliohjelman toteutus
		Viiteparametrit
		Aliohjelma kutsuu toista aliohjelmaa
		Rekursiivinen aliohjelma
		Esimerkki: rekursio
		KJ-palvelun kutsu
	Yhteenveto
		Mitä opimme?
		Kokonaisarvio

Luento 5. Suoritin ja väylä

  Johdanto
		Otsake
		Luennon rakenne
  Yleiskuva
		Järjestelmän komponentit
		Suorittimen rakenne
		Muistin rakenne
  Konekäskyjen suoritussykli
		Käskyjen nouto- ja suoritussykli
		Systeemin tila
		Konekäskyn rakenne
		Nouto- ja suoritussykli tarkemmin
		Käskyn noutovaihe
		Käskyn purku
		Operandin luku muistista
		ALU-operaatio
		Muistiinkirjoitus
		Ttk-91 nouto- ja suoritussykli
  MMU'n toiminta ja virtuaalimuisti
		MMU'n tekemä osoitteenmuunnos
		Ttk-91 virtuaalimuisti
		Osoitteenmuunnosmenetelmät
		Sivuttava virtuaalimuisti
		Virtuaalimuistin piirteitä
		Virtuaalimuistin ongelmia
  Poikkeukset ja keskeytykset
		Keskeytystilanteet
		Keskeytysten käsittely
		Keskeytyslajit
		Käskyn virhetilanteet
		Käskyn muut poikkeustilanteet
		Ulkoapäin tulleet keskeytykset
		Keskeytyskäsittelijä
		Keskeytykset nouto- ja suoritussyklissä
  Suorittimen suoritustila
		Erilaiset suoritustilat 
		Suorittimen tilan muuttaminen
  Väylä
		Yleiskuva
		Esimerkki: väylähierarkia
  Ttk-91 simulaattori
		Rakenne
		Toiminta
	Yhteenveto
		Mitä opimme?
		Kokonaisarvio

Luento 6. Tiedon esitysmuodot

	Johdanto
		Otsake
		Luennon rakenne
	Tiedon tyypit ja esitys
		Tyyppien luokittelu
		Tieto laitteistossa
		Tiedon esitystapa
		Suorittimen ymmärtämä tieto
	Lukujärjestelmät
		Binäärijärjestelmä
		Binäärilukujen laskutoimitukset
		Binääripiste
		Muunnokset 2to10 ja 10to2
		Esimerkki: 10to2 kokonaisosa
		Esimerkki: 10to2 desimaaliosa
		Heksadesimaaliesitys
		Oktaaliesitys
	Monitavuinen tieto
		Tavujen talletusjärjestys
		Big vs. Little Endian
	Kokonaisluvut
		Negatiiviset kokonaisluvut
		Kahden komplementti
	Liukuluvut
		Liukuluvut
		Liukulukujen esitys
		IEEE liukulukustandardi
		IEEE liukulukuesimerkkejä
		IEEE esitystapaa vastaava arvo
	Merkit ja merkkijonot
		Merkkien esitystapa
		UCS ja Unicode
		Merkkijonot
	Totuusarvot
		Talletus ja käyttö
	Kuvat, äänet ja muu data
		Kuvien talletus
		Kuvien käsittely
		Videokuva
		Näytönohjain
		Äänen talletus
		Muu tieto
	Yhteenveto
		Mitä opimme?
		Kokonaisarvio

Luento 7. Tiedon tarkistus ja muisti

	Johdanto
		Otsake
		Luennon rakenne
	Esitysmuodot
		Konekäskyjen esitysmuoto
		Ttk-91 konekäskyn rakenne
		Taulukkojen esitysmuoto
		Tietueiden esitysmuoto
		Olioiden esitysmuoto
	Tiedon muuttumattomuus
		Tiedon tarkistus
		Muuttumattomuuden valvonta
		Esimerkki: henkilötunnus
		Bittitason tarkistukset
		Pariteettibitti
		Hamming-etäisyys
		Virheen korjaava koodi
		Hamming koodi
		Esimerkki: Hamming-koodi
		Cyclic Redundancy Code
		Käyttöalueet
		Laitteiden monistaminen
	Välimuisti
		Perusidea
		Piirteitä
	Muisti
		Muistin toteutus
		RAM teknologia
		ROM teknologia
		ROM teknologian kehitys
	Yhteenveto
		Mitä opimme?
		Kokonaisarvio

Luento 8. Ohjelman ja käyttöjärjestelmän toteutus

	Johdanto
		Otsake
		Luennon rakenne

	Prosessi
		Ohjelman esitysmuoto
		Ohjelma ja prosessi
		Prosessin elinkaari
		Prosessin esitysmuoto
		Kuvaajan sisältö
		Prosessin tilanvaihto
		Prosessit jonoissa
		Esim: I/O-keskeytys
		Prosessin vaihdon toteutus
		Esimerkki: prosessin vaihto
		Prosessin prioriteetti
	Käyttöjärjestelmä palvelut
		Käyttäjän näkökulma
		Ylläpitäjän näkökulma
		Käyttöliittymä laitteistoon
		Käyttöjärjestelmän tavoitteet
		Resurssien valvonta
		Eheyden turvaaminen
	Käyttöjärjestelmän rakenne
		Pääosat
		KJ-rutiinien suorittaminen
		KJ-rutiinien kutsu ja paluu
		KJ:n suoritus
		Esimerkki KJ-palvelusta
	Yhteenveto
		Mitä opimme?
		Kokonaisarvio

Luento 9. Ulkoinen muisti ja I/O:n toteutus

	Johdanto
		Otsake
		Luennon rakenne
	Muistin eri tasot
		Muistihierarkia
		Virtuaalimuisti
		Virtuaalimuistin toteutus
	Kiintolevyt
		Fyysinen rakenne
		Levymuistin saantiaika
		Tiedoston talletus levylle
		Tiedostot ja VM tukimuisti
		DOS/FAT-levyke
		Hakemistoalkio ja FAT
		FAT-esimerkki
	I/O laitteet
		Laitteiden liittäminen
		Laiteohjain
		Laiteohjaimen käsittely
		I/O tyypit
		Laiteajuri esimerkki
		Laiteajuri toteutus
	Tiedostot
		Tiedostojärjestelmä
		Tiedostopalvelin
	Erilaiset levymuistit
		Magneettiset levyt
		Optiset levyt
		USB muistitikku
	Yhteenveto
		Mitä opimme?
		Kokonaisarvio

Luento 10. Käännös, linkitys ja lataus

	Johdanto
		Otsake
		Luennon rakenne
	Lausekielinen ohjelma
		Käännöksen vaiheet
		Ttk-91 esimerkki
		Ttk-91 objektimoduuli
		Korkean tason kielet
	Assembler-käännös
		Käännöksen vaiheet
		Ttk-91 esimerkki
		Ttk-91 objektimoduuli
		Korkean tason kielet
	Linkitys
		Uudelleensijoitusongelma
		Esimerkki
		Viittauskohdat linkitettynä listana
		Staattinen linkitys
		Windows DLL
		Sijainnista riippumaton koodi
	Lataus
		Toiminta
		Nimien sidonta
	Yhteenveto
		Mitä opimme?
		Kokonaisarvio

Luento 11. Tulkinta ja simulointi

	Johdanto
		Otsake
		Luennon rakenne
	Java virtuaalikone (JVM)
		Java-ohjelmien suoritustavat
		Java virtuaalikone
		Pino
		Metodialue 
		Vakioallas
		Keko
		Natiivimenetelmien pinot
		Rekisterit
		Kehys tarkemmin
		Paikalliset muuttujat
		Tiedon osoitusmoodit
		Yksinkertainen esimerkki
		Käskykanta
	Java ohjelmien suoritus
		Erilaiset suoritustavat
		Java-tulkki
		Käännös natiivikoneelle
		Just-In-Time -käännös
		Java-suoritin
		PicoJAVA II pino
		PicoJava II rekisterit
		PicoJAVA II käskyjä
		PicoJAVA II toteutuksia
		MAJC
	Tulkinta ja emulointi muualla
		C#
		ttk-91
		Transmetan Crusoe
	Yhteenveto
		Mitä opimme?
		Kokonaisarvio