Responsiveness

Last updated
Responsiveness requires a low latency/delay of the entire input-output-loop. Linux kernel and gaming input-output latency.svg
Responsiveness requires a low latency/delay of the entire input-output-loop.

Responsiveness as a concept of computer science refers to the specific ability of a system or functional unit to complete assigned tasks within a given time. [1] For example, it would refer to the ability of an artificial intelligence system to understand and carry out its tasks in a timely fashion. [2]

Contents

In the Reactive principle, Responsiveness is one of the fundamental criteria along with resilience, elasticity and message driven. [3]

It is one of the criteria under the principle of robustness (from a v principle). The other three are observability, recoverability, and task conformance.

Vs performance

Software which lacks a decent process management can have poor responsiveness even on a fast machine. On the other hand, even slow hardware can run responsive software.

It is much more important that a system actually spend the available resources in the best way possible. For instance, it makes sense to let the mouse driver run at a very high priority to provide fluid mouse interactions. For long-term operations, such as copying, downloading or transforming big files the most important factor is to provide good user-feedback and not the performance of the operation since it can quite well run in the background, using only spare processor time.

Delays

Long delays can be a major cause of user frustration, or can lead the user to believe the system is not functioning, or that a command or input gesture has been ignored. Responsiveness is therefore considered an essential usability issue for human-computer-interaction (HCI). The rationale behind the responsiveness principle is that the system should deliver results of an operation to users in a timely and organized manner.

The frustration threshold can be quite different, depending on the situation and the fact that user interface depends on local or remote systems to show a visible response.

There are at least three user tolerance thresholds (i.e.): [4]

0.1 seconds
under 0.1 seconds the response is perceived as instantaneous (high user satisfaction);
1.0 seconds
between 0.1 seconds and 1.0 second a slight delay is perceived, which is regarded as annoying in a local system but tolerated in a web interface that depends on a remote system for the response; this kind of delay usually does not interrupt user's flow of thoughts;
10 seconds
between 1 second and 10 seconds, user's flow of thoughts is interrupted (user productivity is severely impacted) but user is able to keep his/her attention focused on the task being performed;
over 10 seconds of wait is regarded as unacceptable as it usually interrupts the user's attention on task being performed.

Solutions to improve responsiveness

Although numerous other options may exist, the most frequently used and recommended answers to responsiveness issues are:

See also

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.

Real-time computing (RTC) is the computer science term for hardware and software systems subject to a "real-time constraint", for example from event to system response. Real-time programs must guarantee response within specified time constraints, often referred to as "deadlines".

<span class="mw-page-title-main">Process (computing)</span> Particular execution of a computer program

In computing, a process is the instance of a computer program that is being executed by one or many threads. There are many different process models, some of which are light weight, but almost all processes are rooted in an operating system (OS) process which comprises the program code, assigned system resources, physical and logical access permissions, and data structures to initiate, control and coordinate execution activity. Depending on the OS, a process may be made up of multiple threads of execution that execute instructions concurrently.

<span class="mw-page-title-main">User interface</span> Means by which a user interacts with and controls a machine

In the industrial design field of human–computer interaction, a user interface (UI) is the space where interactions between humans and machines occur. The goal of this interaction is to allow effective operation and control of the machine from the human end, while the machine simultaneously feeds back information that aids the operators' decision-making process. Examples of this broad concept of user interfaces include the interactive aspects of computer operating systems, hand tools, heavy machinery operator controls and process controls. The design considerations applicable when creating user interfaces are related to, or involve such disciplines as, ergonomics and psychology.

<span class="mw-page-title-main">Load (computing)</span> Amount of computational work that a computer system performs

In UNIX computing, the system load is a measure of the amount of computational work that a computer system performs. The load average represents the average system load over a period of time. It conventionally appears in the form of three numbers which represent the system load during the last one-, five-, and fifteen-minute periods.

In computing, scheduling is the action of assigning resources to perform tasks. The resources may be processors, network links or expansion cards. The tasks may be threads, processes or data flows.

In user interface design for computer applications, a modal window is a graphical control element subordinate to an application's main window.

ISO 9241 is a multi-part standard from the International Organization for Standardization (ISO) covering ergonomics of human-system interaction and related, human-centered design processes. It is managed by the ISO Technical Committee 159. It was originally titled Ergonomic requirements for office work with visual display terminals (VDTs). From 2006 onwards, the standards were retitled to the more generic Ergonomics of Human System Interaction.

<span class="mw-page-title-main">Linearizability</span> Property of some operation(s) in concurrent programming

In concurrent programming, an operation is linearizable if it consists of an ordered list of invocation and response events, that may be extended by adding response events such that:

  1. The extended list can be re-expressed as a sequential history.
  2. That sequential history is a subset of the original unextended list.

GOMS is a specialized human information processor model for human-computer interaction observation that describes a user's cognitive structure on four components. In the book The Psychology of Human Computer Interaction. written in 1983 by Stuart K. Card, Thomas P. Moran and Allen Newell, the authors introduce: "a set of Goals, a set of Operators, a set of Methods for achieving the goals, and a set of Selections rules for choosing among competing methods for goals." GOMS is a widely used method by usability specialists for computer system designers because it produces quantitative and qualitative predictions of how people will use a proposed system.

<span class="mw-page-title-main">System Idle Process</span> Kernel process in Windows NT operating systems

In Windows NT operating systems, the System Idle Process contains one or more kernel threads which run when no other runnable thread can be scheduled on a CPU. In a multiprocessor system, there is one idle thread associated with each CPU core. For a system with hyperthreading enabled, there is an idle thread for each logical processor.

<span class="mw-page-title-main">Spinning pinwheel</span> Cursor on macOS indicating that an application is busy

The spinning pinwheel is a type of throbber and a variation of the mouse pointer used in Apple's macOS to indicate that an application is busy.

In human–computer interaction, the keystroke-level model (KLM) predicts how long it will take an expert user to accomplish a routine task without errors using an interactive computer system. It was proposed by Stuart K. Card, Thomas P. Moran and Allen Newell in 1980 in the Communications of the ACM and published in their book The Psychology of Human-Computer Interaction in 1983, which is considered as a classic in the HCI field. The foundations were laid in 1974, when Card and Moran joined the Palo Alto Research Center (PARC) and created a group named Applied Information-Processing Psychology Project (AIP) with Newell as a consultant aiming to create an applied psychology of human-computer interaction. The keystroke-level model is still relevant today, which is shown by the recent research about mobile phones and touchscreens.

In computing, preemption is the act of temporarily interrupting an executing task, with the intention of resuming it at a later time. This interrupt is done by an external scheduler with no assistance or cooperation from the task. This preemptive scheduler usually runs in the most privileged protection ring, meaning that interruption and then resumption are considered highly secure actions. Such changes to the currently executing task of a processor are known as context switching.

In computing, reactive programming is a declarative programming paradigm concerned with data streams and the propagation of change. With this paradigm, it is possible to express static or dynamic data streams with ease, and also communicate that an inferred dependency within the associated execution model exists, which facilitates the automatic propagation of the changed data flow.

In computing, a hang or freeze occurs when either a process or system ceases to respond to inputs. A typical example is when computer's graphical user interface no longer responds to the user typing on the keyboard or moving the mouse. The term covers a wide range of behaviors in both clients and servers, and is not limited to graphical user interface issues.

<span class="mw-page-title-main">Input/output</span> Communication between an information processing system and the outside world

In computing, input/output is the communication between an information processing system, such as a computer, and the outside world, such as another computer system, peripherals, or a human operator. Inputs are the signals or data received by the system and outputs are the signals or data sent from it. The term can also be used as part of an action; to "perform I/O" is to perform an input or output operation.

DioneOS is a multitasking preemptive, real-time operating system (RTOS). The system is designed for microcontrollers, originally released on 2 February 2011 for the Texas Instruments TI MSP430x, and then on 29 March 2013 for the ARM Cortex-M3. Target microcontroller platforms have limited resources, i.e., system clock frequency of tens of MHz, and memory amounts of tens to a few hundred kilobytes (KB). The RTOS is adapted to such conditions by providing a compact and efficient image. The efficiency term here means minimizing further central processing unit (CPU) load caused by system use. According to this definition, the system is more effective when it consumes less CPU time to execute its internal parts, e.g., managing threads.

BatteryMAX is an idle detection system used for computer power management under operating system control developed at Digital Research, Inc.'s European Development Centre (EDC) in Hungerford, UK. It was created to address the new genre of portable personal computers (laptops) which ran from battery power. As such, it was also an integral part of Novell's PalmDOS 1.0 operating system tailored for early palmtops in 1992.

In distributed system and system resource, elasticity is defined as "the degree to which a system is able to adapt to workload changes by provisioning and de-provisioning resources in an autonomic manner, such that at each point in time the available resources match the current demand as closely as possible". Elasticity is a defining characteristic that differentiates cloud computing from previously proposed computing paradigms, such as grid computing. The dynamic adaptation of capacity, e.g., by altering the use of computing resources, to meet a varying workload is called "elastic computing".

References

  1. Weik, Martin H. (31 December 2000). Computer science and communications dictionary. Springer. p. 1484. ISBN   978-0-7923-8425-0 . Retrieved 17 November 2010.
  2. University of Tennessee (System). Space Institute; SIGART. (1988). Proceedings: the first International Conference on Industrial & Engineering Applications of Artif[i]cial Intelligence & Expert Systems : IEA/AIE-88 at the University of Tennessee Space Institute (UTSI), Tullahoma, Tennessee, June 1-3, 1988. Taylor & Francis US. p. 180. ISBN   978-0-89791-271-6 . Retrieved 17 November 2010.
  3. Jonas Bonér; Dave Farley; Roland Kuhn; Martin Thompson (September 16, 2014). "The Reactive Manifesto (v2.0)".
  4. Melius Weideman (2009). Website Visibility: The Theory and Practice of Improving Rankings. Chandos Publishing. ISBN   978-1-84334-473-5 . Retrieved 2021-11-04.