In computer science Computer science or computing science is the study of the theoretical foundations of information and computation, and of practical techniques for their implementation and application in computer systems. It is frequently described as the systematic study of algorithmic processes that create, describe, and transform information. Computer science, real-time computing (RTC), or reactive computing, is the study of hardware A personal computer is made up of multiple physical components of computer hardware, upon which can be installed an operating system and a multitude of software to perform the operator's desired functions and software Computer software, or just software, is a general term primarily used for digitally stored data such as computer programs and other kinds of information read and written by computers. Today, this includes data that has not traditionally been associated with computers, such as film, tapes and records. The term was coined in order to contrast to the systems that are subject to a "real-time constraint"—i.e., operational deadlines from event to system response. By contrast, a non-real-time system is one for which there is no deadline, even if fast response or high performance is desired or preferred. The needs of real-time software are often addressed in the context of real-time operating systems A real-time operating system is a multitasking operating system intended for real-time applications. Such applications include embedded systems (programmable thermostats, household appliance controllers), industrial robots, spacecraft, industrial control (see SCADA), and scientific research equipment, and synchronous programming languages A synchronous programming language is a computer programming language optimized for programming reactive systems, systems that are often interrupted and must respond quickly. Many such systems are also called realtime systems, and are found often in embedded uses. The term 'reactive' is chosen to avoid ambiguities that occur sometimes when using, which provide frameworks on which to build real-time application software.
A real time system may be one where its application can be considered (within context) to be mission critical The term mission critical refers to any factor (equipment, process, procedure, software, etc.) which is crucial to the successful completion of an entire project. It may also refer to a project the success of which is vital to the mission of the organization which attempts it. The anti-lock brakes on a car are a simple example of a real-time computing system — the real-time constraint in this system is the short time in which the brakes must be released to prevent the wheel from locking. Real-time computations can be said to have failed if they are not completed before their deadline, where their deadline is relative to an event. A real-time deadline must be met, regardless of system load In UNIX computing, the system load is a measure of the amount of 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.
Contents |
History
The term real-time derives from its use in early simulation Simulation is used in many contexts, including the modeling of natural systems or human systems in order to gain insight into their functioning. Other contexts include simulation of technology for performance optimization, safety engineering, testing, training and education. Simulation can be used to show the eventual real effects of alternative. While current usage implies that a computation that is 'fast enough' is real-time, originally it referred to a simulation that proceeded at a rate that matched that of the real process it was simulating. Analog computers An analog computer is a form of computer that uses the continuously-changeable aspects of physical phenomena such as electrical, mechanical, or hydraulic quantities to model the problem being solved. In contrast, digital computers represent varying quantities incrementally, as their numerical values change, especially, were often capable of simulating much faster than real-time, a situation that could be just as dangerous as a slow simulation if it were not also recognized and accounted for.
Hard and soft real-time systems
A system is said to be real-time if the total correctness of an operation depends not only upon its logical correctness, but also upon the time in which it is performed. The classical conception is that in a hard real-time or immediate real-time system, the completion of an operation after its deadline is considered useless - ultimately, this may cause a critical failure of the complete system. A soft real-time system on the other hand will tolerate such lateness, and may respond with decreased service quality (e.g., omitting frames while displaying a video).
Hard real-time systems are used when it is imperative that an event is reacted to within a strict deadline. Such strong guarantees are required of systems for which not reacting in a certain interval of time would cause great loss in some manner, especially damaging the surroundings physically or threatening human lives (although the strict definition is simply that missing the deadline constitutes failure of the system). For example, a car An automobile, motor car or car is a wheeled motor vehicle used for transporting passengers, which also carries its own engine or motor. Most definitions of the term specify that automobiles are designed to run primarily on roads, to have seating for one to eight people, to typically have four wheels, and to be constructed principally for the engine In common usage, an engine burns or otherwise consumes fuel, and is differentiated from an electric machine that derives power without changing the composition of matter. An engine may also serve as a "prime mover", a component that transforms the flow or changes in pressure of a fluid into mechanical energy. An automobile powered by an control system is a hard real-time system because a delayed signal may cause engine failure or damage. Other examples of hard real-time embedded systems include medical systems such as heart pacemakers A pacemaker is a medical device which uses electrical impulses, delivered by electrodes contacting the heart muscles, to regulate the beating of the heart. The primary purpose of a pacemaker is to maintain an adequate heart rate, either because the heart's native pacemaker is not fast enough, or there is a block in the heart's electrical and industrial process controllers. Hard real-time systems are typically found interacting at a low level with physical hardware, in embedded systems An embedded system is a computer system designed to perform one or a few dedicated functions often with real-time computing constraints. It is embedded as part of a complete device often including hardware and mechanical parts. By contrast, a general-purpose computer, such as a personal computer , is designed to be flexible and to meet a wide. Early video game systems such as the Atari 2600 The Atari 2600 is a video game console released in October 1977. It is credited with popularizing the use of microprocessor-based hardware and cartridges containing game code, instead of having non-microprocessor dedicated hardware with all games built in. The first game console to use this format was the Fairchild Channel F; however, the Atari 260 and Cinematronics vector graphics had hard real-time requirements because of the nature of the graphics and timing hardware.
In the context of multitasking In computing, multitasking is a method by which multiple tasks, also known as processes, share common processing resources such as a CPU. In the case of a computer with a single CPU, only one task is said to be running at any point in time, meaning that the CPU is actively executing instructions for that task. Multitasking solves the problem by systems the scheduling policy is normally priority driven (pre-emptive In computing, preemption is the act of temporarily interrupting a task being carried out by a computer system, without requiring its cooperation, and with the intention of resuming the task at a later time. Such a change is known as a context switch. It is normally carried out by a privileged task or part of the system known as a preemptive schedulers). Other scheduling algorithms include Earliest Deadline First, which, ignoring the overhead of context switching A context switch is the computing process of storing and restoring the state of a CPU such that multiple processes can share a single CPU resource. The context switch is an essential feature of a multitasking operating system. Context switches are usually computationally intensive and much of the design of operating systems is to optimize the use, is sufficient for system loads of less than 100% [1]. New overlay scheduling systems, such as an Adaptive Partition Scheduler Adaptive Partition Schedulers are a relatively new type of partition scheduler, pioneered with the most recent version of the QNX operating system. Adaptive Partitioning, or AP, allows the real-time system designer to request that a percentage of processing resources be reserved for a particular partition . The operating system's priority driven assist in managing large systems with a mixture of hard real-time and non real-time applications.
Soft real-time systems are typically used where there is some issue of concurrent access and the need to keep a number of connected systems up to date with changing situations; for example software that maintains and updates the flight plans for commercial airliners An airline provides air transport services for passengers or freight, generally with a recognized operating certificate or license. Airlines lease or own their aircraft with which to supply these services and may form partnerships or alliances with other airlines for mutual benefit. The flight plans must be kept reasonably current but can operate to a latency of seconds. Live audio-video systems are also usually soft real-time; violation of constraints results in degraded quality, but the system can continue to operate.
Real-time and high-performance
Real-time computing is sometimes misunderstood to be high-performance computing High-performance computing uses supercomputers and computer clusters to solve advanced computation problems. Today, computer systems approaching the teraflops-region are counted as HPC-computers, but this is not always the case. For example, a massive supercomputer A supercomputer is a computer that is at the frontline of current processing capacity, particularly speed of calculation. Supercomputers were introduced in the 1960s and were designed primarily by Seymour Cray at Control Data Corporation , which led the market into the 1970s until Cray left to form his own company, Cray Research. He then took over executing a scientific simulation may offer impressive performance, yet it is not executing a real-time computation. Conversely, once the hardware and software for an anti-lock braking system has been designed to meet its required deadlines, no further performance gains are necessary. Furthermore, if a network server is highly loaded with network traffic, its response time may be slower but will (in most cases) still succeed. Hence, such a network server would not be considered a real-time system: temporal failures (delays, time-outs, etc.) are typically small and compartmentalized (limited in effect) but are not catastrophic failures. In a real-time system, such as the FTSE 100 Index The FTSE 100 Index — also called FTSE 100, FTSE, or, informally, the "footsie" — is a share index of the 100 most highly capitalised UK companies listed on the London Stock Exchange. The index began on 3 January 1984 with a base level of 1000; the highest value reached to date is 6950.6, on 30 December 1999, a slow-down beyond limits would often be considered catastrophic in its application context. Therefore, the most important requirement of a real-time system is predictability and not performance.
Some kinds of software, such as many chess-playing programs Computer chess is computer architecture encompassing hardware and software capable of playing chess autonomously without human guidance. Computer chess occurs as solo entertainment , as aids to chess analysis, for computer chess competitions, and as research to provide insights into human cognition, can fall into either category. For instance, a chess program designed to play in a tournament with a clock will need to decide on a move before a certain deadline or lose the game, and is therefore a real-time computation, but a chess program that is allowed to run indefinitely before moving is not. In both of these cases, however, high performance is desirable: the more work a tournament chess program can do in the allotted time, the better its moves will be, and the faster an unconstrained chess program runs, the sooner it will be able to move. This example also illustrates the essential difference between real-time computations and other computations: if the tournament chess program does not make a decision about its next move in its allotted time it loses the game—i.e., it fails as a real-time computation—while in the other scenario, meeting the deadline is assumed not to be necessary.
Design methods
Several methods exist to aid the design of real-time systems, an example of which is MASCOT, an old but very successful method which represents the concurrent In computer science, concurrency is a property of systems in which several computations are executing simultaneously, and potentially interacting with each other. The computations may be executing on multiple cores in the same chip, preemptively time-shared threads on the same processor, or executed on physically separated processors. A number of structure of the system. Other examples are HOOD, Real-Time UML, AADL the Ravenscar profile and Real-Time Java.
Key people
- Alan Burns
- Giorgio Buttazzo
- Costas Courcoubetis
- David Dill
- Nicolas Halbwachs
- Hermann Kopetz
- Arthur Pollen
- Bruce Douglass
- John Stankovic
- Lui Sha
See also
- Synchronous programming language A synchronous programming language is a computer programming language optimized for programming reactive systems, systems that are often interrupted and must respond quickly. Many such systems are also called realtime systems, and are found often in embedded uses. The term 'reactive' is chosen to avoid ambiguities that occur sometimes when using
- Ptolemy Project
- DSOS DSOS was a real-time operating system (sometimes referred to as an operating system kernel) developed by Texas Instruments' Geophysical Services division (GSI) in the mid-1970's
- Worst-case execution time
References
- ^ C. Liu and J. Layland. Scheduling Algorithms for Multiprogramming in a Hard Real-time Environment. Journal of the ACM, 20(1):46--61, Jan. 1973. http://citeseer.ist.psu.edu/liu73scheduling.html
External links
Technical committees
Scientific conferences
- ECRTS - Euromicro Conference on Real-time Systems
- IEEE Real-time Systems Symposium
- IEEE Real-time Technology and Applications Symposium
- International Symposium on Object-oriented Real-time distributed Computing
- IEEE International Conference on Embedded and Real-Time Computing Systems and Applications
- Real-Time & Embedded Computing Conference
Journals
Research groups
- CISTER Research Unit, ISEP, Polytechnic Institute of Porto (IPP), Portugal
- Real-Time Systems Research Group,INRIA,LORIA NANCY, France
- Real-Time & Embedded Computing Laboratory (USMAN SHARIF BCS-SP03-37)
- Mälardalen Real-Time research Centre
- Real-Time Computing Laboratory
- Real-Time Systems Laboratory
- RTSE Laboratory
- Institute for Systems Engineering - Real Time systems Group
- Vienna University of Technology - Institute for Computer Engineering - Real-Time Systems Group
- Real-Time Systems Research Group at the University of York, UK
- Chalmers University of Technology - Dependable Real-Time Systems research group
- ARTES: a national Swedish strategic research initiative in Real-Time Systems supported by the Swedish Foundation for Strategic Research (SSF), SE
- Real-Time Systems at the University of North Carolina at Chapel Hill
- Real-time Systems Laboratory at Virginia Polytechnic and State University, Blacksburg
Categories: Real-time computing
TechShout! (blog)
According to the official Taptu blogspot, the company has released a new iPhone app for real - time web search powered by OneRiot. The deal with OneRiot has ...
and more »
Steven Parker
Fri, 09 Jul 2010 10:47:37 GM
The volume of emails sent is incredible, as is the number of ciggies smoked. As we have more open data from.
Q. I noticed that professional video cards like nvidias quadro fx cost a lot more than even the newest GeForce 8 series cards, and was wondering what the difference is between video cards used for prerendered graphics and real-time rendering cards like the new GeForce 8 series? I mean, if I bought an nvidia quadro fx, would I be able to use it to play games, or just for 3d animation?
Asked by Randolph - Wed Jun 13 04:14:28 2007 - - 2 Answers - 0 Comments
A. The Quadros and the ATI FireGLs are pro level OpenGL accelerators that basically accelerate OpenGL functions through GL drivers. Normal PC "game" video cards like ATI X1 and X2 and GeForce 7 / 8 series accelerate mainly polygons, transform (rotation and such), lighting, and shading. That's actually very little of OpenGL's capabilities. (You ever tried looking through the OpenGL standard's book?) Remember, games want to boast max amount of triangles, texture elements (texels), and so on per second, where as the Pro cards actually measure performance by some other ways. So basically we're comparing apples and oranges. Think of our GeForce 8 as... say, a Top Fuel Dragster. And the Quadros as... A Champ Car or a Formula 1 car, a different… [cont.]
Answered by Kasey C - Wed Jun 13 14:01:05 2007


