[so] [Tema5]Cum functioneaza swapper-ul?, partII
Razvan Deaconescu
razvand at cs.pub.ro
Wed Jan 17 00:47:10 EET 2007
Florin wrote:
> Salut!
>
> Acum urmeaza critica :-P
Multumesc mult de critica. Apreciez criticile obiective si constructive,
asa cum este si critica ta. :-)
> insa, ma surprinde acum cat de multe teste era in
> stare sa treaca vesiunea aceea a temei; practic, tema mea nu facea nimic
> esential pt swapping, si cu toate acestea ea pica (doar) 6 teste, din
> cate sunt? 30?
recunosc, este o problema; nu am insistat asa de mult pe acest aspect;
mai multe detalii mai jos
> citind codul testelor, sa imi dau seama unde gresisem eu,
> la logica programului meu , evident, deci eu personal nu cred ca e o
> mare tragedie daca noi ne uitam si pe codul testelor, nu cred ca trebe
> sa te apuci sa programezi in assembler prea curand
intelesul codului unui test, intelegerea unui cod scris de altcineva (cu
conditia sa nu fie scris aiurea) este necesar; dar sa nu conteze mai
mult decat design-ul efectiv
>
> Deci, un fel de concluzie-rugaminte-sfat-... : pe viitor, faceti testele
> sa "testeze" efectiv TOT ceea ce se doreste de la tema respectiva - pt
> ca testul este barometrul esential la care se raporteaza cel ce rezolva
> tema - studentu' zice
testele nu pot testa chiar totul; un test absolut ar insemna prea mult
timp pentru crearea unei teme exceptionale; vrem sa invatati niste
concepte si sa reusiti sa creati cod/tema de un nivel acceptabil
intr-adevar, conditia ar fi sa se testeze cat mai mult posibil, ceea ce
eu nu am reusit intru totul
>
> De ce afirmi tu ca "o pagina virtuala nu se poate afla simultan si in
> RAM, si in SWAP" ? Afirmatia ta ar fi adevarata, daca am discuta la
> nivel logic, adica la nivel de "adresare" : o pagina virtuala se poate
> gasi la un moment dat fie in RAM, fie in SWAP, dar nu in ambele locuri
> simultan, din punct de vedere al adresarii; insa, din punctul de vedere
> al continutului, o pagina virtuala se poate foarte bine gasi si in RAM
> si in SWAP. DE CE ? Pai, poate eu , ca si implementator, sunt mai "lazy"
> din fire si, in momentul cand copiez pagina din SWAP in RAM, las SWAP-ul
> nealterat; in felul acesta, exact acelasi lucru se va gasi si in RAM, si
> in SWAP, la aceeasi adresa de memorie
Ai dreptate. Mea culpa.
Din pacate, in prima faza a temei, eu uitasem complet faptul ca paginile
pot fi readuse din SWAP in RAM (adica pana la atentionarea lui Cosmin
Raianu, testul meu urmarea o singura directie de la RAM la SWAP); in mod
evident, existand o singura directie, era imposibil ca o pagina
existenta in SWAP sa mai fie si in RAM (era evacuata din RAM si rezida
numai din SWAP).
In momentul modificarii, testul a urmarit posibilitatea revenirii
paginii din SWAP in RAM; totusi, atat de batatoarea de cap si, recunosc,
defectuoasa implementare a functiei check_swap a ramas neschimbata si a
urmarit acelasi model al prezentei unei pagini virtuale exclusiv in RAM
sau in SWAP; lucru care in mod evident este incorect.
Imi cer scuze.
> Am scris mult si poate ca nu am fost coerent, dar sper ca s-a inteles ce
> am vrut sa comunic. Si sper ca nu am suparat pe nimeni cu post-ul asta -
> am vrut doar sa fac niste observatii referitor la problemele si
> nelamuririle cu care m-am intalnit eu cand mi-am facut tema.
>
Este mai mult decat ok. Comunicarea e o unealta de baza :-) (atata timp
cat e folosita cum trebuie ... lucru pe care, din pacate, nici eu nu il
fac bine de multe ori; mai invat :-) )
> PS: Pe langa bug-urile proprii, pentru care imi asum vina, o mare parte
> a problemelor cu car em-am confruntat eu in implementarea temei s-au
> datorat faptului ca fisierele ce simuleaza RAM-ul, respectiv SWAP-ul,
> le-am mapat in spatiul de adresa al procesului aplicatiei.
Inca o data imi cer scuze daca implementarea (defectuoasa) a acestei
parti a testului a generat probleme.
Din pacate, prima oara cand m-am ciocnit cu tema pana acum in momentul
implementarii si crearii testului. Din aceasta cauza, nu am fost
constient de la bun inceput de toate probleme care pot sa apara. Motiv
pentru care inca apar probleme de design la modul de testare.
De asemenea, a trebuit sa petrec destul de mult timp incercand sa testez
chestiile de baza; acest lucru care a avut drept consecinta pierderea
din vedere a anumitor aspecte de proiectare. Neavand un feedback solid
despre problemele care pot aparea la testarea temei (eu neiplementand-o
pana acum), nu am reusit sa intrevad o serie de situatii posibile si
nici sa intuiesc posibile rezolvari ale temei.
Ca exemplu, la implementare temei eu am mapat folosind mmap memoria
virtuala peste fisierul ce simula memoria fizica. Evacuarea in swap se
realiza prin demaparea (munmap) a paginii virtuale din memoria fizica si
maparea unei foste pagini din swap. (nu era MAP_ANONYMOUS cu alte
cuvinte). Initial credeam ca doar asa se poate, pana am facut in Windows
fisiere RAM total separat de memoria virtuala.
Tema, asa cum este ea, ofera un grad destul de mare de libertate in
implementare. Acest lucru este necesar:
- o data pentru ca este normal sa aveti deciziile de proiectare
proprii,
- alta data pentru ca unele precizari suplimentare (care au fost
solicitate si a caror absenta a fost criticata) ar fi dus la indicarea
unor detalii de implementare care ar fi simplificat mult elaborarea
temei (ceea ce nu este scopul - scopul unei teme este sa va ofere
posibilitatea sa va loviti de anumite probleme si apoi sa incercati sa
gasiti o solutie; aici puteti cere un guideline, nu o solutie completa,
pe lista de discutii)
Apreciez feedback-ul trimis pentru aceasta tema si va promit ca va fi
integrat in versiunea ulterioara de testare.
Florin, incearca sa spargi frazele in paragrafe, te rog. Scrii prea mult
si prea continuu si devine greu sa citesti un "calup" intreg de cuvinte.
La urma urmei, si tu si noi vrem sa intelegem cat mai usor ce ai scris
acolo. Multumesc.
Razvan
More information about the so
mailing list