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]
Several different operating systems have a status key feature implemented in the kernel or other low-level component.
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]
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)
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 |
Maximum 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. [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]
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: [9]
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 |
ITS copied the idea from TOPS-20, [10] but used the key sequence Control+_J. [11]
19:29:10 3 RMS HACTRN EMACS1 130566
Field | Value |
---|---|
Time | 19:29:10 |
Job index | 3 |
User name | RMS |
Job name | HACTRN |
System name | EMACS1 |
User program counter | 130566 |
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
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 |
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
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 |
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
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 |
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.
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.
An operating system (OS) is system software that manages computer hardware and software resources, and provides common services for computer programs.
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.
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.
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.
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.
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.
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.
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.
#define SIGINFO 29 /* information request */
add ^T prototype
^T
The BSD portion of the OS X kernel is derived primarily from FreeBSD
#define CSTATUS CTRL('t')
#define SIGINFO 29 /* information request */
Report on state of foreground process group.