[pso] Despre procesele monitorizare

Razvan Deaconescu razvand at cs.pub.ro
Fri Mar 16 14:28:12 EET 2007


sorin gsmcreation wrote:
> Salut!
> Am cateva neclaritati legate de monitorizarea
> proceselor pentru un acelasi syscall_no.
> 
> Sa presupunem ca avem cate o lista de pid-uri
> monitorizate pentru fiecare syscall_no. Initial lista
> este vida. Propun urmatorul scenariu in care se
> apeleaza functii de monitorizare pentru acelasi
> syscall.
> 
> Sa presupunem ca primim, pe rand, START_MONITOR pentru
> pid-urile 10, 20, 30. Asta inseamna ca vom face
> logging doar pentru unul din cele 3 pid-uri.
> 
> In continuare, primim START_MONITOR 0.
> Asta inseamna ca vom face logging pentru orice pid,
> fie el din lista sau din afara listei.
> 
> Apoi, primim START_MONITOR 40. Vom adauga pid-ul in
> lista celor monitorizate. Ce logam acum? Informatii
> despre unul din pid-urile: 10, 20, 30, 40 sau despre
> orice alt pid (tinand cont de apelul anterior, cu
> parametrul 0)? Se dezactiveaza in acest caz
> monitorizarea pentru procesele din afara listei?
> 
> Apoi, primim STOP_MONITOR 0. Acum ce ar trebui sa se
> intample? Se opreste monitorizarea doar pentru cine nu
> e in lista (si se face logging doar pt 10, 20, 30 sau
> 40) sau se goleste intreaga lista a proceselor
> monitorizate de respectivul syscall?
> 
> Din cauza acestor neclaritati, am rezolvat tema cu
> supozitia ca un syscall poate monitoriza la un moment
> dat fie un singur pid, fie toate pid-urile, fie nici
> un pid, luandu-ma dupa precizarea din enunt:
> "Monitorizarea se poate face pentru un PID sau pentru
> toate (caz în care se primeşte în loc de pid 0)".
> Astfel, folosesc o variabila care memoreaza fie un pid
> valid, fie valoarea 0 pentru orice pid, fie valoarea
> -1 pentru nici un pid. Programul functioneaza ok.
> Intrebarea mea este: trebuie sa modific tema? Voi fi
> depunctat pentru rezolvarea temei plecand de la
> premisa de mai sus? Daca da, as fi recunoscator pentru
> niste precizari suplimentare legate de scenariul
> propus mai sus.
> 

este ok; nu vei fi depunctat pentru asta;

o alta abordare ar fi urmatoarea: cand apare cerere de monitorizare 
scoti din lista de pid-uri monitorizate, toate pid-urile monitorizate 
pentru acel apel de sistem; dupa care adaugi o intrare separata cu 
pid-ul MAXINT sau 0 sau -1 care sa simbolizeze monitorizarea tuturor 
pid-urilor

daca apare o cerere de monitorizare pentru un nou pid nu se intampla 
nimic (toate) pid-urile sunt deja monitorizate; aici, insa apare 
problema daca se cere sa se demonitorizeze un singur pid din cele 
monitorizate cand ar trebui sparta lista; o solutie ar fi crearea unei 
liste suplimentare de procese demonitorizate care complica problema, 
alta ar fi demonitorizarea completa a tutoror proceselor pentru acel 
apel de sistem

testele nu sunt exhaustive, asa ca solutiile gasite de voi vor fi 
acceptate atata timp cat nu incalca cu nimic cerintele impuse in enunt

Razvan


More information about the pso mailing list