执行流(面向未来设计)
补充:执行流能力化(线程即能力节点)
1. 核心定义
- 执行流能力(Execution Flow Capability, EFC):类型
TYPE_THREAD的能力槽位,内联存储线程上下文(入口地址、栈指针、寄存器快照、状态、优先级、绑定的逻辑核心索引)。 - 生命周期:
- 创建:
cap_derive(domain, THREAD_RIGHTS)从域能力派生,分配槽位并初始化。 - 调度:持有 EFC 与逻辑核心能力的域,调用
exec_flow_dispatch(efc, lcore)。Core-0 将 EFC 上下文加载至物理核心。 - 阻塞/唤醒:EFC 槽位内联等待链表,IPC 端点能力槽位存储等待队列头。
- 撤销:
cap_revoke(efc)触发能力树遍历,摘除代码/栈页映射,缺页收割线程上下文,槽位回收。
2. 能力树即执行流树
- 派生关系:父 EFC 派生出的子 EFC 继承优先级/配额衰减属性,独立栈与入口。撤销父 EFC 自动级联撤销子树。
- 审计统一:EFC 槽位内联审计字段(累计 CPU 时间、切换次数、最后调度时刻),上下文切换时原子更新。休眠时持久化能力表即持久化全系统线程状态。
- 迁移:修改 EFC 槽位中
bound_lcore字段并移动就绪队列,由 Core-0 关中断完成,零锁开销。
3. 性能权衡
| 操作路径 | 额外开销 | 收益 |
|---|---|---|
| 上下文切换 | 0 指令(寄存器快照位置偏移不同,计算方式等效) | 审计原子更新,无需额外同步 |
| 阻塞/唤醒 | +1~2 条指令(计算槽位内等待链偏移) | 统一数据结构,删除独立等待队列代码 |
| 创建/销毁 | 同等量级(分配/回收槽位 vs 分配/回收 TCB) | 复用能力系统,无新增模块 |
| 休眠/恢复 | 大幅减少(能力表整体镜像 vs 遍历 TCB 树序列化) | 恢复时间达微秒级 |
| 撤销 | 热路径零影响(页表摘除 + 缺页收割,与内存能力同一机制) | 安全验证收敛,无 TOCTOU 风险 |
结论:热路径增量 ≤ 1 ns,冷路径与维护成本大幅降低,整体净收益。
4. 跨域委托与安全性
- 不可传递执行流:EFC 仅可派生,不可跨域传递(避免运行时共享可变状态)。
- 委托执行:域 A 派生子 EFC,将子 EFC 传递给域 B。域 B 使用自有逻辑核心调度之。
- 隔离保证:子 EFC 的栈/代码段位于原域或新域内存,MMU 隔离。撤销时 Core-0 仅修改页表,已运行线程通过缺页收割终止,无需锁或轮询标志。
5. 面向未来计算范式
EFC 语义由能力类型扩展,与冯·诺依曼解耦:
| 类型 | 经典线程 | 量子任务 | 生物训练 |
|---|---|---|---|
| 能力类型 | TYPE_THREAD_VONNEUMANN | TYPE_THREAD_QUANTUM | TYPE_THREAD_BIO |
| 上下文 | 寄存器快照 | 量子电路描述符 + 回调域 | 刺激序列 + 预期响应 + 奖励函数 |
| 调度策略 | 时间片轮转(Core-0) | 提交至量子控制服务,异步回调 | 提交至生物接口服务,长时运行 |
| 状态保存 | 寄存器快照 | 测量结果 + 电路位置 | 突触权重矩阵导出 |
能力树统一管理异构执行流,审计、撤销、休眠机制无需改变。
6. 总体结论
将线程映射为能力节点,在通用性、可移植性、安全性、性能、可审计性、实现复杂度六个维度上均取得正向收益。 热路径性能损失可忽略(≤1 ns),冷路径大幅简化,安全审计天然收敛,且为量子/生物等未来计算范式预留了统一抽象。此设计为 HIC 架构的必然收敛点。