[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