[so] tema5 - corectare Linux -> (mica) obiectie
Mugurel Ionut Andreica
so@cursuri.cs.pub.ro
Tue, 15 Feb 2005 05:38:32 -0800 (PST)
Am o mica obiectie la corectarea temei 5 pe Linux.
Am fost depunctat cu 0.3 din urmatorul motiv:
"
-0.3
La resetarea bitilor R in cursul cautarii unei pagini
la wsclock nu se schimba protectia
paginii la PROT_NONE
"
Probabil ca ar trebui sa ii trimit acest mail
doar Ioanei (ea a corectat tema, nu?), dar l-am trimis
pe lista deoarece am vazut ca au fost mai multi
depunctati din acest motiv..
Vreau sa motivez de ce nu este nevoie sa schimb
si protectia memoriei in timp ce restez bitii R in
cadrul algoritmului WSCLOCK.
Evident, motivul pt care ar trebui sa schimb si
protectia ar fi sa prind si alte accese la memorie
pana la apelarea functiei de ceas, care reseteaza si
ea bitii R si schimba protectia memoriei
corespunzator.
In programul meu, timpul "virtual" de acces al
unei pagini este egal cu numarul de apeluri al
functiei de ceas. Deci acest timp nu se modifica pana
la urmatorul apel al functiei de ceas, cand se va
schimba, oricum, protectia memoriei. Intrucat
urmatoarele accese nu modifica timpul de acces, atunci
ar mai exista o posibilitate pt care faptul ca nu
schimb protectia la PROT_NONE sa fie o greseala :
bitul M al paginii sa fie 0 si sa urmeze o scriere in
pagina, pe care eu sa nu o prind si, astfel, bitul M
sa nu devina 1. Acest lucru nu se intampla, insa,
deoarece fiecare pagina virutala a mea are, la un
moment dat, doar unul din drepturi setat (ori de
citire, ori de scrire). Daca are setat dreptul de
scriere, atunci bitul M este deja 1 si un acces
ulterior de scriere neprins nu schimba cu nimic
situatia (nu modifica nici bitul M, nici timpul de
acces). Pe de alta parte, daca bitul M este 0, atunci
pagina are numai drepturi de citire si un acces de
scriere in cadrul aceleiasi unitati de timp virtual
ESTE PRINS si bitul M este modificat corespunzator.
Asadar, in acest conditii, as dori sa primesc
inapoi cele 0.3 puncte pierdute [ daca se poate :) ].
In caz ca nu a reiesit clar din cele scrise mai
sus, neschimbarea protectiei in acel moment (in cadrul
algoritmului WSCLOCK) nu conteaza deoarece timpul de
acces la WSCLOCK se modifica o data cu apelul functiei
de ceas (care resteteaza bitii si schimba protectia
memoriei). Daca timpul de acces folosit la WSCLOCK ar
fi fost independent de apelurile functiei de ceas,
atunci, intr-adevar, niste accese ulterioare la
memorie ar fi condus la niste "pierderi" (nu ar fi
fost modificat corespunzator timpul de acces).
__________________________________
Do you Yahoo!?
Yahoo! Mail - 250MB free storage. Do more. Manage less.
http://info.mail.yahoo.com/mail_250