Overview
     
      The Internet
      Operating System (IOS) is a distributed middleware framework that provides
      support for dynamic reconfiguration of large-scale distributed
      applications through opportunisticload balancing capabilities,
      resource-level profiling and application-level profiling. IOS has a
      modular nature that allows developers to create easily various
      reconfiguration policies. One key ingredient to application
      reconfiguration is the support for process migration. Applications should
      support process mobility to be able to benefit from IOS reconfiguration
      policies.
       
      
      The goal of IOS middleware is to provide effective decentralized
      middleware-triggered dynamic reconfiguration strategies that enable
      application adaptation to the constantly changing behavior of large scale
      shared networks. To distributed application developers who often lack the
      time and expertise to handle complex performance tunings, IOS is a
      promising approach that combines both ease of use and high performance.
       
      Applications
      wishing to interact with IOS need to have a flexible structure that
      synergizes easily with the dynamic nature of shared networks. They should
      exhibit a large degree of processing and/or data parallelism for efficient
      use of the system and scalability to a large number of resources. We
      assume that every application consists of distributed and migratable
      entities.
      
      IOS reconfiguration mechanisms allow 1) analyzing profiled application
      communication patterns, 2) capturing the dynamics of the underlying
      physical resources, 3) and utilizing the profiled information to
      reconfigure application entities by changing their mappings to physical
      resources through migration. A key characteristic of IOS is that it adopts
      a decentralized strategy that avoids the use of any global knowledge to
      allow scalable reconfiguration.