jdh@bu-pub.bu.edu (Jason Heirtzler) (09/23/90)
Does anyone have a working tcsh for the RISC-6000 AIX 3.1? It compiled fairly easily, but it looks like I have problems with the process groups, since most everything blocks with SIGTTOU. While on the subject of signals, there seem to be a few signals defined that I don't recognize. Can someone provide more info? #define SIGDANGER 33 /* system crash imminent; free up some page space */ #define SIGMIGRATE 35 /* migrate process (see TCF)*/ #define SIGGRANT 60 /* HFT monitor mode granted */ #define SIGRETRACT 61 /* HFT monitor mode should be relinguished */ #define SIGSOUND 62 /* HFT sound control has completed */ jdh ------------------------------------------------------------------- Jason Heirtzler (617) 353-2780 jdh@bu-pub.bu.edu Information Technology Boston University ..!bu.edu!bu-pub!jdh
drake@drake.almaden.ibm.com (09/23/90)
In article <64825@bu.edu.bu.edu> jdh@bu-pub.bu.edu (Jason Heirtzler) writes: >While on the subject of signals, there seem to be a few signals defined >that I don't recognize. Can someone provide more info? > > #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". > #define SIGMIGRATE 35 /* migrate process (see TCF)*/ This signal can be sent to a process in a TCF environment (AIX/370 or AIX PS/2 1.2) to ask it to move to another CPU in the complex. > #define SIGGRANT 60 /* HFT monitor mode granted */ > #define SIGRETRACT 61 /* HFT monitor mode should be relinguished */ > #define SIGSOUND 62 /* HFT sound control has completed */ These 3 are used by applications that are coded to use the facilities of the AIX "HFT" interface. HFT (High Function Terminal) is the set of device drivers used to manage the primary system console. The short version of how it works: You can have multiple virtual terminals available on the same physical terminal. A hot-key sequence allows you to determine which virtual terminal is displayed at the moment. Each virtual terminal can run in one of two modes: character mode, in which an x by y array of characters are displayed on the screen, or "monitor mode". In character mode an HFT is very similar to any other terminal, such as a VT-100 or similar. In "monitor mode" applications can get access to the underlying display hardware and keyboard scan codes and can implement sophsticated graphics interfaces. The AIX X server, for example, runs as a monitor mode application in a monitor mode virtual terminal. NEXTStep could run in another, for example. OK, on to the signals. SIGGRANT and SIGRETRACT deal with monitor mode and hot-keying. Suppose I have two virtual terminals, A and B. A is displayed on the real hardware. Both run in character mode. The application running in terminal B wants to enter monitor mode; it asks for it. But the request cannot be immediately granted; terminal A controls the display, and since monitor mode apps can get to the real display hardware we have to wait for the user to hotkey terminal B to the front before monitor mode can be granted. The application will get SIGGRANT when this happens. Now B is the current terminal, in monitor mode, and the user hotkeys to A (in character mode). We have to coordinate the switch with B's application, since it's scribbled all over the hardware in ways AIX doesn't know. So AIX sends application B the SIGRETRACT signal, telling it, "the user has hotkeyed away from you. Give up the terminal." Application B has to put its house in order and then tell AIX to go ahead and perform the hotkey. SIGSOUND is used for telling programs when sound stops playing. If an application asks for a 2 second middle C to be played, say, it will get SIGSOUND when the sound stops. More than you wanted to know about them, eh? :-) Sam Drake / IBM Almaden Research Center Internet: drake@ibm.com BITNET: DRAKE at ALMADEN Usenet: ...!uunet!ibmarc!drake Phone: (408) 927-1861
3003jalp@ucsbuxa.ucsb.edu (Applied Magnetics) (09/25/90)
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
bengsig@oracle.nl (Bjorn Engsig) (09/25/90)
Article <6339@hub.ucsb.edu> by 3003jalp@ucsbuxa.ucsb.edu (Applied Magnetics) says: | |On the Unix boxes that I know, there is no practical way to release |paging space back to the OS. Except telling the user nicely that there is a problem, close files, do a nice shutdown, and exit(0). This might of courese be too time consuming, so there is also _exit(1). (== kill(getpid(),9) :-) -- Bjorn Engsig, Domain: bengsig@oracle.nl, bengsig@oracle.com Path: uunet!mcsun!orcenl!bengsig From IBM: auschs!ibmaus!cs.utexas.edu!uunet!oracle!bengsig