Path: utzoo!attcan!uunet!aplcen!uakari.primate.wisc.edu!sdd.hp.com!ucsd!hub.ucsb.edu!ucsbuxa!3003jalp From: 3003jalp@ucsbuxa.ucsb.edu (Applied Magnetics) Newsgroups: comp.unix.aix Subject: Re: tcsh for RISC6000, AIX 3.1? Message-ID: <6339@hub.ucsb.edu> Date: 24 Sep 90 20:52:00 GMT References: <64825@bu.edu.bu.edu> <229@rufus.UUCP> Sender: news@hub.ucsb.edu Lines: 22 In article <229@rufus.UUCP> drake@drake.almaden.ibm.com writes: > ... >> #define SIGDANGER 33 /* system crash imminent; free up some page space */ >This is issued when paging space on disk is very full. If paging space >gets incredibly full, AIX starts sending SIGKILL to processes that are using >lots of paging space in order to get some page slots on disk freed up. >At a threshold before that point it will send SIGDANGER to applications that >want it, to tell them "free up some space for me or I'll kill you". On the Unix boxes that I know, there is no practical way to release paging space back to the OS. Instead of giving back the memory, free() maintains some form of free list where malloc() will look for storage before requesting more. Direct use of the system call sbrk() would release the memory, but only at the risk of clobbering things over which the user code has no control (e.g. sdtio buffers). Thus, Unix processes grow but never shrink. Is there a canonical way to release memory in AIX? I just might #ifdef a response to SIGDANGER in my code, if someone shows me how. --P. Asselin