On Fri, Jan 18, 2002 at 01:27:49AM +0100, Daniele Cruciani wrote: > On Thu, Jan 17, 2002 at 09:42:35PM +0100, Samu wrote: > > no che centra ? > > qui si parla di strategie di allocazione per evitare di avere la memoria > > frammentata e che quindi risulti + piena di quello che e' ... tutto > > qua. > > ?? non ho capito niente, grazie :-))
> comunque la frammentazione c'e' se si chiama > una free() non una malloc() non necessariamente, specie in un contesto multitasking .... per il tuo processo che fa una malloc ci sono due processi che fanno una free o viceversa ... in questo contesto la frammentazione capita molto spesso . > > beh se la strategia di allocazione e' buona serve abbastanza > > bisognerebbe mettersi tutti daccordo: > > - processi A,B vede 10M liberi. > > - processi A,B alloca 2M. > > va bene, ma se i processi sono 6 o 15 o 100? si procede col riempire tutta la memoria virtuale (quindi ram e swap) quando tutto e' pieno ... inizi a trovarti scritto "Resource temporarily unavailable" e il kernel parte con la "roulette russa" e ammazza processi a caso (non sono sicuro se a caso comunque li vedi su console) > > Se le cose stanno cosi' penso che la cosa migliore per servizi critici > sia di avere server dedicati che fanno poco piu' di una cosa e non > occupano mai piu' (100-((max_lung_blocco)*nserver)/sysmem)% di > memoria, beh questo e' lapalissiano :-)) > dove max_lung_blocco e' la lunghezza massima di un blocco > allocato da un qualunque processo, nserver e' il numero di processi > che possono allocare memoria (10 dovrebbe andare) e sysmem e' > ovviamente la memoria totale. Questa e' la strategia buona? e' una strategia ... adottata anche tramite ulimit ps. se non mi capisci stavolta mi arrabbio :-))) ciao Samuele -- Samuele Tonon <[EMAIL PROTECTED]> http://www.linuxasylum.net/~samu/ Acid -- better living through chemistry. Timothy Leary