In computing, a status key is a keyboard key that causes an operating system and/or a program to output status information on a terminal when it is pressed. In the event that a program on a terminal produces no indications that it is running, typing the status key will reveal the program's state and activity.[1] Older implementations produced only a quick one-line status report for the current job when the status key was pressed.[2] Newer implementations support sending a signal to the current process to allow the application to report on status as well.[3]

Implementations

edit
  • RSTS/E is documented as having a status key at least as far back as 1977 and it continued to have one into at least the 1980s. Typing the status key results in output that is represented by the following example:[4][5][2]
18   GARP::KB32   SYSTAT+BAS4F     ^C(0R)   11(16)K+ 16K  3.3(+5)
Field Value
Job number 18
Node name GARP
Keyboard number KB32
Program or Operation SYSTAT
Run-time system name BAS4
Job state ^C(0R)
Program size in words 11
Maxium size in words (16)K
Run-time system size in words +16K
Amount of CPU time used 3.3
CPU time since the last CTRL/T (+.5)
  • On TOPS-10 when the CTRL/T (control-T) key is pressed, the monitor prints status information pertaining to the job on the terminal. Typing CTRL/T displays a job's progress without interrupting its execution. No representation of a control-t character is displayed on the terminal, just the status information.[6]
DAY: :05:43 RUN:0.48 RD:75 WR:8 SOS 12+19p ^C Ctx:1 PC:400275

Incremental values in the table below indicate that the value is the accumulation since login or last CTRL/T whichever was shortest.[6]

Field Value
Incremental day time DAY: :05:43
Incremental run time RUN:0.48
Incremental disk reads RD:75
Incremental disk writes WR:8
Program name SOS
Amount of memory program is using 12+19p
Context number Ctx:1
Job state code ^C
Program Counter PC:400275
Job state, INPUT WAIT or OUTPUT WAIT (only when CTRL/T is used at USER level)
  • TOPS-20 reports a shorter list of information than its predecessors:[8]
09:36:35 TEST Running at 404157 Used 0:00:35.8 in 0:30:39, Load 4.04
Field Value
Time 09:36:35
Name TEST
Status Running at 404157
Used CPU-time Used 0:00:35.8
Logged-in-time in 0:30:39
Load average Load 4.04
  • OpenVMS has a status key which can be customized and works with remote processes.[9] The default output includes these items:[1]
NODE22::SMITH  16:21:04 (DCL) CPU=00:03:29.39 PF=14802 IO=18652 MEM=68
Field Value
Node and process name NODE22::SMITH
Time of day 16:21:04
Active image name (DCL)
Processor time used CPU=00:03:29.39
Accumulated page faults PF=14802
I/O operations IO=18652
Frames in use MEM=68
load: 0.10  cmd: sleep 1594 [nanslp] 1.33r 0.00u 0.00s 0% 1864k
Field Value
Five minute load average load: 0.10
Command name cmd: sleep
Process ID 1594
Wait channel name or lock name [nanslp]
Elapsed real time 1.33r
Elapsed user CPU time 0.00u
Elapsed system CPU time 0.00s
Percentage of CPU 0%
Program memory resident set size 1864k
load: 3.04 cmd: sleep 719 waiting 0.00u 0.00s
Field Value
Five minute load average load: 3.04
Command name cmd: sleep
Process ID 719
Wait channel name or lock name waiting
Elapsed user CPU time 0.00u
Elapsed system CPU time 0.00s
  • GNU Hurd has VSTATUS and SIGINFO but not NOKERNINFO, and the status line is just some stub in libc that prints "got a SIGINFO" at this point. In 1993 the stty command was modified to support a status key[17] and the in ???? the "dd" command was modified to support the SIGINFO signal.[18]

References

edit
  1. ^ a b Miller, David Donald (1997). Open VMS Operating System Concepts. Elsevier. p. 151. ISBN 9781555581572.
  2. ^ a b RSTS/E System User's Guide (PDF). Maynard, MA: Digital Equipment Corportation. 1985. p. 4-10. Archived (PDF) from the original on 2007-08-16.
  3. ^ Kerrisk, Michael (2010). The Linux Programming Interface: A Linux and UNIX System Programming Handbook. No Starch Press. p. 1299. ISBN 9781593272913.
  4. ^ BASIC-PLUS-2 RSTS/E User's Guide (PDF). Maynard, MA: Digital Equipment Corportation. 1977. p. 4-10. Archived (PDF) from the original on 2006-10-09.
  5. ^ RSTS/E System User's Guide (PDF). Maynard, MA: Digital Equipment Corportation. 1979. p. 4-13. Archived (PDF) from the original on 2005-03-29.
  6. ^ a b TOPS-10 Operation System Commands Manual. Maynard, MA: Digital Equipment Corporation. 1988. p. 1-7. Archived from the original on 2017-12-04.
  7. ^ TOPS-20 User's Guide. Maynard, MA: Digital Equipment Corportation. 1982. p. 8-5. Archived from the original on 2017-12-04.
  8. ^ TOPS-20 User's Guide. Maynard, MA: Digital Equipment Corportation. 1982. p. 8-5. Archived from the original on 2017-12-04.
  9. ^ Peleg, Guy (2006-10-01). "OpenVMS Utilties Update" (PDF). OpenVMS News. Bruden On Shore Systems Group. Archived (PDF) from the original on 2017-11-06. Retrieved 2017-11-06. {{cite web}}: |archive-date= / |archive-url= timestamp mismatch; 2017-12-06 suggested (help)
  10. ^ Karels, Michael J. (1989-08-26). "Computer Systems Research Group BSD Distribution signal.h 7.5". SCCS to fossil conversion of the original University of California, Berkeley Computer Systems Research Group BSD repository. Regents of the University of California. Retrieved 2017-12-05. #define SIGINFO 29 /* information request */
  11. ^ Teitelbaum, Marc (1989-10-26). "Computer Systems Research Group BSD Distribution tty.c 7.18". SCCS to fossil conversion of the original University of California, Berkeley Computer Systems Research Group BSD repository. Regents of the University of California. Retrieved 2017-12-05. add ^T prototype
  12. ^ Teitelbaum, Marc (1990-05-01). "Computer Systems Research Group BSD Distribution tty.c 7.22". SCCS to fossil conversion of the original University of California, Berkeley Computer Systems Research Group BSD repository. Regents of the University of California. Retrieved 2017-12-05. ^T
  13. ^ stty(1) – BSD General Commands Manual
  14. ^ "darwin-xnu/bsd/sys/ttydefaults.h". Github. Apple Computer, Inc. 2007-10-29. Retrieved 2017-12-05. #define CSTATUS CTRL('t')
  15. ^ "darwin-xnu/bsd/sys/signal.h". Github. Apple Computer, Inc. 2017-09-26. Retrieved 2017-12-05. #define SIGINFO 29 /* information request */
  16. ^ "darwin-xnu/bsd/kern/tty.c". Github. Apple Computer, Inc. 2017-09-26. Retrieved 2017-12-05. Report on state of foreground process group.
  17. ^ https://groups.google.com/forum/#!original/gnu.utils.bug/GrU-F7pNEVc/G5pyQcF_o1QJ
  18. ^ TBD