Implementing a live migration feature on a CSP environment

In today’s digital world, computer systems play an integral role in how we interact with our surroundings. One key aspect of these systems is their ability to manage and allocate resources efficiently. This research set out to investigate the migration of tasks and processes within the communicating sequential processes (CSP) environment, which is a cutting-edge approach to designing and managing concurrent tasks in computer systems. 

By exploring three distinct migration techniques – channel migration, process migration, and code migration – the aim was to optimise the performance of the CSP environment and improving its adaptability. This work focuses on a JavaScript CSP library, extending its capabilities to test and analyse the above-mentioned migration techniques.


This research project delves into the fascinating world of computer systems, concentrating in particular on the dynamic and versatile nature of tasks and processes. In the realm of computing, the CSP environment is a sophisticated approach to managing concurrent tasks, allowing separate entities to work in tandem without interference. This groundbreaking environment offers new opportunities for improving the efficiency and adaptability of computer systems.


The investigation revolved around three migration techniques: channel migration, process migration, and code migration. Since each technique offers its unique strengths and challenges, exploring them made it possible to understand their potential better, and thus enhancing the CSP environment.


Channel migration, for instance, refers to the act of reassigning communication channels within the system. This form of migration could help balance the load between different components and improve the system’s overall responsiveness. Process migration, on the other hand, entails moving an entire process from one location to another. Redistributing processes would be conducive to optimising resource allocation further, as well as better managing the computational workload. Lastly, code migration revolves around transferring pieces of code between devices, potentially allowing for on-the-fly adaptations and system-wide improvements.


In order to examine the above-mentioned migration techniques, it was deemed necessary to extend an existing JavaScript CSP library, which served as the foundation for the research. JavaScript, a widely-used programming language, offers an accessible and adaptable platform to carry out our the relevant experiments. By building upon an existing library, it would be possible to benefit from its strengths while pushing its limits to explore new possibilities.


One of the goals of the project was to facilitate the understanding of the implications and potential of these migration techniques. In presenting the findings and insights obtained through this research, the intention was to bring about a better grasp of the inner workings of computer systems and the powerful capabilities of the CSP environment. This knowledge, would allow working towards developing even more efficient and versatile systems, which could cater for the ever-evolving needs of our digital world.


It is believed that this research into channel, process, and code migration techniques within the CSP environment has the potential of having a significant impact on the performance and adaptability of computer systems. By building upon an existing JavaScript CSP library and investigating these methods, the research has sought to contribute valuable knowledge to the field and inspire further advancements in this exciting area of study.

Figure 1. Simplified overview of the channel, process, and code migration techniques

Student: Guillermo Alejandro Castro  Díaz
Supervisor: Prof. Kevin Vella