Status_key

Status key

Status key

Computer command


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]

Operating System-Level Implementations

Several different operating systems have a status key feature implemented in the kernel or other low-level component.

TENEX

TENEX has the feature since at least 1971: "Another terminal Interrupt character, control-T is serviced by the EXEC. It interrupts a user's EXEC process to type out total CPU and console time used, and status of the fork being run under the EXEC."[4]

DEC RSTS/E

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:[5][6][2]

18   GARP::KB32   SYSTAT+BAS4F     ^C(0R)   11(16)K+ 16K  3.3(+5)
More information Field, Value ...

DEC TOPS-10

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.[7]

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.[7]

More information Field, Value ...

DEC TOPS-20

TOPS-20 reports a shorter list of information than its predecessors:[9]

09:36:35 TEST Running at 404157 Used 0:00:35.8 in 0:30:39, Load 4.04
More information Field, Value ...

MIT ITS

ITS copied the idea from TOPS-20,[10] but used the key sequence Control+_ J.[11]

19:29:10 3 RMS    HACTRN EMACS1 130566
More information Field, Value ...

VSI OpenVMS

OpenVMS has a status key which can be customized and works with remote processes.[12] The default output includes these items:[1]

NODE22::SMITH  16:21:04 (DCL) CPU=00:03:29.39 PF=14802 IO=18652 MEM=68
More information Field, Value ...

BSD UNIX

4.3BSD-Reno[13][14][15] and BSD systems derived from that version and OSF/1 have a status key which defaults to Ctrl-T and can be assigned to any key.[3][16] It sends SIGINFO to the current process which is ignored by default but can be configured to call a function which can display status information from the program.[17][18]

load: 0.10  cmd: sleep 1594 [nanslp] 1.33r 0.00u 0.00s 0% 1864k
More information Field, Value ...

Apple macOS

Because XNU has a FreeBSD kernel which has been modified to be a Mach server process, the terminal driver includes a status key which is inherited.[19][20][21][22]

load: 3.04 cmd: sleep 719 waiting 0.00u 0.00s
More information Field, Value ...

Application-level Implementations

It addition to implementing a status key in the kernel or related OS component, some applications have features that allow you to press a key to view the application's status.

SDS-940 running BBN Lisp in 1969

BBN Lisp which runs on an SDS 940 had a status key which was implemented in the Lisp which ran on an OS, rather than in the OS kernel itself.[23]

Control-T

Print Time. Causes an immediate
printout of the total execution time
(in clock ticks) for the job, (even
during garbage collections), i.e.
clock[2], (p. 14.22). A series of
such printouts should show increasing
numbers if the program is using any
CPU time. Of course, the program is
not using CPU time if it is waiting
for input. This information may
serve to help the user determine if
his LISP and/or the time sharing sys-
tem has crashed.

References

  1. Miller, David Donald (1997). Open VMS Operating System Concepts. Elsevier. p. 151. ISBN 978-1-55558-157-2.
  2. RSTS/E System User's Guide (PDF). Maynard, MA: Digital Equipment Corportation. 1985. pp. 4–10. Archived (PDF) from the original on 2007-08-16.
  3. Daniel G. Bobrow; Jerry D. Burchfiel; Daniel L. Murphy; Raymond S. Tomlinson (1971-08-15). "4.4 Interrupt Characters". TENEX, a Paged Time Sharing System for the PDP-10 (PDF) (Report).
  4. BASIC-PLUS-2 RSTS/E User's Guide (PDF). Maynard, MA: Digital Equipment Corportation. 1977. pp. 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. pp. 4–13. Archived (PDF) from the original on 2005-03-29.
  6. TOPS-10 Operation System Commands Manual. Maynard, MA: Digital Equipment Corporation. 1988. pp. 1–7. Archived from the original on 2017-12-04.
  7. TOPS-20 User's Guide. Maynard, MA: Digital Equipment Corportation. 1982. pp. 8–5. Archived from the original on 2017-12-04.
  8. TOPS-20 User's Guide. Maynard, MA: Digital Equipment Corportation. 1982. pp. 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-12-06. Retrieved 2017-11-06.
  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. Lucas, Michael W (2015). Tarsnap Mastery. Tilted Windmill Press. p. 71.
  15. Lavigne, Dru (2004). BSD Hacks 100 Industrial Tip & Tools. O'Reilly Media. ISBN 978-0-596-55256-5.
  16. "BSD Overview". Apple, Inc. 2013-08-08. Retrieved 2022-03-13. The BSD portion of the OS X kernel is derived primarily from FreeBSD
  17. "darwin-xnu/bsd/sys/ttydefaults.h". Github. Apple Computer, Inc. 2007-10-29. Retrieved 2017-12-05. #define CSTATUS CTRL('t')
  18. "darwin-xnu/bsd/sys/signal.h". Github. Apple Computer, Inc. 2017-09-26. Retrieved 2017-12-05. #define SIGINFO 29 /* information request */
  19. "darwin-xnu/bsd/kern/tty.c". Github. Apple Computer, Inc. 2017-09-26. Retrieved 2017-12-05. Report on state of foreground process group.
  20. Bobrow, Daniel; Murphy, Daniel; Teitelman, W (April 1969). "Section 23.10". THE BBN - LISP SYSTEM REFERENCE MANUAL (PDF).

Share this article:

This article uses material from the Wikipedia article Status_key, and is written by contributors. Text is available under a CC BY-SA 4.0 International License; additional terms may apply. Images, videos and audio are available under their respective licenses.