[comp.unix.aix] tcsh for RISC6000, AIX 3.1?

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