Skip to content

feat: 完善信号量语义并新增AND信号量与对比测试

对不队 requested to merge process into main

功能说明

  • 完善单信号量语义:允许 0 初值、修正 P/V 的阻塞与唤醒语义、释放时检查等待者
  • 增加 AND 信号量接口 sem_p_multi,支持原子申请多个信号量,避免死锁
  • 新增/扩展测试:semtest 覆盖边界与并发场景;semandtest 展示“无 AND 易死锁 / 有 AND 可完成”
  • semtestsemandtest 纳入 usertests 自动测试集
  • 同步更新进程管理与系统调用文档、开发日志

关键改动

  • 内核:kernel/sysproc.ckernel/syscall.ckernel/include/syscall.hkernel/include/spinlock.hkernel/lock/spinlock.c
  • 用户态:user/user.huser/usys.pluser/usys.S
  • 测试:user/test/semtest.cuser/test/semandtest.cuser/test/usertests.c
  • 文档:docs/document/进程管理.mddocs/document/系统调用.md开发日志.md

测试情况

  • semtest(手动)
  • semandtest(手动)
  • usertests(包含上述两项)

Merge request reports