rCore-Tutorial-v3/ch3
2020-12-14 17:23:41 +08:00
..
.cargo Update testcases. 2020-12-14 16:51:50 +08:00
src Update testcases. 2020-12-14 16:51:50 +08:00
.gitignore Update testcases. 2020-12-14 16:51:50 +08:00
build.py Update testcases. 2020-12-14 16:51:50 +08:00
Cargo.toml Update testcases. 2020-12-14 16:51:50 +08:00
Makefile Update testcases. 2020-12-14 16:51:50 +08:00
README.md Update ch3/ch4 Description. 2020-12-14 17:23:41 +08:00

Tutorial 第三章测试用例 part2

在第三章第二阶段中,需要在第一阶段的基础上实现一个抢占式调度的分时多任务系统。在 src/bin 目录下,我们可以找到四个应用程序:

  • 00power_3
  • 01power_5
  • 02power_7
  • 03sleep

像第一阶段一样,它们也需要被加载到不同的物理地址处运行。

应用被设计为运行在用户模式,批处理系统应运行在监督模式,它们都直接访问物理内存。

这一阶段需要实现的系统调用:

  • sys_get_time:获取系统当前的毫秒数,在应用 03sleep 中使用,可以简单估计所有应用运行的总时间。

阅读应用程序代码可知,三个 power 应用分别计算一个质数的幂次对另一个大质数取模的余数,由于次数很高在一个时间片之内无法完成,而它们又不会使用 sys_yield 主动交出 CPU 使用权,因此只能由内核进行强制切换。