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. |