bitmap的工作流程
bitmap的工作流程是怎样的?
Categories:
bitmap的工作流程是怎样的?
1. 识别负载类型
根据应用场景和安全需求,将负载分为安全敏感型负载和非安全敏感型负载:
-
安全敏感型负载:需要在可信执行环境中运行,以保护数据和代码的机密性和完整性。
-
非安全敏感型负载:可以在开放的执行环境中运行,主要关注执行效率。
2. 设置隔离属性
定义隔离属性:为不同类型负载设置隔离属性,包括单向隔离和双向隔离。
-
单向隔离:允许安全敏感型负载访问非安全敏感型负载的资源,但不允许反向访问。
-
双向隔离:安全敏感型负载和非安全敏感型负载之间互相不能访问对方的资源。
3. 划分资源池
划分物理内存资源:将物理内存划分为不同的资源池以支持不同负载的隔离需求。
-
安全资源池:分配给安全敏感型负载。
-
非安全资源池:分配给非安全敏感型负载。
4. 配置安全属性
设置内存页安全状态:使用Bitmap数据结构标记每个物理内存页的安全状态。
-
安全页:标记为1,表示该页属于安全资源池。
-
非安全页:标记为0,表示该页属于非安全资源池。
5. 动态分配资源
按需分配内存:根据负载的启动和运行时需求,动态分配相应的内存资源。
-
安全敏感型负载:从安全资源池分配内存,并确保其访问受限于安全页。
-
非安全敏感型负载:从非安全资源池分配内存,允许其访问非安全页。
6. 隔离检测判断
判断隔离类型:判断当前负载是否需要单向隔离或者双向隔离。
-
单向隔离:仅对非安全敏感型负载进行安全性检测,确保其不访问安全资源。
-
双向隔离:对所有负载类型进行隔离检测,确保不同负载之间互不干扰。
7. 安全性检测
执行访问控制检查:
-
对于单向隔离情况,检查非安全敏感型负载是否试图访问安全资源。
-
对于双向隔离情况,检查所有负载类型是否试图越界访问其他类型的资源。
8. 动态回收资源
释放不再使用的资源:负载执行完毕后,其占用的内存资源被回收并返回到相应的资源池中,以便后续其他负载的使用。