RouterOS v7 is capable of splitting tasks between multiple processes.
There is one "main" task, which can start/stop sub-tasks and process data between those sub-tasks. Each sub-tasks can allocate "private" (only accessible by this particular task) and "shared" memory (accessible by all route tasks).
List of tasks that can be spit is:
- Handling of "print" command;
- Entire OSPF protocol handling;
- BGP connections and configuration handling;
- BGP receive (one task per peer);
- BGP send (one task per peer);
- FIB update.
All currently used tasks and their allocated private/shared memory can be monitored using command:
/routing/stats/process/print