Discussione: Gestione ram di linux
View Single Post
Old 12-10-2002, 23:12   #2
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Cittā: Roma
Messaggi: 15625
Bella domanda, č cambiata spesso negli ultimi kernel, e sarā ancora diversa i quelli futuri
Come principio generale: sui processori a 32 bit, la massima memoria accessibile da un singolo processo č 4 gb (3 gb per la parte in esecuzione in user space, 1 gb in kernel space condiviso tra i vari processi). L'allocazione della memoria viene effettuata tramite un mmap o la syscall brk (o, nelle vecchie glibc, da un mmap di /dev/null) che riserva gli indirizzi virtuali necessari (la memoria viene "fisicamente" allocata solo al primo page fault). Poi ci sono le tecniche di caching, condivisione, riutilizzo della memoria, swap ecc. che sono punti molto complicati e sempre in evoluzione da kernel a kernel.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine č offline   Rispondi citando il messaggio o parte di esso