The adaptive computing systems are increasing interest in the past few years. A variety of techniques enables software for the adaptation to its environment dynamically. This development has been driven by two revolutions in the computing filed. The emergence of pervasive computing are increasing the focus on dissolving traditional boundaries with the computer and human interaction.
Mobile devices are adapting variable conditions that are based on wireless networks and conservation of limited battery life. The demand for autonomic computing has made a significant growth by focusing on the development systems for the management and protection of high level human guidance. This capability is very important for the systems like power grids and financial networks that help in the survival of hardware components for the security and failure attacks.
There are two approaches that help in the implementation of software adaptation. The parameter adaption allows the modification of program variables that can also determines the behavior. The internet transmission control protocol helps in the adjustment of behavior by changing values that can be controlled with window management and re-transmission in response to apparent network congestion.
But the adaptation of these parameters has certain disadvantages. It will not allow new algorithms and components to add different applications after the original construction and design.
The true parameters are directed towards the applications for the usage of different and existing strategies without adopting the new strategy. With compositional adaptation, new algorithms can be adopted through various applications that can address multiple concerns during the time of development.
This flexibility supports the program variables in strategy selection. It will allow the dynamic recomposition of the software in the execution activities.
It is classified into three categories:
Application level adaptivity – A variety of mathematical models are available for the description of science. These models are very accurate when compared with high computational and storage requirements. A simulation code helps in finding the switching between such models that can trade the accuracy of computational resources and time.
Algorithm level adaptivity – The implementation of desired functionality can be achieved by various algorithms that are very beneficial for the switching between algorithms so that it can adapt the available resources and properties with the desired output.
System level adaptivity – The hardware failure of fault tolerant computers can also be adopted that helps to ensure the survival of the systems. The quality of services can be changed from portable devices that can also adapt available resources.