feat: 完善信号量语义并新增AND信号量与对比测试
功能说明
- 完善单信号量语义:允许 0 初值、修正 P/V 的阻塞与唤醒语义、释放时检查等待者
- 增加 AND 信号量接口
sem_p_multi,支持原子申请多个信号量,避免死锁 - 新增/扩展测试:
semtest覆盖边界与并发场景;semandtest展示“无 AND 易死锁 / 有 AND 可完成” - 将
semtest与semandtest纳入usertests自动测试集 - 同步更新进程管理与系统调用文档、开发日志
关键改动
- 内核:
kernel/sysproc.c、kernel/syscall.c、kernel/include/syscall.h、kernel/include/spinlock.h、kernel/lock/spinlock.c - 用户态:
user/user.h、user/usys.pl、user/usys.S - 测试:
user/test/semtest.c、user/test/semandtest.c、user/test/usertests.c - 文档:
docs/document/进程管理.md、docs/document/系统调用.md、开发日志.md
测试情况
-
semtest(手动) -
semandtest(手动) -
usertests(包含上述两项)