Notes
Slide Show
Outline
1
Luento 12
Yhteenveto
  • Keskeiset asiat
  • Mitä hyötyä tästä on?
  • Mitä seuraavaksi?
  • Kurssit?
  • Asiat?
2
Tavoitteet
  • Ymmärtää tietokonejärjestelmän keskeiset piirteet sillä suoritettavan ohjelman näkökulmasta
  • Miten tietokonejärjestelmä suorittaa sille annettua ohjelmaa?
  • Minkälaista koodia suoritin ymmärtää?
  • Mikä on käyttöjärjestelmän rooli?


3
Mitä hyötyä tästä on?
  • Ohjelman suoritusnopeus perustuu suorittimen (CPU) suorittamiin konekäskyihin, ei pelkästään ohjelman korkean tason esitysmuotoon
  • Ylemmän tason asioiden ymmärtäminen on helpompaa (mahdollista), kun ymmärtää alemman tason asiat
4
Keskeisiä asioita
  • Järjestelmä kokonaisuudessaan, nopeuserot
  • Esimerkkikone ja sen käyttö
  • Konekielinen ohjelmointi
  • Suoritin, rekisterit, väylät, muisti
    • konekäskyjen suoritussykli, keskeytykset
  • Aktivointitietuepino, aliohjelmien toteutus
  • Tiedon esitysmuodot (ohjelma vs. laitteisto)
  • Prosessi ja sen toteutus (PCB)
  • I/O laitteet
    • laiteajurit, laitekeskeytykset, levymuisti
  • Ohjelmien suoritus järjestelmässä
    • käännös, linkitys, lataus, tulkinta, emulointi, simulointi
  • Esimerkkejä keskeisistä asioista seuraavilla kalvoilla
5
 
6
Esimerkkikone: TTK-91 laitteisto
7
Konekielinen ohjelmointi
8
Käskyjen nouto- ja suoritussykli
9
Suorittimen tilat
  • Käyttäjätila
    • voi käyttää vain tavallisia käskyjä
    • voi viitata vain käyttäjän omaan muistiavaruuteen (MMU valvoo)
  • Etuoikeutettu tila tai (KJ:n) ytimen tila
    • voi käyttää kaikkia konekäskyjä, myös etuoikeutettuja (esim. clear_cache, iret)
    • voi viitata kaikkialle muistiin, myös käyttöjärjestelmän ytimeen (kernel)
      • voi käyttää (myös) suoria muistiosoitteita (PA)
10
Aktivointitietue
  • Aliohjelman toteutusmuoto (ttk-91)
    • funktion paluuarvo 
      (tai kaikki paluuarvot)
    • kaikkien (sisäänmeno- ja ulostulo-)
      parametrien arvot
    • paluuosoite
    • kutsukohdan aktivointitietue
    • kaikki paikalliset muuttujat ja tietorakenteet
    • aliohjelman ajaksi talletettujen rekistereiden alkuperäiset arvot
11
Tiedon esitysmuodot
  • 23 bittiä mantissalle, siten että ...


12
Prosessin tilat ja elinkaari
13
Prosessit jonoissa ja PCB
14
Laiteohjain ja laiteajuri
15
Levyjen käyttö
  • Tiedosto koostuu useista lohkoista
    • lohko per sektori
  • Levyn hakemistossa on tieto kunkin tiedoston käyttämistä lohkoista
    • luetaan lohkot annetussa järjestyksessä
16
Lausekielestä suoritukseen
17
Tulkinta ja emulointi
18
 
19
Kurssien välisiä suhteita
20
Asioiden välisiä suhteita
21
Tietokoneen rakenne, 2 ov
  • Yksi taso alaspäin TITOsta
  • Sopiva 2. vuoden opiskelijalle
  • Useissa yliopistoissa yhdistetty TITOon
  • ”Miten kellopulssi saa suorittimen suorittamaan konekäskyjä?”
  • ”Miten suorittimen aritmetiikka on toteutettu?”
  • Usea käsky on todellisuudessa suorituksessa samanaikaisesti
    • Miten tämä toteutetaan, mitä ongelmia siitä seuraa ja miten noita ongelmia ratkotaan?
  • Jatkoa syventävällä tasolla
    • Tietokonearkkitehtuurit, 4 ov
22
TiKRa ….
23
Käyttöjärjestelmät I, 2 ov
  • Sopiva 2. vuoden opiskelijalle
  • Käyttöjärjestelmän rooli yhden prosessin valvojana
  • Täsmentää ja jatkaa TITOn käyttöjärjestelmien piirteiden esittelyä
  • Samanaikaiset prosessit resurssien käyttäjinä
  • Systeemin resurssien jakelu
  • Prosessien vuoronanto (skedulointi)
  • Jatkoa perustasolla ja syventävällä tasolla
    • Käyttöjärjestelmät II, 2 ov
    • Käyttöjärjestelmämetodiikka, 3 ov
24
KJ ...
25
Tietoliikenne I, 2 ov
  • Sopiva 2. vuoden opiskelijalle
  • Tietokoneverkkojen peruspalvelut käyttäjälle ja sovelluksille
  • Verkkojen tiedonsiirron perusvälineistö
  • Verkkoarkkitehtuurin kerrosrakenne ja kunkin tason palvelut
  • Jatkoa perustasolla ja syventävällä tasolla
    • Tietoliikenne II, 2 ov
    • Tietoliikennejärjestelmät, 3 ov

26
Tietoliikenne …
TCP/IP -kerrosmalli
27
Rinnakkaisohjelmointi, 2 ov
  • Sopiva: 2. vuoden opiskelijoille
  • Samanaikaisuuden aiheuttamat ongelmat
    • järjestelmä kaatuu … miksi niin kävi?
  • Samanaikaisuuden aiheuttamat vaatimukset systeemille
  • Prosessien synkronointi eri tapauksissa
    • odottamalla vai prosessia vaihtamalla? miksi?
  • Prosessien kommunikointi eri tavoin
    • yhteinen muistialue? viestit? miksi?
    • verkon ylitse?
  • Jatkoa syventävällä tasolla
    • Hajautetut järjestelmät, 3 ov
28
RIO: synkronointiongelman ratkaisu Test-and-Set -käskyllä
  • TAS  Ri, L
    (ttk-91:n
     laajennus)
  • Kriittinen vaihe
  • Toimiiko, jos tulee keskeytys pahassa kohtaa?
    • Mikä on “paha kohta”?
29
Ohjelmointikielten
periaatteet, 4 ov
  • Ei luennoitu enää useaan vuoteen
  • Lähtötiedot: OLPM, TiTo, ohjelmointilabrat
  • Sopiva: 3. vuoden opiskelijat
  • Ohjelmointikielten määrittelyn välineistö
  • Erilaiset ohjelmointiparadigmat esimerkkikielten avulla
    • proseduraaliset kielet
    • oliokielet
    • funktionaaliset kielet
    • logiikkaohjelmointikielet
  • Muita asiaan liittyviä kursseja:
    • Symbolinen ohjelmointi, tekoälykielet
30
Ohjelmointikielten
kääntäjät, 5 ov
  • Ei luennoitu enää useaan vuoteen
  • Lähtötiedot: OLPM, ohjelmointilabrat
  • Sopiva: 3. vuoden opiskelijat
  • Ohjelmointikielten kääntäjien tyypit
    • rekursiivisesti etenevä jäsentelijä
  • Kääntäjän osat
    • selaaja
    • jäsentelijä
    • semantiikan analyysi, koodin generointi
31
Spesifioinnin ja verifioinnin perusteet, 2 ov
  • Lähtötiedot: hajautuksen ja samanaikaisuuden problematiikka
  • Sopiva: 3. vuoden opiskelijalle
  • Mallinnetaan prosesseja siirtymäsysteemeillä
    • askel: konekäsky? metodi? tapahtuma? ohjelma?
  • Automaattisen verifioinnin periaatteet
  • Yksinkertaisien protokollien verifiointi
  • Jatkoa syventävällä tasolla
    • Ohjelmien semantiikka, 3 ov
    • Automaattinen verifiointi, 3 ov
32
Ohjelmoinnin ja laskennan perusmallit (OLPM), 2 ov
  • Lähtötiedot: matematiikkaa
    • appro tai diskr. mat., ... + tira?
  • Sopiva: 1. vuoden (2. vuoden?) opiskelijalle, joka on opiskellut jo matematiikkaa
  • Laskennalliset ongelmat, niiden luokittelu
  • Äärelliset automaatit ja säännölliset kielet
  • Kieliopit
  • Turingin kone
  • Jatkoa syventävällä tasolla
    • Laskennan teoria, 3 ov


33
Laskennan teorian perusta (1)
34
Laskennan teoriaa … (4)
35
Laskennan teoriaa ... (4)
  • Mielivaltaisten ohjelmien ominaisuuksia voi päätellä kokonaislukujen ja niiden välisten funktioiden ominaisuuksista
36
Laskennan teoriasta ja algoritmianalyysistä 
todistettuja lauseita (3)
  • Valitaanpa mikä tahansa aikaraja tai muistin koko, niin aina on olemassa sellainen ongelma, että
    • (1) siihen on olemassa ratkaisu ja
    • (2) kaikki ongelman ratkaisevat ohjelmat vievät enemmän aikaa tai muistitilaa kuin ennalta annettu raja
  • On olemassa sellaisia ongelmia, että niitä ei voi ratkaista millään tietokoneella
  • On olemassa suuri joukko tunnettuja vaikeita ongelmia, joista ei vielä tiedetä, kuinka
    vaikeita ne oikeastaan ovat
37
--
Luennon 12
ja
koko kurssin
loppu
--