E timpul sa arati ce poti!

Simulare alocator de resurse

Sa se realizeze un simulator grafic a activitatii alocatorului de resurse din cadrul unui sistem de operare.

Simulatorul va putea fi configurat, avand ca date de intrare:

- numarul N de tipuri de resurse (i.e. clase de resurse echivalente) si numarul Ni (1<=i<=N) de resurse din fiecare tip de resurse ale sistemului de calcul considerat (e.g. 2 imprimante, 3 harddisk-uri, 1 camera web, etc.);

- numarul P de procese ce trebuie executate in sistem, iar pentru fiecare proces se va da o lista de timpi, ce reprezinta in ordine:

* momentul in care cere prima resursa (si tipul de resursa cerut), durata de folosire a acelei resurse (se va presupune ca toate resursele vor fi folosite in maniera exclusiva);

* momentul in care cere a doua resursa, tipul ei si durata de folosire, s.a.m.d.
Datele de intrare se vor citi la inceputul executiei (de la tastatura, sau importate dintr-un fisier de date) sau, la alegerea utilizatorului,
vor fi produse in mod aleator.

Se vor implementa ca strategii de alocare: strategia de evitare a interblocajului, strategia de detectie si rezolvare a interblocajului. Tipul de strategie aplicat la fiecare simulare va fi configurabil, de asemenea, ca parametru de intrare.

Procesul alocator de resurse va gestiona cererile de alocare de (tipuri de) resurse primite de la cele P procese ce ruleaza in sistem, si va pastra in
cozi de asteptare dedicate fiecarui tip de resursa, procesele ce asteapta alocarea de resurse de acel tip. Alocatorul va decide satisfacerea, respectiv refuzul cererilor proceselor in conformitate cu strategia aplicata in simularea respectiva:
- daca se aplica strategia de evitare, o cerere pentru un anumit tip de resurse poate fi refuzata in anumite situatii (conform algoritmului specific acesteistrategii) chiar daca exista in acel moment resurse de acel tip nealocate;
- daca se aplica strategia de detectie si rezolvare a interblocajului, atunci procesul alocator va satisface cererile proceselor ori de cate ori este
posibil acest lucru, adica exista in acel moment resurse de acel tip nealocate, si in plus va detecta cand apare un interblocaj (cu algoritmul specific acestei strategii) si va alege ca modalitate de rezolvare a interblocajului pe cea care este cea mai convenabila in acel caz dintre toate cele posibile (e.g. preemptarea unei/unor resurse, rollback-ul unui/unor procese, abort-area unui/unor procese, etc.).

De asemenea, modalitatile de rezolvare a interblocajului ce se vor alege ar putea fi configurate la initializarea simularii (pentru fiecare tip de resursa exista o anumita modalitate de rezolvare care este cea mai potrivita de aplicat pentru acel tip).

Un alt proces separat (timer-ul) va fi responsabil cu generarea timpului.

Aplicatia de simulare ce se doreste a fi realizata va trebui sa ilustreze grafic (printr-o interfata grafica realizata cu orice tehnologie doriti, dar care sa poata fi rulata sub Linux) urmatoarele:
- scurgerea timpului (procesul timer); vor fi prevazute controale de tipul increase/decrease pentru configurarea vitezei de scurgere a timpului
si, de asemenea, controale de tipul pause/resume;
- pentru fiecare tip de resursa, se va reprezenta coada de asteptare dedicata acelui tip, cu ID-urile proceselor aflate ordonat in ele, si deciziile
de selectie luate de alocator (procesul alocator de resurse);
- de asemenea, pentru fiecare tip de resursa, se vor reprezenta instantele alocate: o lista cu ID-urile proceselor ce detin cate o resursa de acel tip
la momentul respectiv;
Intr-o fereastra adiacenta, ca alternativa de vizualizare, se vor reprezenta cele P procese a caror executie este simulata, cu ID-ul fiecarui proces
si cu lista tipurilor si ID-urilor resurselor utilizate de acel proces in acel moment.
Observatie: vom simplifica simularea fata de cazul real, considerand doar tipuri de resurse utilizabile in maniera exclusiva (adica la orice moment, orice resursa este fie neutilizata, fie alocata spre folosire unui singur proces - nu poate fi alocata mai multor procese in acelasi timp).

Cerinta suplimentara: acceptul autorilor solutiei propuse la acest proiect de a putea fi folosita in scop didactic (si eventual imbunatatita ulterior).

Echipa: 3 studenti.

Bonus: punctaj maxim la componenta de testare practica din cadrul notei la disciplina “Sisteme de Operare”.

Proiect propus de: domnul profesor lector, doctor, Cristian Traian Vidrascu.

2 Comments so far

  1. just me February 14th, 2009 8:34 pm

    intrebare,algoritmiii respectivi se fac la cursuri? si pana cand trebuie prezentat proiectul?poate fi realizat si de mai putini oameni?

  2. admin February 19th, 2009 2:33 am

    Detalii privind data limita de uploadare a proiectelor gasesti aici. Mare parte din algoritmi se studiaza la cursuri intr-adevar, cat despre numarul de persoane…recomandarea domnului profesor Cristian Vidrascu ar fi fost ca la proiect sa lucreze 3 persoane, dar nu este absolut nici un fel de problema daca il veti face doar in doua, sau chiar de unul singur.

Leave a reply