Newsgroup: it.comp.macintosh
Titolo: deframmentare la RAM

Scusate, confesso sono impreparato, ma che significa deframmentare la RAM ?
Grazie
--
Angelo De Sanctis
togli nospam per rispondere
http://194.143.130.195/angelo/
meglio un cane amico che un amico cane

 wrote:
| Scusate, confesso sono impreparato, ma che significa deframmentare la RAM ?
con un esempio:
il sistema, all'avvio, viene caricato in ram... occupa la prima
parte... supponiamo 10 Mb di 32 disponibili
ora eseguiamo l'applicazione pluto, che verra' caricata appena dopo il
sistema, e occupa 5 Mb. quindi ho i primi 15 Mb occupati. ne restano
17.
bene, ora eseguo un'altra applicazione che occupa 12Mb, si carichera'
appena dopo pluto, e quindi la memoria residua sara' 5Mb.
supponiamo ora di uscire da pluto, resteranno due "blocchi" di memoria
vuoti, uno da 5 Mb subito dopo il system, e un'altro da 5Mb alla fine
cio' significa che ho 10Mb liberi, ma il blocco di memoria contiguo
piu' grosso e' di 5Mb e quindi non posso caricare l'applicazione tizio
che occupa 8Mb
dunque deframmento (elimino i frammenti) spostando l'applicazione da
12Mb vicino al finder, avendo cosi' un unico blocco da 10Mb.
Oha

Adesso la domanda la faccio io: COME si deframmenta la memoria? Io lo faccio
solo uscebdo da tutto e rientrando, e talvolta non basta e devo riavviare,
perche'? C'e' qualche programma che rialloca al volo? Dove?
Grazie anticipate
Maurizio


, 
o...@gd8.com
 (oha) è stato
scritto:


 wrote:
| Grazie, ma questo avviene con tutti i sistemi operativi o solo con MacOS?
dipende.
mmhh.. con l'uso di memoria virtuale si evita in parte il problema.
AFAIK, quando un'applicazione va' in sleep, il sys la sposta sul disco
e carica in RAM quella piu' usata. questa operazione continua a
spostare blocchi da una parte all'altra, ottimizzando la
frammentazione dei blocchi liberi.
tutti gli OS che allocano la memoria staticamente soffrono di questo
problema, quelli che allocano dinamicamente no. (questo significa che
il macos con mem virt evita in parte questi problemi)
per allocare memoria virtuale e' necessario che il processore lo
permetta, in ambiente x86 questo avviene, AFAIK, dal 386 in poi. su
mac non saprei.
Oha


wrote:
| Adesso la domanda la faccio io: COME si deframmenta la memoria? Io lo faccio
| solo uscebdo da tutto e rientrando, e talvolta non basta e devo riavviare,
| perche'? C'e' qualche programma che rialloca al volo? Dove?
c'e' ancora qualcosa allocato che pero' non compare come applicazione
per risolvere il problema puoi consultare le faq dell'area, faq0107.
Oha

, 
o...@gd8.com
 (oha) è stato
scritto:


 mac non saprei.
Dal 68030, se non sbaglio
Ciao,
Joshua
--
Outside of a dog a book is a man's best friend.
Inside of a dog is too dark to read
                                Groucho Marx
---------------------------------

 meglio un cane amico che un amico cane
Memoria libera 32MB   ----+----1----+----2----+----3--
Lancio il programma A che occupa 5 MB
Memoria libera 27MB   AAAAA----1----+----2----+----3--
Lancio il programma B che occupa 10 MB
Memoria libera 17MB   AAAAABBBBBBBBBB----2----+----3--
Lancio li programma C che occupa 15 MB
Memoria libera 02MB   AAAAABBBBBBBBBBCCCCCCCCCCCCCCC--
Chiudo il programma B che libera 10 MB
Memoria libera 12MB   AAAAA----1----+CCCCCCCCCCCCCCC--
Pero' come vedi lo spazio libero e' diviso in due blocchi da 10 e 2MB
quindi non posso lanciare un programma che occupa 12MB ma solo uno che
occupa 2 o 10MB, perche' la memoria che occupa un programma deve essere
contigua. Oppure trovo un programmino che riesca a deframmentare la RAM,
cioe' sposti lo spazio occupato dal programma C facendolo iniziare dal
MB numero 6 e non piu dal numero 11 e cioe' cosi':
Memoria libera 12MB   AAAAACCCCCCCCCCCCCCC----+----3--
Adesso posso lanciare il programma D che occupa 12MB
Memoria libera 00MB   AAAAACCCCCCCCCCCCCCCDDDDDDDDDDDD
Ciao, Roberto
-- 
************************************    (- -)
 norm...@NOSPAMPLEASEtiscalinet.it    // v
************************************  ///T T
 Togliere NOSPAMPLEASE               ///=W=W==