- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有人可以向我解释一下,在 CPU 进入安全模式后(监控程序设置 NS = 0
),安全操作系统是如何调度的?是不是现在 CPU 处于安全模式,定时器滴答中断将由安全操作系统而不是非安全世界处理?
最佳答案
监控模式设置 NS=0
会将 CP15 寄存器设置为在监控模式下可见。请参阅:monitor mode IFAR/IFSR... .当监控模式切换到另一种模式并且NS=0
时,那么该模式就是secure world版本;这意味着存储的 CP15 寄存器是安全版本。此外,NS
位在总线周期 上清零。
如果设置了NS=1
,那么当监控模式切换时,banked CP15 寄存器是正常版本;主要是 正常 世界 MMU 将处于事件状态。此外,NS
位在总线周期 上设置。 TZ vs hypervisor
How does the secure OS gets scheduled?
监控模式就是这样做的。 SCR
(cp15 c1, c1, 0) 具有确定是否使用monitor 向量表或当前 CPU 世界(安全 或正常)。如果您在一个正常世界中,并且您希望计时器打断那个世界,您需要监控模式来处理它。
您可以通过两种可能的方式设置监控模式,
FIQ
。推荐首选。在此模式下,监控 代码必须确保SCR#FIQ
(位 2)在正常 世界中设置,但在< em>安全世界。 SCR#IRQ
(位 1)将在运行安全操作系统时设置(如果您希望正常中断中断安全操作系统)并在正常时清除 世界。
因此,当安全 定时器有一个FIQ
中断时,它会陷入监视模式,从而执行世界切换ref1 并运行安全操作系统计时器代码。此安全计时器 可能会导致安全世界重新安排时间。 正常 和安全 世界调度程序交互的方式取决于软件。即,没有通用的答案。这取决于,
主要是 ARM TrustZone 本身不处理安全操作系统调度。您需要编写使用提供的原语来实现它的软件。 ARM TrustZone 只是促进了不同的实现方式。 TrustZone Whitepaper
参见:How to develop programs for TrustZone对于一些替代设置。
Ref1:世界开关 保存/恢复所有使用 模式的所有通用 CPU 寄存器。即,在从正常到安全世界的切换中,R0-R15(以及所有银行副本)加上可能的 NEON/VFP 必须保存到正常世界 商店。同样,必须为安全世界 重新加载寄存器。监控模式 sp
为访问这些 world contexts 提供了一个很好的 anchor 。监控模式 sp
应该在安全启动期间设置,在 正常 世界初始化之前。这很像传统的操作系统上下文切换。 SCR#NS
(位 0)已适当设置;您可以在寄存器切换之前或之后执行此操作,具体取决于您保存寄存器的方式(即,通过模式切换或通过 srs
)。
关于ARM TrustZone - 调度程序在安全和非安全操作系统中的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22659472/
前言 elsa内部很多地方都会用到后台作业,也就是在后台线程中执行一堆任务,这与我们通常理解的后台作业没有区别。 elsa将后台作业也称为调度Schedul,相关功能由Elsa.Schedulin
我有一个带有一些功能的perl对象。每个功能从主程序中调用一次。我想并行运行某些功能以节省时间。由于某些功能取决于先前功能的结果,因此我无法将它们全部一起运行。 我想到了这样的事情: 对于每个函数,保
首先,我的代码在这里: import schedule # see https://github.com/dbader/schedule import crawler def job(): p
从 11 月 1 日开始,我必须使用quartz调度程序每4个月安排一次任务。我使用 cronExpression 来实现同样的目的。但 cronExpression 每年都会重置。所以我的任务将在
我有以下代码块,它调用两个请求,但略有延迟。 final ActorRef actor1 = getContext().actorOf( ActorClass.prop
考虑到 Linux 的情况,我们为每个用户堆栈都有一个内核堆栈,据我所知,每当发生上下文切换时,我们都会切换到当前进程的内核模式。 这里我们保存当前进程的当前状态,寄存器,程序数据等,然后调度器(不确
我有将东西移植到 OpenBSD 的奇怪爱好。我知道它有 pthreads 问题,但在 2013 年 5 月发布版本之前我不会升级。我使用的是 5.0,我对 pthreads 还很陌生。我已经学习了
给定一组任务: T1(20,100) T2(30,250) T3(100,400) (execution time, deadline=peroid) 现在我想将截止日期限制为 Di = f * Pi
使用 Django 开发一个小型日程安排 Web 应用程序,在该应用程序中,人们被分配特定的时间与他们的上级会面。员工存储为模型,与表示时间范围和他们有空的星期几的模型具有 OneToMany 关系。
我想了解贪婪算法调度问题的工作原理。 所以我一直在阅读和谷歌搜索一段时间,因为我无法理解贪心算法调度问题。 我们有 n 个作业要安排在单个资源上。作业 (i) 有一个请求的开始时间 s(i) 和结束时
这是流行的 El Goog 问题的变体。 考虑以下调度问题:有 n 个作业,i = 1..n。有 1 台 super 计算机和无限的 PC。每个作业都需要先经过 super 计算机的预处理,然后再在P
假设我有一个需要运行多次的蜘蛛 class My_spider(Scrapy.spider): #spider def 我想做这样的事 while True: runner = Cra
我已将 podAntiAffinity 添加到我的 DeploymentConfig 模板中。 但是,pod 被安排在我预计会被规则排除的节点上。 我如何查看 kubernetes 调度程序的日志以了
我已经使用 React - Redux - Typescript 堆栈有一段时间了,到目前为止我很喜欢它。但是,由于我对 Redux 很陌生,所以我一直在想这个特定的话题。 调度 Redux 操作(和
我想按照预定的计划(例如,周一至周五,美国东部时间晚上 9 点至 5 点)运行单个 Azure 实例以减少账单,并且想知道最好的方法是什么。 问题的两个部分: 能否使用服务管理 API [1] 按预定
假设最小模块安装(为了简单起见),Drupal 的 index.php 中两个顶级功能的核心“职责”是什么? ? drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL); me
我正在尝试使用 Racket(以前称为 PLT Scheme)连接 URL 调度。我查看了教程和服务器文档。我不知道如何将请求路由到相同的 servlet。 具体例子: #lang 方案 (需要网络服
我想在 Airflow (v1.9.0) 上运行计划。 我的DAG需要在每个月底运行,但我不知道如何编写设置。 my_dag = DAG(dag_id=DAG_ID, cat
我正在尝试在“httpTrigger”类型函数的 function.json 中设置计划字段,但计时器功能似乎未运行。我的目标是拥有一个甚至可以在需要时进行调度和手动启动的功能,而不必仅为了调度而添加
我正在尝试制定每周、每月的 Airflow 计划,但不起作用。有人可以报告可能发生的情况吗?如果我每周、每月进行安排,它就会保持静止,就好像它被关闭一样。没有错误信息,只是不执行。我发送了一个代码示例
我是一名优秀的程序员,十分优秀!