Status key

Last updated

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]

Contents

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)
FieldValue
Job number18
Node nameGARP
Keyboard numberKB32
Program or OperationSYSTAT
Run-time system nameBAS4
Job state^C(0R)
Program size in words11
Maximum size in words(16)K
Run-time system size in words+16K
Amount of CPU time used3.3
CPU time since the last CTRL/T(+.5)

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]

FieldValue
Incremental day timeDAY: :05:43
Incremental run timeRUN:0.48
Incremental disk readsRD:75
Incremental disk writesWR:8
Program nameSOS
Amount of memory program is using12+19p
Context numberCtx:1
Job state code^C
Program CounterPC:400275
Job state, INPUT WAIT or OUTPUT WAIT(only when CTRL/T is used at USER level)

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
FieldValue
Time09:36:35
NameTEST
StatusRunning at 404157
Used CPU-timeUsed 0:00:35.8
Logged-in-timein 0:30:39
Load averageLoad 4.04

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
FieldValue
Time19:29:10
Job index3
User nameRMS
Job nameHACTRN
System nameEMACS1
User program counter130566

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
FieldValue
Node and process nameNODE22::SMITH
Time of day16:21:04
Active image name(DCL)
Processor time usedCPU=00:03:29.39
Accumulated page faultsPF=14802
I/O operationsIO=18652
Frames in useMEM=68

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
FieldValue
Five minute load averageload: 0.10
Command namecmd: sleep
Process ID1594
Wait channel name or lock name[nanslp]
Elapsed real time1.33r
Elapsed user CPU time0.00u
Elapsed system CPU time0.00s
Percentage of CPU0%
Program memory resident set size1864k

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
FieldValue
Five minute load averageload: 3.04
Command namecmd: sleep
Process ID719
Wait channel name or lock namewaiting
Elapsed user CPU time0.00u
Elapsed system CPU time0.00s

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. 

Related Research Articles

<span class="mw-page-title-main">Operating system</span> Software that manages computer hardware resources

An operating system (OS) is system software that manages computer hardware and software resources, and provides common services for computer programs.

<span class="mw-page-title-main">Scroll Lock</span> Computer key

Scroll Lock is a lock key on most IBM-compatible computer keyboards. Depending on the operating system, it may be used for different purposes, and applications may assign functions to the key or change their behavior depending on its toggling state. The key is not frequently used, and therefore some reduced or specialized keyboards lack Scroll Lock altogether.

<span class="mw-page-title-main">VAX</span> Line of computers sold by Digital Equipment Corporation

VAX is a series of computers featuring a 32-bit instruction set architecture (ISA) and virtual memory that was developed and sold by Digital Equipment Corporation (DEC) in the late 20th century. The VAX-11/780, introduced October 25, 1977, was the first of a range of popular and influential computers implementing the VAX ISA. The VAX family was a huge success for DEC, with the last members arriving in the early 1990s. The VAX was succeeded by the DEC Alpha, which included several features from VAX machines to make porting from the VAX easier.

<span class="mw-page-title-main">OpenVMS</span> Computer operating system

OpenVMS, often referred to as just VMS, is a multi-user, multiprocessing and virtual memory-based operating system. It is designed to support time-sharing, batch processing, transaction processing and workstation applications. Customers using OpenVMS include banks and financial services, hospitals and healthcare, telecommunications operators, network information services, and industrial manufacturers. During the 1990s and 2000s, there were approximately half a million VMS systems in operation worldwide.

RT-11 is a discontinued small, low-end, single-user real-time operating system for the full line of Digital Equipment Corporation PDP-11 16-bit computers. RT-11 was first implemented in 1970. It was widely used for real-time computing systems, process control, and data acquisition across all PDP-11s. It was also used for low-cost general-use computing.

DECnet is a suite of network protocols created by Digital Equipment Corporation. Originally released in 1975 in order to connect two PDP-11 minicomputers, it evolved into one of the first peer-to-peer network architectures, thus transforming DEC into a networking powerhouse in the 1980s. Initially built with three layers, it later (1982) evolved into a seven-layer OSI-compliant networking protocol.

This article presents a timeline of events in the history of computer operating systems from 1951 to the current day. For a narrative explaining the overall developments, see the History of operating systems.

<span class="mw-page-title-main">Computer terminal</span> Computer input/output device for users

A computer terminal is an electronic or electromechanical hardware device that can be used for entering data into, and transcribing data from, a computer or a computing system. The teletype was an example of an early-day hard-copy terminal and predated the use of a computer screen by decades. Starting in the mid-1970s with machines such as the Sphere 1, Sol-20, and Apple I, terminal circuitry began to be integrated into personal and workstation computer systems, with the computer handling character generation and outputting to a CRT display such as a computer monitor or, sometimes, a consumer TV.

OS/8 is the primary operating system used on the Digital Equipment Corporation's PDP-8 minicomputer.

Uptime is a measure of system reliability, expressed as the percentage of time a machine, typically a computer, has been working and available. Uptime is the opposite of downtime.

<span class="mw-page-title-main">RSTS/E</span> Computer operating system

RSTS is a multi-user time-sharing operating system developed by Digital Equipment Corporation for the PDP-11 series of 16-bit minicomputers. The first version of RSTS was implemented in 1970 by DEC software engineers that developed the TSS-8 time-sharing operating system for the PDP-8. The last version of RSTS was released in September 1992. RSTS-11 and RSTS/E are usually referred to just as "RSTS" and this article will generally use the shorter form. RSTS-11 supports the BASIC programming language, an extended version called BASIC-PLUS, developed under contract by Evans Griffiths & Hart of Boston. Starting with RSTS/E version 5B, DEC added support for additional programming languages by emulating the execution environment of the RT-11 and RSX-11 operating systems.

A secure attention key (SAK) or secure attention sequence (SAS) is a special key or key combination to be pressed on a computer keyboard before a login screen which must, to the user, be completely trustworthy. The operating system kernel, which interacts directly with the hardware, is able to detect whether the secure attention key has been pressed. When this event is detected, the kernel starts the trusted login processing.

<span class="mw-page-title-main">XNU</span> Computer operating system kernel

XNU is the computer operating system (OS) kernel developed at Apple Inc. since December 1996 for use in the Mac OS X operating system and released as free and open-source software as part of the Darwin OS, which in addition to macOS is also the basis for the Apple TV Software, iOS, iPadOS, watchOS, visionOS, and tvOS OSes.

<span class="mw-page-title-main">Pseudoterminal</span>

In some operating systems, including Unix-like systems, a pseudoterminal, pseudotty, or PTY is a pair of pseudo-device endpoints (files) which establish asynchronous, bidirectional communication (IPC) channel between two or more processes.

Signals are standardized messages sent to a running program to trigger specific behavior, such as quitting or error handling. They are a limited form of inter-process communication (IPC), typically used in Unix, Unix-like, and other POSIX-compliant operating systems.

QIO is a term used in several computer operating systems designed by the former Digital Equipment Corporation (DEC) of Maynard, Massachusetts.

The proc filesystem (procfs) is a special filesystem in Unix-like operating systems that presents information about processes and other system information in a hierarchical file-like structure, providing a more convenient and standardized method for dynamically accessing process data held in the kernel than traditional tracing methods or direct access to kernel memory. Typically, it is mapped to a mount point named /proc at boot time. The proc file system acts as an interface to internal data structures about running processes in the kernel. In Linux, it can also be used to obtain information about the kernel and to change certain kernel parameters at runtime (sysctl).

In computer data, a substitute character (␚) is a control character that is used to pad transmitted data in order to send it in blocks of fixed size, or to stand in place of a character that is recognized to be invalid, erroneous or unrepresentable on a given device. It is also used as an escape sequence in some programming languages.

In Unix-like operating systems, a device file or device node or special file is an interface to a device driver that appears in a file system as if it were an ordinary file. There are also special files in DOS, OS/2, and Windows. These special files allow an application program to interact with a device by using its device driver via standard input/output system calls. Using standard system calls simplifies many programming tasks, and leads to consistent user-space I/O mechanisms regardless of device features and functions.

References

  1. 1 2 Miller, David Donald (1997). Open VMS Operating System Concepts. Elsevier. p. 151. ISBN   978-1-55558-157-2.
  2. 1 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. 1 2 Kerrisk, Michael (2010). The Linux Programming Interface: A Linux and UNIX System Programming Handbook. No Starch Press. p. 1299. ISBN   978-1-59327-291-3.
  4. 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).
  5. 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.
  6. 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.
  7. 1 2 TOPS-10 Operation System Commands Manual. Maynard, MA: Digital Equipment Corporation. 1988. pp. 1–7. 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. TOPS-20 User's Guide. Maynard, MA: Digital Equipment Corportation. 1982. pp. 8–5. Archived from the original on 2017-12-04.
  10. "Re: ooh, a *real* flamewar :)". GitHub . 2000-03-24.
  11. "ITSTTY". GitHub .
  12. 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.
  13. 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 */
  14. 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
  15. 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
  16. stty(1)    BSD General Commands Manual
  17. Lucas, Michael W (2015). Tarsnap Mastery. Tilted Windmill Press. p. 71.
  18. Lavigne, Dru (2004). BSD Hacks 100 Industrial Tip & Tools. O'Reilly Media. ISBN   978-0-596-55256-5.
  19. "BSD Overview". Apple, Inc. 2013-08-08. Retrieved 2022-03-13. The BSD portion of the OS X kernel is derived primarily from FreeBSD
  20. "darwin-xnu/bsd/sys/ttydefaults.h". Github. Apple Computer, Inc. 2007-10-29. Retrieved 2017-12-05. #define CSTATUS CTRL('t')
  21. "darwin-xnu/bsd/sys/signal.h". Github. Apple Computer, Inc. 2017-09-26. Retrieved 2017-12-05. #define SIGINFO 29 /* information request */
  22. "darwin-xnu/bsd/kern/tty.c". Github. Apple Computer, Inc. 2017-09-26. Retrieved 2017-12-05. Report on state of foreground process group.
  23. Bobrow, Daniel; Murphy, Daniel; Teitelman, W (April 1969). "Section 23.10". THE BBN - LISP SYSTEM REFERENCE MANUAL (PDF).