Exercițiul 2 (planificarea proceselor)
Un procesor are de rulat doua programe A si B, care cer să execute la
momentele s1 respectiv s2, având duratele de execuție
d1 respectiv d2 (toate întregi nenegativi).
A e mai prioritar decât B. În orice moment, procesorul rulează doar
un program.
Scrieți funcțiile finish_1 și finish_2 (fiecare cu cei 4 parametri de mai sus)
care returnează momentul la care se încheie execuția lui A, respectiv B.
Considerați două cazuri:
a) programul prioritar A nu poate întrerupe programul B
b) programul prioritar A întrerupe programul B, care revine in execuție
când se termină A.
Exemplu: pentru d1 = 2, d2 = 3
Dacă s1 = 1, s2 = 4, A se termină la momentul 3, iar B la momentul 7
(ele nu se influențează).
Dacă s1 = 4, s2 = 2, B se termină la momentul 2 + 3 = 5, iar A, care începe
întârziat doar dupa ce se termină B, se încheie la momentul 7, dacă B nu poate fi întrerupt.
Dacă B poate fi întrerupt, A primește execuția din momentul în care o cere,
și se termină la momentul 6, iar B (din care a mai rămas o secundă când a fost întrerupt) se încheie la momentul 7.