bitmap的工作流程

bitmap的工作流程是怎样的?

bitmap的工作流程是怎样的?

1. 识别负载类型

根据应用场景和安全需求,将负载分为安全敏感型负载和非安全敏感型负载:

  • 安全敏感型负载:需要在可信执行环境中运行,以保护数据和代码的机密性和完整性。

  • 非安全敏感型负载:可以在开放的执行环境中运行,主要关注执行效率。

2. 设置隔离属性

定义隔离属性:为不同类型负载设置隔离属性,包括单向隔离和双向隔离。

  • 单向隔离:允许安全敏感型负载访问非安全敏感型负载的资源,但不允许反向访问。

  • 双向隔离:安全敏感型负载和非安全敏感型负载之间互相不能访问对方的资源。

3. 划分资源池

划分物理内存资源:将物理内存划分为不同的资源池以支持不同负载的隔离需求。

  • 安全资源池:分配给安全敏感型负载。

  • 非安全资源池:分配给非安全敏感型负载。

4. 配置安全属性

设置内存页安全状态:使用Bitmap数据结构标记每个物理内存页的安全状态。

  • 安全页:标记为1,表示该页属于安全资源池。

  • 非安全页:标记为0,表示该页属于非安全资源池。

5. 动态分配资源

按需分配内存:根据负载的启动和运行时需求,动态分配相应的内存资源。

  • 安全敏感型负载:从安全资源池分配内存,并确保其访问受限于安全页。

  • 非安全敏感型负载:从非安全资源池分配内存,允许其访问非安全页。

6. 隔离检测判断

判断隔离类型:判断当前负载是否需要单向隔离或者双向隔离。

  • 单向隔离:仅对非安全敏感型负载进行安全性检测,确保其不访问安全资源。

  • 双向隔离:对所有负载类型进行隔离检测,确保不同负载之间互不干扰。

7. 安全性检测

执行访问控制检查

  • 对于单向隔离情况,检查非安全敏感型负载是否试图访问安全资源。

  • 对于双向隔离情况,检查所有负载类型是否试图越界访问其他类型的资源。

8. 动态回收资源

释放不再使用的资源:负载执行完毕后,其占用的内存资源被回收并返回到相应的资源池中,以便后续其他负载的使用。

最后修改 August 26, 2025: docs: update image size (#165) (4c1ee51)