ITK145 - Käyttöjärjestelmät --- Kesä 2005

Pystytetäänpä kumminkin kotisivu myös kesän kurssia varten. Katso myös Ernvallin kevään 2005 kurssin kotisivu. Siellä on mm. demo-ohjeen päivitetty versio. Aikataulut ja paikat päivittyvät ensimmäisenä kurssin Korppi-sivulle. Tällä sivulla on kesän 2005 kurssi-ilmentymään liittyviä tiedotteita.

Tenttitärpit

Tässä PDF-dokumentissa on aiemmin kysyttyjä tenttikysymyksiä, jotka viimeisellä luennolla käytiin läpi.

Demo-ohjeistusta

Käydään läpi Ernvallin demo-ohjeen päivitettyä versiota. Karkeasti ottaen alku- ja lopputohinoiden pitäisi toimia mikroluokassa näin:

Ernvallin materiaali omatoimiseen Unix-harjoitteluun on käytettävissä.

Lisämateriaalia / Reference material

(Kopioitu luentomonisteen sivulta 64)

Käyttöjärjestelmistä / About operating systems

Unixista / About Unix

Windowsista / About Windows

+ Sivistävää iltalukemista

Harjoitustyö

Tekeminen ja palauttaminen

Harjoitustyö tehdään Ernvallin demo-ohjetta mukaillen mieluiten heti, kun tuntuu, että alat ymmärtää mistä on kyse. Demotilaisuudessa tähän saa ohjausta. Palautus seuraavasti: lähetätte mulle sähköpostin liitetiedostoina (mieluiten tosiaan normaaliliitteinä, ei "multiparttina") jaetussa etusivussa mainitut asiat. Sitten käväisette tuomassa paperitulosteet, joiden mukana on täytetty etusivu. Etusivun email-riville sama sähköpostiosoite, josta lähetit sähköisen version etukäteen.

Aiheen tarkentaminen

Jos ette ymmärrä tehtävänantoanne, voitte joko (1) kysyä siihen selvennystä tai (2) hakea uuden tehtävänannon, joka saattaa olla selvempi.

GCC -kääntäjän käyttö

Jos mietit, millä työkalulla harkan voisi tehdä kotona, sallin (uskalluksen salliessa jopa suosittelen), että teet 32-bittisen assembler-käännöksen vapaasti saatavissa olevalla kääntäjällä gcc. Windows-käyttäjät tarvitsevat tähän esim. Minimalist GNU for Windows -ohjelmiston.

Luentomoniste avoimen opiskelijoille:

Luentomoniste kuuluu avoimen yliopiston opintomaksuun. Ottakaa yhteyttä Mirja Tervoon (mirja.tervo@avoin.jyu.fi). Monisteen voi kuulemma noutaa Tourulasta tai sen saa jopa postitse. (Muut voivat ostaa monisteen Kampus Kirjasta Kauppakadulta.)

Haja-ajatuksia

kurssin puolivälissä

Käyttöjärjestelmät on mitoitettu 28 luentotunnin mittaiseksi. Nyt näistä on takana 12, ja luentomateriaali näyttää kohta ikään kuin loppuvan kesken... Johtopäätös lienee, että olen käsitellyt asioita turhan nopeasti ja pinnallisesti (?). Yritän korjata asian siten, että kurssin loppuosassa (kun moniste on kahlattu läpi) pyritään tutkimaan kurssin osa-alueita vielä käytännön esimerkkien kautta. Koetetaan mahdollisuuksien mukaan löytää jotain sellaista, jota innokkaat pystyvät pikkuvaivalla kokeilemaan ja varioimaan myös itse mikroluokissa. Syvennetään hiukan johonkin suuntiin, ja yritetään maksimoida eväät, joita kurssilta saa.

toisen luennon jälkeen

Tarkoitus oli edetä hieman pidemmälle luentomonisteen ohjelmaesimerkeissä. Toisaalta pinon olemus piti ymmärtääkseni selvittää ennen kuin konekielisiä aliohjelmia on mitään mahdollisuutta ymmärtää. Pahoittelen, että kalvoon "reaaliajassa" tuhraamani kuvat olivat sotkuisia ja että hukkasin ensin aikaanne piirtämällä väärin.

Huomatkaa muuten: vaikka prosessorin pino-operaatiot push ja pop toimivat pinon huipulla, niin tavalliset konekieliset ohjelmat käyttävät pinon osoittamaa muistialuetta myös keskeltä! (Eli "puhdasoppisesta" pinotyyppisestä käytöstä ei ole kyse, vaikka pinon huippu käyttäytyy kuten kunnon pinossa kuuluukin).

ensimmäisen luennon jälkeen

Huomasin, että Käyttöjärjestelmät -kurssi elää hieman vielä jollain aiemmalla vuosikymmenellä. Nykyään ihmisille tuttu virtuaalikone on Java luokkakirjastoineen eikä C (tai edes C++). Kuitenkin uskon, että kurssin perusteema, koneen ja laitteiston lähellä käväisy, on hyödyllistä sivistystä. Miten tuo "pikku kuilu" nykypäivän korkean tason ohjelmoinnin ja tietokonelaitteiston ymmärtämisen välillä tasoitetaan? Kulkisiko jokin lähestymistapa suorempaa reittiä Java-rajapinnasta koneen bittiväyliin? Ainakin kesällä 2005 joudumme vielä käväisemään "harhapoluilla" C-kielen kanssa. Vaikka eihän kai ohjelmointi niin kovin erilaista ole: käskyä käskyn perään vaan... aliohjelman kai pitäisi olla yksinkertaisempi käsite kuin oliosysteemi... Joka tapauksessa ehdotuksia kuiluongelman ratkaisemiseksi otetaan vastaan, jos joku keksii. Tänä kesänä ei ehditä suuntaa muuttamaan, mutta tulevaisuuttahan aina teemme joka tapauksessa.

Linkkejä

Kokonainen käyttöjärjestelmä lähdekoodina

Lisätietoa muutamista käyttöjärjestelmän osista

Laitteistosta

Säikeistä ja yhdenaikaisohjelmoinnista (concurrent...)

Shell-ohjelmoinnista

Tekstieditointia mm. Unixeissa

Aiempien kurssikertojen linkkilistaa

Tässä on suoria linkkejä J. Ernvallin kirjoittamaan materiaaliin sekä nettilähteisiin, joihin aiemmilla kurssikerroilla on ollut linkkejä.