Closed
Description
Inter Process Communication should be fast and effective. The performance of IPC is vital for modern operating systems. Here is an overview of how we can accomplish this in Aero:
- Each task will have its own message queue that contains pending messages.
- The message will contain the sender's PID and TID with data (
&[u8]
). It will aswell contain a message ID (usize
) used to identify the message without needing to parse the message itself. - Using the
sys_ipc_send
andsys_ipc_get
system calls the tasks can communicate with each other efficiently.
Drawbacks
This would require the kernel to clone the message
2 times (when you send the message the kernel keeps a copy of the message and for the task that we are sending to has to clone it again)