假设A是当前线程,A发送消息给B,然后从C接收消息
(下面指的应该是异步的吧)
send()
在send-onlyIPC, A发送给B,只有当B的优先级比A高的时候,才会发送给B
receive()
线程A执行receive-onlyIPC,直接切换到C
call()
客户端A执行call IPC,直接切换到B。
replaywait()
服务端A应答客户B,同时等待用户C的下一次要求,只有当B的优先级比C的高的时候,才会转移到B,完成接收动作。
时间片donation
理论上讲,L4线程能够将自己的剩余时间片donate给另外一个线程。如果接受donate的线程没有被阻塞,它将执行完donate的时间片,然后再按照标准调度策略进行调度。
donate分为显式和隐式
显式指的是在thread_switch的时候指定
隐式指的是在IPC路径中,将控制权转移给另外的准备好接收的线程的时候。
上表中总结了时间片donate在L4中的场景。
实际上,L4ka和L4-embe