1
|
- Keskeiset asiat
- Mitä hyötyä tästä on?
- Mitä seuraavaksi?
- Kurssit?
- Asiat?
|
2
|
- 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
|
- 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
|
- 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
|
|
7
|
|
8
|
|
9
|
- 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
|
- 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
|
- 23 bittiä mantissalle, siten että ...
|
12
|
|
13
|
|
14
|
|
15
|
- Tiedosto koostuu useista lohkoista
- Levyn hakemistossa on tieto kunkin tiedoston käyttämistä lohkoista
- luetaan lohkot annetussa järjestyksessä
|
16
|
|
17
|
|
18
|
|
19
|
|
20
|
|
21
|
- 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
|
|
23
|
- 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
|
|
25
|
- 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
|
|
27
|
- 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
|
- TAS Ri, L
(ttk-91:n
laajennus)
- Kriittinen vaihe
- Toimiiko, jos tulee keskeytys pahassa kohtaa?
|
29
|
- 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
|
- 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
|
- 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
|
- 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
|
33
|
|
34
|
|
35
|
- Mielivaltaisten ohjelmien ominaisuuksia voi päätellä kokonaislukujen ja
niiden välisten funktioiden ominaisuuksista
|
36
|
- 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
|
|