如果我在启用了TZ的设备上有单个核心CPU,并且有两个进程在运行:一个在安全领域,一个在非安全领域,是否有可能拥有调度程序以先发制人的方式管理它们,以便每个进程都被分配一定的时间片?TrustZone:从两个世界调度进程
1
A
回答
0
TZ通常在单线程中执行,所以每当有来自非安全端的请求运行一些安全的应用程序。它将经历监视模式,然后上下文切换将发生从非安全世界到安全世界,然后安全应用程序将在一个线程的安全世界中开始执行。所以那个核心将会在那个时候在安全的世界中运行,但是如果来自no sec世界的任何中断,则执行将停止并且上下文将从安全切换到非安全以处理中断,在处理它之后将再次切换到安全的世界和这一次安全的世界可以安排到另一个核心。
所以作为回答你的问题是不可能的。到目前为止,TZ运行在单核上,一次只能有一个核心执行。
只是为了更加明确,如果安全的应用程序需要执行一些文件操作(如TZ没有它使用了一些监听到非安全方面执行该操作然后再上下文切换将发生文件系统)
2
实际上,这是可能的,但只能围绕一种方式。您不能使用单个调度程序来处理在完全独立的执行环境中执行的两个独立任务。你可以做的是使用FIQ为你做时间切片。如果将FIQ设置为SW异常,则可以将其设置为定期触发,例如每隔50ms触发一次。发生这种情况时,执行将被强制进入软件并且您的进程可以在那里运行。然后,您可以让流程运行指定的时间段,然后放弃控制回到NW,在离开前重置FIQ计时器。 NW然后可以运行,直到FIQ再次触发。如上所述,这不是一个处理SW和NW进程的单个调度程序,但它是一种执行您正在尝试执行的操作的潜在方式。尽管如此,你仍然需要考虑其他中断,所以记住这一点。
相关问题
- 1. 编程世界
- 2. i18n世界您好世界
- 3. 从developer.android.com运行hello世界程序
- 4. 进程调度
- 5. 进程调度
- 6. 线性深度到世界位置
- 7. Three.js真实世界的矩阵精度
- 8. 在MVVM世界
- 9. 调试世界杯模拟器C++
- 10. 你好世界Pinvoke和本地调用
- 11. OpenGL的:正火世界协调
- 12. 设置世界界限
- 13. 从线性深度重建世界位置
- 14. 从深度重构世界位置是错误的
- 15. 公司世界中Silverlight的普及程度如何?
- 16. onkeypress vs oninput如何获得最好的两个世界
- 17. 进程线程调度
- 18. 如何从Wikitude世界中调用PhoneGap API
- 19. 需要帮助调试PHP 5 SOAP Hello世界应用程序
- 20. 创建2D世界
- 21. 重复2D世界
- 22. Bukkit生成世界
- 23. Box2D世界尺寸
- 24. tensorflow.string_input_producer“世界你好”
- 25. FBJS你好世界
- 26. java世界术语
- 27. 从D3DXIntersectTri获取世界坐标
- 28. 从360视频到虚拟世界
- 29. 阿蒂米斯 - 如何从世界
- 30. 如何从cocos2d世界获得b2BodyDef ...?