real in computer science realtime computing rtc or reactive computing describes hardware and software systems subject to a realtime constraint for example from event to system response the correctness of these types of systems depends on their temporal aspects as well as their functional aspects realtime responses are often understood to be in the order of milliseconds and sometimes microseconds a system not specified as operating in real time cannot usually guarantee a response within any timeframe although typical or expected response times may be given a realtime system has been described as one which controls an environment by receiving data processing them and returning the results sufficiently quickly to affect the environment at that time the term realtime is also used in simulation to mean that the simulations clock runs at the same speed as a real clock and in process control and enterprise systems to mean without significant delay realtime software may use one or more of the following synchronous programming languages realtime operating systems and realtime networks each of which provide essential frameworks on which to build a realtime software application systems used for many mission critical applications must be realtime such as for control of flybywire aircraft or antilock brakes on a vehicle which must produce maximum deceleration but intermittently stop braking to prevent skidding realtime processing fails if not completed within a specified deadline relative to an event deadlines must always be met regardless of system load history the term realtime derives from its use in early simulation in which a realworld process is simulated at a rate that matched that of the real process now called realtime simulation to avoid ambiguity analog computers most often were capable of simulating at a much faster pace than realtime a situation that could be just as dangerous as a slow simulation if it were not also recognized and accounted for minicomputers particularly in the 1970s onwards when built into dedicated embedded systems such as dog scanners increased the need for lowlatency prioritydriven responses to important interactions with incoming data and so operating systems such as data generals rdos realtime disk operatings system and rtos with background and foreground scheduling as well as digital equipment corporations rt11 date from this era backgroundforeground scheduling allowed low priority tasks cpu time when no foreground task needed to execute and gave absolute priority within the foreground to threadstasks with the highest priority realtime operating systems would also be used for timesharing multiuser duties for example data general business basic could run in the foreground or background of rdog and would introduce additional elements to the scheduling algorithm to make it more appropriate for people interacting via dumb terminals once when the mos technology 6502 used in the commodore 64 and apple ii and later when the motorola 68000 used in the macintosh atari st and commodore amiga were popular anybody could use their home computer as a realtime system the possibility to deactivate other interrupts allowed for hardcoded loops with defined timing and the low interrupt latency allowed the implementation of a realtime operating system giving the user interface and the disk drives lower priority than the realtime thread compared to these the programmable interrupt controller of the intel cpus 808680586 generates a very large latency and the windows operating system is neither a realtime operating system nor does it allow a program to take over the cpu completely and use its own scheduler without using native machine language and thus surpassing all interrupting windows code however several coding libraries exist which offer real time capabilities in a high level language on a variety of operating systems for example java real time the motorola 68000 and subsequent family members 68010 68020 etc also became popular with manufacturers of industrial control systems this application area is one in which realtime control offers genuine advantages in terms of process performance and safety criteria for realtime computing a system is said to be realtime if the total correctness of an operation depends not only upon its logical correctness but also upon the time in which it is performed realtime systems as well as their deadlines are classified by the consequence of missing a deadline hard missing a deadline is a total system failure firm infrequent deadline misses are tolerable but may degrade the systems quality of service the usefulness of a result is zero after its deadline soft the usefulness of a result degrades after its deadline thereby degrading the systems quality of service thus the goal of a hard realtime system is to ensure that all deadlines are met but for soft realtime systems the goal becomes meeting a certain subset of deadlines in order to optimize some applicationspecific criteria the particular criteria optimized depend on the application but some typical examples include maximizing the number of deadlines met minimizing the lateness of tasks and maximizing the number of high priority tasks meeting their deadlines hard realtime systems are used when it is imperative that an event be 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 engine control system is a hard realtime system because a delayed signal may cause engine failure or damage other examples of hard realtime embedded systems include medical systems such as heart pacemakers and industrial process controllers hard realtime systems are typically found interacting at a low level with physical hardware in embedded systems early video game systems such as the atari 2600 and cinematronics vector graphics had hard realtime requirements because of the nature of the graphics and timing hardware in the context of multitasking systems the scheduling policy is normally priority driven preemptive schedulers other scheduling algorithms include earliest deadline first which ignoring the overhead of context switching is sufficient for system loads of less than 100 new overlay scheduling systems such as an adaptive partition scheduler assist in managing large systems with a mixture of hard realtime and non realtime applications soft realtime systems are typically used to solve issues of concurrent access and the need to keep a number of connected systems uptodate through changing situations an example can be software that maintains and updates the flight plans for commercial airliners the flight plans must be kept reasonably current but they can operate with the latency of a few seconds live audiovideo systems are also usually soft realtime violation of constraints results in degraded quality but the system can continue to operate and also recover in the future using workload prediction and reconfiguration methodologies realtime in digital signal processing in a realtime digital signal processing dsp process the analyzed input and generated output samples can be processed or generated continuously in the time it takes to input and output the same set of samples independent of the processing delay it means that the processing delay must be bounded even if the processing continues for an unlimited time that means that the mean processing time per sample including overhead is no greater than the sampling period which is the reciprocal of the sampling rate this is the criterion whether the samples are grouped together in large segments and processed as blocks or are processed individually and whether there are long short or nonexistent input and output buffers consider an audio dsp example if a process requires 201 seconds to analyze synthesize or process 200 seconds of sound it is not realtime however if it takes 199 seconds it is or can be made into a realtime dsp process a common life analog is standing in a line or queue waiting for the checkout in a grocery store if the line asymptotically grows longer and longer without bound the checkout process is not realtime if the length of the line is bounded customers are being processed and output as rapidly on average as they are being inputted and that process is realtime the grocer might go out of business or must at least lose business if they cannot make their checkout process realtime thus it is fundamentally important that this process is realtime a signal processing algorithm that cannot keep up with the flow of input data with output falling farther and farther behind the input is not realtime but if the delay of the output relative to the input is bounded regarding a process that operates over an unlimited time then that signal processing algorithm is realtime even if the throughput delay may be very long live vs realtime realtime signal processing is necessary but not sufficient in and of itself for live signal processing such as what is required in live event support live audio digital signal processing requires both realtime operation and a sufficient limit to throughput delay so as to be tolerable to performers using stage monitors or inear monitors and not noticeable as lip sync error by the audience also directly watching the performers tolerable limits to latency for live realtime processing is a subject of investigation and debate but is estimated to be between 6 and 20 milliseconds realtime bidirectional telecommunications delays of less than 300 ms round trip or twice the unidirectional delay are considered acceptable to avoid undesired talkover in conversation realtime and highperformance realtime computing is sometimes misunderstood to be highperformance computing but this is not an accurate classification for example a massive supercomputer executing a scientific simulation may offer impressive performance yet it is not executing a realtime computation conversely once the hardware and software for an antilock braking system have been designed to meet its required deadlines no further performance gains are obligatory or even useful furthermore if a network server is highly loaded with network traffic its response time may be slower but will in most cases still succeed before it times out hits its deadline hence such a network server would not be considered a realtime system temporal failures delays timeouts etc are typically small and compartmentalized limited in effect but are not catastrophic failures in a realtime system such as the ftse 100 index a slowdown beyond limits would often be considered catastrophic in its application context therefore the most important requirement of a realtime system is predictability and not performance some kinds of software such as many chessplaying programs 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 realtime 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 realtime 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 gameie it fails as a realtime computationwhile in the other scenario meeting the deadline is assumed not to be necessary highperformance is indicative of the amount of processing that is performed in a given amount of time whereas realtime is the ability to get done with the processing to yield a useful output in the available time near realtime the term near realtime or nearly realtime nrt in telecommunications and computing refers to the time delay introduced by automated data processing or network transmission between the occurrence of an event and the use of the processed data such as for display or feedback and control purposes for example a nearrealtime display depicts an event or situation as it existed at the current time minus the processing time as nearly the time of the live event the distinction between the terms near real time and real time is somewhat nebulous and must be defined for the situation at hand the term implies that there are no significant delays in many cases processing described as realtime would be more accurately described as near realtime near realtime also refers to delayed realtime transmission of voice and video it allows playing video images in approximately realtime without having to wait for an entire large video file to download incompatible databases can exportimport to common flat files that the other database can importexport on a scheduled basis so that they can syncshare common data in near realtime with each other the distinction between near realtime and realtime varies and the delay is dependent on the type and speed of the transmission the delay in near realtime is typically of the order of several seconds to several minutes design methods several methods exist to aid the design of realtime systems an example of which is mascot an old but very successful method which represents the concurrent structure of the system other examples are hood realtime uml aadl the ravenscar profile and realtime java autonomous peripheral operation dsos processing modes ptolemy project realtime computer graphics realtime testing scheduling analysis realtime systems synchronous programming language timeutility function worstcase execution time alan burns and andy wellings 2009 realtime systems and programming languages 4th ed addisonwesley isbn9780321417459 buttazzo giorgio 2011 hard realtime computing systems predictable scheduling algorithms and applications new york ny springer liu jane ws 2000 realtime systems upper saddle river nj prentice hall ieee technical committee on realtime systems euromicro technical committee on realtime systems the what where and why of realtime simulation design of a realtime programming system computers and automation xii 9 2634 sep 1963 set of notes which will hopefully point up problem areas which should be considered in real time design vtemajor fields of computer sciencenote this template roughly follows the 2012 acm computing classification systemhardware printed circuit board peripheral integrated circuit very large scale integration systems on chip socs energy consumption green computing electronic design automation hardware acceleration computer systemsorganization computer architecture embedded system realtime computing dependability networks network architecture network protocol network components network scheduler network performance evaluation network service software organization interpreter middleware virtual machine operating system software quality software notationsand tools programming paradigm programming language compiler domainspecific language modeling language software framework integrated development environment software configuration management software library software repository software development software development process requirements analysis software design software construction software deployment software maintenance programming team opensource model theory of computation model of computation formal language automata theory computational complexity theory logic semantics algorithms algorithm design analysis of algorithms algorithmic efficiency randomized algorithm computational geometry mathematicsof computing discrete mathematics probability statistics mathematical software information theory mathematical analysis numerical analysis informationsystems database management system information storage systems enterprise information system social information systems geographic information system decision support system process control system multimedia information system data mining digital library computing platform digital marketing world wide web information retrieval security cryptography formal methods security services intrusion detection system hardware security network security information security application security humancomputerinteraction interaction design social computing ubiquitous computing visualization accessibility concurrency concurrent computing parallel computing distributed computing multithreading multiprocessing artificialintelligence natural language processing knowledge representation and reasoning computer vision automated planning and scheduling search methodology control method philosophy of artificial intelligence distributed artificial intelligence machine learning supervised learning unsupervised learning reinforcement learning multitask learning crossvalidation graphics animation rendering image manipulation graphics processing unit mixed reality virtual reality image compression solid modeling appliedcomputing ecommerce enterprise software computational mathematics computational physics computational chemistry computational biology computational social science computational engineering computational healthcare digital art electronic publishing cyberwarfare electronic voting video games word processing operations research educational technology document management book category portal wikiproject commons 