previous next Up Title Contents Index

Tehtävä 56

Prosessien ajoituksen simulointi

Moniajokäyttöjärjestelmässä suoritetaan useita prosesseja rinnakkain. Käytännössä voidaan noudattaa ns. aikaviipaletekniikkaa, missä kukin prosessi saa vuorollaan käyttöönsä pienen aikaviipaleen prosessoriaikaa. Aikaviipale voi olla esim. 200 ms. Koska prosessien kokonaisaikatarpeet vaihtelevat, eri prosessit tarvitsevat eri määrän aikaviipaleita valmistuakseen. Prosessin läpimenoaika järjestelmässä muodostuu näin ollen prosessoriajasta ja odotteluajasta.

Prosessien ajoitus eli skedulointi voi perustua lisäksi prioriteettien käyttöön: korkeampiprioriteettiset työt palvellaan aina loppuun ennen kuin aletaan palvelemaan seuraavan alemman prioriteettitason töitä. Jos järjestelmään saapuu suorituksessa olevaa työtä korkeamman prioriteetin työ, se saa seuraavan aikaviipaleen.
Yhden prioriteettitason sisällä työt ovat jonossa (FIFO). Ajoitus toimii siten, että käytettyään aikaviipaleen prosessi siirtyy (siirretään) saman prioriteetin omaavien töiden jonon viimeiseksi.

Kirjoita ohjelma, jolla voit simuloida yllä esitettyä aikaviipaletekniikkaan perustuvaa prioriteettiskedulointia.

Ohjelmalla on käyttöliittymä, joka antaa käyttäjälle mahdollisuuden

lisätä järjestelmään uusia töitä (yksi kerrallaan)
ajaa järjestelmää eteenpäin aikayksikkö kerrallaan (aikayksiköksi voidaan valita aikaviipaleen pituus)
näyttää järjestelmän tila graafisesti (käytä hyväksesi edellisessä tehtävässä toteuttamaasi grafiikka-pakettia.

previous next Up Title Contents Index