previous up next
Chapter 7:

Analysis of the real-time performance of the environment

Thus far we have discussed the architecture of the environment and its major classes for synthesis and composition. We have seen that the environment can be used both for the composition and for the synthesis of a piece. Much of the functionality of the architecture lies in the use of an embedded Scheme interpreter. In addition, we propose to use the environment in an interactive set-up. In that case the system has to run in real-time. However, the interpreter and the synthesis task have quite different requirements and time behavior. On the one hand, the synthesis task is a real-time task. It requires a very controllable usage of the system resources in order to guarantee a correct behavior. On the other hand, the interpreter is very erratic. Because of the complex network of dependencies between the objects in the environment, the interpreter typically delegates the task of freeing unused objects to a garbage collector. This makes the runtime behavior of the interpreter very difficult to predict. Since both tasks run in the same space, the interpreter may interfere with the synthesizer causing its deadlines to be missed.

With our current prototype implementation, we offer soft real-time performance. That is, the synthesizer runs fast enough for direct output, but an occasional interruption may occur and cannot be completely avoided. This is sufficient for studio work. However, if we want the use such an integrated environment in critical situations such as concerts and music installations it must be capable of hard real-time performance.

In this chapter we will investigate two points:

  • We will analyze whether hard real-time is possible at all in such an integrated environment. If this is not possible, we will be forced to define a new architecture for use in critical situations. If it is possible, we will point out what is left to be done to make the current implementation real-time.

  • Independent of whether hard real-time is possible or not, we can list a number of design decisions that will limit the influence of the garbage collector on the real-time task.

We start in the next section with a short description of the interaction between the main components of the system in runtime. In this overview we will take the opportunity to highlight the different stages in the life of a synthesis process. Then we will take a look at the particular case of the interaction with the garbage collector (Section 1.2). We estimate the worst case execution time of the synthesizer (Section 1.3). Finally, we discuss the real-time possibilities of the architecture (Section 1.4).

7.1 The dynamic view of the architecture
7.2 The influence of a garbage collector
7.3 Protecting the system from overload
7.4 Design strategies and real-time possibilities of the environment
previous up next