TrustZone的:从两个世界的进程调度(TrustZone: Scheduling proces

2019-10-21 03:54发布

如果我有一个启用TZ-设备上的单核CPU,并有运行中的两个过程:一个在安全的世界和一个在非安全世界,是有可能有调度管理它们在先发制人的方式,使得每个进程被分配一定的时间片?

Answer 1:

其实,这是可能的,但只有在四围的方式。 你不能使用一个调度程序来处理两个独立的任务,因为他们在执行完全独立的执行环境。 你虽然可以做的是使用的FIQ做时间分片给你。 如果您设置的FIQ是SW例外,你可以将其设置为触发定期,例如每50ms。 发生这种情况时,执行将被强制进入SW和您的过程可以运行在那里。 然后,您可以在指定时间内运行的过程,然后放弃控制回西北,临行前重置FIQ计时器。 然后,NW可以运行,直至FIQ再次触发。

如前所述,这是不是一个单一的调度处理既SW和NW过程,但它是你试图做什么的潜在方法。 您还需要考虑,虽然其他中断,所以记住这一点。



Answer 2:

TZ通常在单一线程执行,以便每当有来自非安全侧的请求运行一些安全应用。 它会通过监视器模式,然后上下文切换将从非-secure发生,以确保世界,然后安全应用将在安全世界中的一个线程开始执行。 这样核心将在安全世界中运行该时间,但如果任何来自没有秒世界打断,然后将停止执行,并上下文将与安全切换到非安全处理中断,处理后它会再次切换到安全的世界和这时候安全的世界可以如期另一个核心。

因此,作为回答你的问题是不可能的。 截至目前执行TZ运行在单核和只有一个核心可以同时执行这一点。

只是为了更明确,如果安全的应用程序需要执行一些文件操作(如TZ没有它使用了一些监听到非安全方面执行该操作的文件系统,然后再上下文切换会发生)



文章来源: TrustZone: Scheduling processes from the two worlds