Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
rcore-os
RCore Tutorial V3
提交
632ae01a
R
RCore Tutorial V3
项目概览
rcore-os
/
RCore Tutorial V3
上一次同步 1 年多
通知
15
Star
793
Fork
260
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
4
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
RCore Tutorial V3
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
4
Issue
4
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
632ae01a
编写于
12月 14, 2020
作者:
Y
Yifan Wu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Update ch3-coop Description.
上级
698b4553
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
16 addition
and
1 deletion
+16
-1
ch3-coop/README.md
ch3-coop/README.md
+16
-1
未找到文件。
ch3-coop/README.md
浏览文件 @
632ae01a
# Tutorial 第三章测试用例 part1
在 Tutorial 第三章第一阶段中,只需实现一个非抢占式调度的分时多任务系统。
在 Tutorial 第三章第一阶段中,只需实现一个非抢占式调度的分时多任务系统。
在
`src/bin`
目录中,我们可以找到三个应用程序:
*
`00write_a`
*
`01write_b`
*
`02write_c`
我们需要在系统初始化的时候将它们分别加载到一个应用与内核预先约定的物理地址。对于编号 0 <= i <= 2,应该将其加载到物理地址 0x80100000+0x20000
\*
i 处运行。这需要在构建应用程序的时候动态调整
`linker.ld`
中的应用起始地址,参见
`build.py`
。
应用被设计为运行在用户模式,批处理系统应运行在监督模式,它们都直接访问物理内存。
这一阶段需要实现的系统调用:
*
`sys_yield`
:用来交出当前应用的 CPU 使用权并切换到下一个应用,等到再次获得 CPU 使用权才能继续向下执行。
阅读应用程序代码可知,每个应用都输出一个字母方阵,但是每输出一行之后就会
`sys_yield`
,于是最终应该看到一个字母交错的方阵。
注意:当所有应用通过
`sys_exit`
退出之后,系统也应该退出。
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录