UNIX/Linux toimintoja

Kurssin tavoitteena ei ole opettaa kaikkia käyttöjärjestelmien toteuttamiseen liittyviä yksityiskohtia vaan antaa valmiudet mm. tiedonhankintaan alan kirjallisuudesta. Tämän viikon tehtävissä ryhmät valmistelevat ja esittävät muille ryhmille todellisen käyttöjärjestelmän (Linux) systeemikutsuihin ja toteutukseen liittyvän tietopaketin.


Esittäkää muille ryhmille valitsemanne aiheen pääpiirteet. Mistä on kyse? Miten asia toimii? Miksi tämä on näin? Voisiko toteutus olla paremmin?
  1. Signaalit Linux-prosesseissa: Minkälaisia on? Miten voisit hyödyntää signaaleja omassa ohjelmassasi?
  2. Säikeet Linuxissa. Miten Linux erottelee prosessit ja säikeet? Signaalit olivat UNIX-maailmassa alunperin prosessikohtaisia. Miten signaalit ja säikeet toimivat yhteen? Mikä säie vastaa prosessin saamiin signaaleihin? Mitä vaihtoehtoja on olemassa? Mikä vaikuttaisi parhaalta ratkaisulta?
  3. Uusien prosessien luonti ja kuolema. Kutsut fork(), exec(), wait(), exit(): Mitä tekevät? Miten niitä käytetään?
  4. Prosessien välinen kommunikointi putkien (pipe) avulla.

Lähdeviite:

Daniel P. Boviet, Marco Cesati, "Understanding the Linux Kernel", O'Reilly and Associates, Inc., 2003, ISBN 0-596-00213-0