> in continuare te intreb, tu iti dai seama cat de incet va merge? asta
> este foarte similar cu swapul.Gandeste-te cum ar fi sa ai un program
> cu branchuri mai multe si mai departate.Pe sistemul asta ai numara
> secundele pana se executa ala.Nu cred ca e doar atat, sau are
> read-aheadul destul de mare.

Paginile raman rezidente (in afara de situatia extrema in care e
nevoie de memoria pe care o ocupa), nu se evacueaza cand nu trece
executia prin ele... 

Branch-urile de care vorbesti tu (cazul cel mai defavorabil...) sunt
de doua feluri:

  - la biblioteci, care de obicei sunt partajate intre procese si au
    cele mai des apelate rutine deja rezidente
  - in programele foarte mari, intre module, dar si acolo exista
    "locality" pe seturi

Branch-uri aiurea de colo-colo nu prea exista, in practica :-) decat
poate la programe scrise in fortran sau mai stiu eu ce...

Nu inteleg ce incerci sa spui ca ar merge incet... Asa merge...

/usr/src/linux/fs/exec.c:

/*
 * Demand-loading implemented 01.12.91 - no need to read anything but
 * the header into memory. The inode of the executable is put into
 * "current->executable", and page faults do the actual loading. Clean.
 *
 * Once more I can proudly say that linux stood up to being changed: it
 * was less than 2 hours work to get demand-loading completely implemented.

...

Daca vrei sa te convingi ca treaba asta nu e hotaratoare pentru viteza
de executie a programelor sub linux (BTW, orice unix face la fel,
probabil ca pana si windows-ul face la fel), ruleaza "vmstat 1" intr-o
fereastra si o sa vezi ca, in timpul executiei programelor nu e asa
mare activitate de I/O. Uite, eu am acum vreo 8 xterm-uri, xemacs,
netscape pornite si ascult niste mp3-uri din retea cu xmms:

   procs                      memory    swap          io     system         cpu
 r  b  w   swpd   free   buff  cache  si  so    bi    bo   in    cs  us  sy  id
 0  0  0  79820  11728      0  41804   0   0     0     0  322   802   0   3  97
 1  0  0  79820  11732      0  41804   0   0     0     0  351   896   2   4  94
 0  0  0  79820  11728      0  41804   0   0     0     0  354  1091   6   5  89
 0  0  0  79820  11728      0  41804   0   0     0     0  340   914   3   2  95
 0  0  0  79820  11728      0  41804   0   0     0     0  349   937   5   2  93
 0  0  0  79820  11728      0  41804   0   0     0     0  350   923   3   2  95
 0  0  0  79820  11728      0  41804   0   0     0     0  337   974   5   0  95
 0  0  0  79820  11728      0  41804   0   0     0     0  337   886   1   4  95
 0  0  0  79820  11728      0  41804   0   0     0     0  345   935   6   3  91
 0  0  0  79820  11728      0  41804   0   0     0     0  353   910   3   2  95
 0  0  0  79820  11728      0  41804   0   0     0     0  346   949   3   2  95
 4  0  0  79820  11728      0  41804   0   0     0     0  351   937  29   2  69
 9  0  0  79820  10564      0  41804   0   0     0     8  421  1004  13   6  81
 3  0  0  79820  10948      0  41808   0   0     0    32  458  1448  55  11  34
 0  0  0  79820  10944      0  41808   0   0     0     0  456  1236   2   3  95
 0  0  0  79820  10944      0  41808   0   0     0     0  367   910   9   3  88
 1  0  0  79820   9844      0  41820   0   0     4    16  436  1116   7   6  87
 0  0  0  79820   9836      0  41828   0   0     8     0  361   932   2   3  95
 0  0  0  79820   9828      0  41836   0   0     4    20  387  1017   1   3  96

Uita-te la 'bi', 'bo' (blocks in/out).... si la swap...

Un sistem care are memorie adecvata pentru ce are de facut, ajunge la
un moment dat intr-o stare stabila. Daca swap-eaza in continuu, normal
ca numeri secunde (sau minute), dar nu cred ca la asta te refereai...

In realitate, faptul ca paginile programului nu sunt in memorie
conteaza doar la startup, care e oricum mai rapid decat in situatia in
care ar fi incarcate TOATE paginile deodata :)

Si, daca vrei cazuri extreme, altfel nu ai putea rula programe mai
mari decat memoria fizica disponibila :-)

Matei
---
Pentru dezabonare, trimiteti mail la 
[EMAIL PROTECTED] cu subiectul 'unsubscribe rlug'.
REGULI, arhive si alte informatii: http://www.lug.ro/mlist/


Raspunde prin e-mail lui