Lab 3:进程与线程
用户进程是操作系统对在用户模式运行中的程序的抽象。在Lab 1 和Lab 2 中,已经完成了内核的启动和物理内存的管理,以及一个可供用户进程使用的页表实现。现在,我们将一步一步支持用户态程序的运行。 本实验包括五个部分:
- RTFSC(2): 代码导读,了解Chcore微内核的核心机制以及用户态和内核态是如何进行交互的。
- 线程管理: 支持创建第一个用户态进程和线程,分析代码如何从内核态切换到用户态。
- 异常处理: 完善异常处理流程,为系统添加必要的异常处理的支持。
- 系统调用:正确处理部分系统调用,保证用户程序的正常输出。
- 用户态程序编写:编写一个简单用户程序,使用提供的 ChCore libc 进行编译,并加载至内核镜像中。
工具链准备
从Lab3开始我们开放了用户态的一些代码,你需要使用如下的命令下载libc.
git submodule update --init --recursive
关于超时
如果你发现时不时因为超时原因而无法正常通过测试,你可以尝试修改Lab文件夹的Makefile的TIMEOUT变量设置超时时间。