Skip to content

Commit 66e15f6

Browse files
Update lab3.md
1 parent b1999ba commit 66e15f6

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

docs/lab/lab3.md

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,9 @@ git merge lab2-dev
7070
>
7171
> 修改你的UserContext。你需要保证UserContext中有spsr、elr、sp(`sp_el0`)寄存器,并结合你的UserContext 添加 `test/user_proc.c` 中的 TODO 部分。
7272
73+
> [!tip]
74+
>
75+
> **思考**:spsr、elr、sp(`sp_el0`)寄存器的作用都是什么?
7376
7477
## 5. 使用kill方法结束进程
7578

@@ -98,6 +101,8 @@ kill机制通过设置进程的`killed`标记实现延迟终止:标记设置
98101
99102
## 6. 调度算法
100103

104+
在本Lab中,我们还将实现一个更实用的调度算法。
105+
101106
### 调度的意义
102107

103108
进程调度是操作系统中的核心功能,其主要意义包括:
@@ -119,13 +124,13 @@ kill机制通过设置进程的`killed`标记实现延迟终止:标记设置
119124
> [!important]
120125
> **任务5**
121126
>
122-
> 改进你的调度器。Lab2的内核进程调度是非抢占式的,Lab3要求大家进行抢占式的调度,你可能需要在调度器中加入时钟中断相关的代码,并注意**调度的公平性问题**。另请注意:我们现在在时钟中断的基础上封装了一层CPU定时器的抽象,**请使用CPU定时器**
127+
> 改进你的调度器。Lab2的内核进程调度是非抢占式的,Lab3要求大家进行抢占式的调度。请注意**调度的公平性问题**,选择一个合适的调度算法。你可能需要在调度器中加入时钟中断相关的代码。另请注意:我们现在在时钟中断的基础上封装了一层CPU定时器的抽象,**请使用CPU定时器**
123128
124129
我们在`user_proc.c`中编写了用户页表和用户进程相关的测试代码,在`cpu.c`中通过CPU定时器添加了CPU定时输出消息的代码。如果一切正常,你将看到`vm_test PASS``user_proc_test PASS`
125130

126131
测试还会输出4个CPU和22个进程的工作量,请确认CPU和进程间的相对工作量是否分别基本平衡。
127132

128-
## 6. 提交
133+
## 7. 提交
129134

130135
**提交方式**:将实验报告提交到 elearning 上,格式为 `学号-lab3.pdf`
131136

0 commit comments

Comments
 (0)