Tämä materiaali syntyi kerratessani TKK:n Käyttöjärjestelmät kurssin tenttiin. Materiaalissa on varmasti monenelaisia puutteita ja virheitä, mutta ainakin minä pärjäsin näillä tiedoilla kohtuullisen hyvin. Yksinään tällä materiaalilla tuskin pääsee tentistä läpi.

Veikko Savijoki

1. Johdanto

Käyttöjärjestelmän tehtäviä ja palveluita

2. Prosessit ja säikeet

Prosessien tilamalli

os-prosessientilat
  1. Aktiivinen prosessi siirtyy odotustilaan jonkin ulkoisen syyn takia (esim. oheislaitteelta tai toiselta prosessilta tarvittavan datan odotus); käyttöjärjestelmän vuorottajaohjelma (engl. "scheduler") valitsee sen tilalle uuden aktiivisen prosessin valmiustilassa olevien prosessien joukosta.
  2. Odotuksen syy poistuu (esim. tiedonsiirto oheislaitteelta valmistuu) ja prosessi siirtyy valmiustilaan.
  3. Valmiustilassa oleva prosessi saa vuorottajalta suoritusvuoron.
  4. Aktiivinen prosessi siirtyy valmiustilaan, kun sille annettu aikaviipale loppuu. Vuorottaja valitsee uuden aktiivisen prosessin valmiustilassa olevien joukosta.

Tanenbaumin termit: waiting = blocked, suspend = ready

Prosessitaulu

Jokaisella prosessilla on taulussa oma prosessielementti (PCB, Process Control Block), jossa on kaikki se tieto, mikä tarvitaan siirryttäessä Running-tilasta Ready- tai Blocked-tilaan ja takaisin. Elementin osat:

Prosessien ja säikeiden eroja

Säikeille annetaan suoritusaikaa samaan tapaan kuin prosesseillekin, paitsi että aikajako suoritetaan ohjelman saaman ajan puitteissa ja säikeet priorisoidaan ohjelmallisesti.

Prosessin osat
Osoiteavaruus
Globaalit muuttujat
Avoimet tiedostot
Lapsiprosessit
Hälytykset
Signaalit ja signaalinkäsittelijät
Kirjanpito / tilinpito
Säikeen osat
PC - ohjelmalaskuri
Rekisterit
Pino
Tila

Semaforit ja niiden operaatiot

Monitorit

Rinnakkaisuuden ongelmia

Esimerkkinä käytetty paikanvarausjärjestelmää.

3. Lukkiintumiset (deadlocks)

Perusmenetelmät

4. Muistinhallinta

5. I/O

ei niin tärkeä

Termejä

selitykset tähän

Levypään vuorotusalgoritmit

6. Tiedostojärjestelmät

nice-to-know

7.4. Skedulointi

Algoritmeja

Reaali-aikavuorotusmenetelmiä

8.3. Hajautetut järjestelmät

"pienempi aihe"

10.1.-10.2. UNIX

Yleisiä huomioita UNIXista

11.1.-11.3. Windows

Yleisiä huomioita Windowsista

12. Arkkitehtuuri

Erilaisia käyttöjärjestelmätyyppejä