#include // runner sisaltaa kaikki kayttojarjestelman prosessit // kun runneria kutsutaan se aloittaa prosessin pnum // suorittamisen tilasta state // kun prosessia on suoritettu se palauttaa ymp:n // uuden arvon (kayttojarjestelma sijoittaa sen PCB:iin) // runner palauttaa arvonaan tiedon siitä onko prosessi päättynyt vai ei // jos runner == 0, prosessi ei ole loppunut // jos runner == 1, prosessi päättyi (poista PCT:stä) int pros1(int &st) // prosessi tulostaa viisi riviä ruudulle // tämä ei lopu koskaan itse { int i = st; for (int j = i ; j < (i+5); j++) { cout << "pros1: rivi " << j <<"\n";} st = j; return 0; } int pros2(int &st) // tulostaa kolme riviä lopettaa kun st = 20 { int i = st; for (int j=i;j < (i+3); j++) { cout << "pros2: rivi " << j << "\n"; if (j == 20) {st = j; return 1;} } st = j; return 0; } int pros3(int &st) // tulostaa rivin ruudulle, lopettaa kun st = 5 { int j=st; cout << "pros3: pitka rivi "<< j << "\n"; j++; st = j; if (j > 5) return 1; else return 0; } int runner(int pnum, int &ymp) { int res = 1; if (pnum == 1) res = pros1(ymp); if (pnum == 2) res = pros2(ymp); if (pnum == 3) res = pros3(ymp); return res; }