Etusivu | Materiaali | -- Luennot -- | About us |
ITKA203 K�ytt�j�rjestelm�t --- kes� 2011 --- Luennot ja muistiinpanot
Alla on lista suunnitelluista otsikoista ja k�sitelt�vist� aiheista. Mukailtaneen kes�n 2007 kulkua. Luennolla n�ytettyyn materiaaliin tulee linkit sit� mukaa kun kes� 2011 avautuu. Huom: Kyseess� on suunnitelma, ja toteuma voi olla erilainen.
# | vko | pv | Otsikko | Aiheet |
---|---|---|---|---|
1 | 21 | ti | K�ynnistys | K�ynnistys: Kurssi-info, johdattelua ja motivointia, esitietoja. Visuaalisia efektej� ja syntetoitu ��niraita. |
2 | 21 | ke | Mik� on tietokone | Kerrokset k�ytt�j�n ja laitteiston v�liss�. Tiivistys tietokoneen rakenteesta, Von Neumann -arkkitehtuuri, k�skykanta, nouto-suoritussykli yksinkertaisimmillaan. |
3 | 21 | to | Ohjelmointi ja ohjelmat | Ohjelmointikielet, k��nt�j�t, kirjastot, virtuaalikoneet, emulaattori. |
4 | 22 | ti | Ohjelman suoritus | Esimerkkiarkkitehtuuri x86-64, esimerkkej� konekielisist� k�skyist�, ohjelman virtuaalinen muistiavaruus, osoitteenmuodostus, kutsupino, aliohjelma-aktivaatio (alustavasti). Havaintoja k�ytt�j�rjestelm�lt� vaadituista ominaisuuksista. |
5 | 22 | ke | Prosessit 1/4 | Aliohjelma-aktivaatio ja suorituspinon k�ytt� (t�ydennyst�), parametrien ja paluuarvon v�litys x86-64:ss�. Prosessorin konteksti, prosessi. Keskeytys. |
6 | 23 | ti | Prosessit 2/4 | Prosessien luonteesta ja k�ytt�j�rjestelm�n tietorakenteista, joita prosessien hallitsemisessa tarvitaan. Prosessielementti, Ready-jono. Yksinkertainen vuoronnusperiaate jonottamalla. Ohjelmoitu keskeytys. K�ytt�j�rjestelm�n kutsurajapinta, esimerkki k�ytt�j�rjestelm�kutsusta. |
7 | 23 | ke | Prosessit 3/4 | FLIH; esim. x86-64. keskeytykset ja prosessien tilasiirtym�t tarkemmin. Prosessitaulu. Prosessin luonti, k�ytt�j�rjestelm�kutsu fork(). Shellin toimintaperiaate. Prosessien vuorottelu. Prosessien kommunikointi. S�ie. |
8 | 24 | ti | Prosessit 4/4 | Prosessien kommunikointitapoja. Synkronointi. Kriittinen alue, poissulku. Tuottaja-kuluttaja -ongelma ja ratkaisu. |
9 | 24 | ke | Muistinhallinta | Edellist�: deadlock-tilanne. Uutta: Muistinhallinta ja sivuttava virtuaalimuisti. Osoitteenmuodostus yleisesti ja esimerkkin� my�s x86-64. Muistihierarkia (rekisterit, v�limuistit, keskusmuisti, levy). Sivut ja sivujen hallinnan tietorakenteet: sivutaulut ja kehystaulu. Sivunvaihtokeskeytys. LRU-valintamenettely. |
10 | 25 | ti | Tiedostoj�rjestelm�t | I/O laitteet, levyt, ajurit, tiedostoj�rjestelm�t. |
11 | 25 | ke | Skripteist� | Shell-skriptit, p��m��ri� ja huomioitavaa. |
12 | 26 | ti | Erin�isi� seikkoja | Java-virtuaalikoneen tavukoodi ja disassembly, metodin suoritus "konekielitasolla" Javassa. Kirjastot ja linkitt�minen. Vuoronnusmenettelyj�. Kovalevyn vuorontamisesta. Reaaliaikaj�rjestelmist�. |
13 | 26 | ke | Suunnittelusta | Hiukan palautetta demoista ja otteita vastauksista. Katsaus k�ytt�j�rjestelmien ja tietokonelaitteistojen historiaan. K�ytt�j�rjestelm�n suunnitteluun liittyvi� tavoitteita ja vaihtoehtoja. Yleisarkkitehtuuri Unix / Linux / Windows -k�ytt�j�rjestelmiss�. |
14 | 26 | to | Lopputoimet | Yhteenvetoa, kertausta, paikkailua ja tenttit�rppej�. |
Alle tulee tarkemmat luentomateriaalit kurssin edetess�, ml. linkit videotaltiointeihin ja esimerkkiohjelmiin.
Luento 1: K�ynnistys
-- takaisin luentolistaan --Materiaalit
Linkkej�
- Instanssi - tapahtuma, joka tuli ohimennen mainittua
Luento 2: Mik� on tietokone
-- takaisin luentolistaan --Materiaalit
- Muistiinpanot
- Tietotekniikan perusteet -luentomoniste (otettiin poimintoja sivuilta 1-70).
- Videot (saman sivun allehan n�m� kaikki n�k�j��n tulee...)
Linkkej�
- Linux kernel
- the Linux Cross Reference On-line -ty�kalu linuxin koodin selailuun
- Pieni "kartta", josta voi ottaa suuntaa koodien tutkimisessa. T�m� on osa isompaa nettijulkaisua.
Luento 3: Ohjelmointi ja ohjelmat
-- takaisin luentolistaan --Materiaalit
- Muistiinpanot
- Tietotekniikan perusteet -luentomoniste (hiukan palattiin viel� t�h�n).
- Videot
Esimerkkiohjelmat
- Hei, maailma! Javalla HeiMaailma.java ja C:ll� heimaailma.c
- Hei, kaikki! Javalla HeiKaikki.java ja C:ll� heikaikki.c
- C-kielisen ohjelman assembler-k��nn�s heikaikki.s
- C-ohjelma, joka k�ytt�� aliohjelmakirjastoa "libm" heimatikka.c
Linkkej�
- JPC "The Pure Java x86 PC Emulator"
Luento 4: Ohjelman suoritus
-- takaisin luentolistaan --Materiaalit
Esimerkkiohjelmat
- Hei, kaikki! Javalla HeiKaikki.java ja C:ll� heikaikki.c
- C-kielisen ohjelman assembler-k��nn�s heikaikki.s
Luento 5: Prosessit 1/4
-- takaisin luentolistaan --Materiaalit
Esimerkkiohjelmat
- Viel� kerran sama esimerkki C:ll� heikaikki.c
- Ja assembler-k��nn�s heikaikki.s
Luento 6: Prosessit 2/4
-- takaisin luentolistaan --Materiaalit
Esimerkkiohjelmat
- Ja yh� t�m� aiempi esimerkki C:ll�; nyt sis�lt�� aliohjelman, joka kutsuu aliohjelmaa ja palauttaa paluuarvon heikaikki.c
- Assembler-k��nn�s heikaikki.s n�ytt�� nyt, kuinka paluuarvo j�tet��n sovittuun rekisteriin RAX, josta kutsuva ohjelmaosio saa sen k�ytt��ns�.
- Ohjelma pois.c, jossa on pari erilaista tapaa prosessille saada itsens� lopetettua. Huomaa ett� tietenkin suoritus loppuu siihen tapaan, joka l�hdekoodissa nyt sattuu olemaan ensimm�isen�.
- Ohjelma minish.c, jota tutkaillaan v�h�n my�hemmin lis��. T�n��n t�m� vedettiin h�th�t�� pelikent�lle esimerkkin� ohjelmasta, joka sattuu odottamaan sy�tett� k�ytt�j�lt� (ei tarvii viel� t�n��n kummemmin mietti� t�t� ohjelmaa.)...
Linkkej�
- Lista Linuxin j�rjestelm�kutsuista (parempi linkki kuin luennolla vilautettu)
Luento 7: Prosessit 3/4
-- takaisin luentolistaan --Materiaalit
Esimerkkiohjelmat
- Minimaalinen shell minish.c -- esimerkki prosessin luonnista unixissa.
- Esimerkki signaaleista sigesim.c
- Esimerkki viesteist� chattomyself.c
Linkkej�
- Lest We Remember ... ohimennen mainittu video, jossa demonstroidaan muistin s�ilymist� virran katkaisemisen j�lkeen
Luento 8: Prosessit 4/4
-- takaisin luentolistaan --Materiaalit
Esimerkkiohjelmat
- Esimerkki signaaleista sigesim.c
- Esimerkki viesteist� chattomyself.c
- Esimerkki jaetusta resurssista ja ongelmasta thread_nosem.c (esimerkki k�ytt�� ns. POSIX-s�iekirjastoa ja semaforia kerroksena Linuxin ytimen p��ll�; semaforin idea kuitenkin n�ytt�ytyy normaalisti)
- Esimerkki jaetusta resurssista ilman ongelmaa thread_sem.c (esimerkki k�ytt�� ns. POSIX-s�iekirjastoa ja semaforia kerroksena Linuxin ytimen p��ll�; semaforin idea kuitenkin n�ytt�ytyy normaalisti)
- "Sattuu sit� paremmissakin piireiss�" (Windowsin dialogi-ikkuna MaB-salin tietokoneella luennon p��tytty�)
Luento 9: Muistinhallinta
-- takaisin luentolistaan --Materiaalit
- Muistiinpanot
- Ruokailevat n�rtit - Deadlock
- Piirros prosessien tiloista, muistin sivutuksesta ym.
- Videot
Linkkej�
Luento 11: I/O ja tiedostoj�rjestelm�t; Skriptit
-- takaisin luentolistaan --Materiaalit
Esimerkkiohjelmat
- Esimerkki huonosta skriptist� latin9_to_utf8.sh (huono, koska ei tarkista erityistilanteita kuten tiedostojen olemassaoloa; tekee my�s v�liaikaistiedostot oleskeluhakemistoon... mutta t�m� teki viime viikolla kertaalleen nopsasti sen mit� piti eli muunsi tietyt tekstitiedostot merkist�st� toiseen...)
- Esimerkki ihan v�h�n paremmasta skriptist� latin9_to_utf8_paremmin.sh (pari tarkistusta enemm�n ja v�liaikaiset tiedostot siell� miss� pit��kin, jonkinlainen yritelm� est�� tiedostojen tuhoutuminen skriptin per�kk�isell� k�yt�ll� samaan tiedostoon)
Linkkej�
Luento 12: Erin�isi� seikkoja
-- takaisin luentolistaan --Materiaalit
Esimerkkiohjelmat
- Simppeli Java-ohjelma LaskunToimittaja.java sek� javap-ty�kalulla tehty symbolinen tavukoodik��nn�s molemmista luokista: LaskunToimittaja.disassembly ja Laskija.disassembly
Linkkej�
Luento 13: Suunnittelusta
-- takaisin luentolistaan --Materiaalit
- Muistiinpanot
- Videot
- Huomioita demosta 1 demo1_palautetta.txt
- Pari kuvaa suoraan Stallingsin kirjasta, kaiken uhalla otettu k�ytt��n: f01.pdf f13.pdf f14.pdf f15.pdf f16.pdf f18.pdf
Linkkej�
- alan lehti� ja kongresseja. Googlettamalla l�ytyy varmasti lis��.
Luento 14: Lopputoimet
-- takaisin luentolistaan --Materiaalit
- Muistiinpanot
- Videot
- Toiseksi viimeinen versio materiaalista ja tenttikysymyksist�.
Viimeksi kajottu 2011-06-30.