I'm developing a project that requires the execution of multiple tasks doing very different things. Moreover, the tasks need to communicate with each other to exchange data and be synchronized.
For example, I have to run some video on a screen while communicate through a serial port, and based on what I've received from the serial port I might change the video to be displayed.
What is the best solution here? I've thought of 2 options:
1) Create a big single project in a specific programming language (e.g., Python) and use a multi-threading/multi-processes library?
2) or create different COMPILED programs run by an higher level super-advisor (e.g., a scheduler), however this super-advisor needs to ensure the communication and synchronization between the different programs.
Thanks for your time