简单说明如下:
- kern/schedule/{sched.h,sched.c}: 增加了定时器(timer)机制,用于进程/线程的do_sleep功能。
- kern/sync/sync.h: 去除了lock实现(这对于不抢占内核没用)。
- kern/sync/sem.[ch]:定义并实现了ucore中内核级信号量相关的数据结构和函数,本次试验中你需要了解其中的实现,并基于此完成内核级条件变量的设计与实现。
- user/ libs/ {syscall.[ch],ulib.[ch]
}与kern/sync/syscall.c:实现了进程sleep相关的系统调用的参数传递和调用关系。 - kern/sync/monitor.[ch]:基于管程的条件变量的实现程序,在本次实验中是练习的一部分,要求完成。
- kern/sync/check_sync.c:实现了基于管程的哲学家就餐问题,在本次实验中是练习的一部分,要求完成基于管程的哲学家就餐问题。