Update chapter3.md

pull/1/head
Zhiyuan Shao 4 years ago
parent bcacb62f7c
commit 59d384bf5b

@ -32,8 +32,6 @@ lab5_small
完成一切后,我们就可以正式进入实验二了!
### 3.2 实验内容
实验要求:了解系统调用的执行过程,并实现一个自定义的系统调用。
@ -85,7 +83,7 @@ PKE IS RUNNING
physical mem_size = 0x80000000
```
可以看到默认情况下spike的物理内存是2G
可以看到默认情况下spike的物理内存是2GB
你可以修改-m选项运行app3观察输出。
@ -117,7 +115,7 @@ Score: 20/20
**3.3.1 系统调用**
首先,我们要知道什么是系统调用。
​首先,我们要知道什么是系统调用。
例如读文件(read)、写文件(write)等,其实我们已经接触过形形色色的系统调用。系统调用和函数调用的外形相似,但他们有着本质的不同。
@ -264,8 +262,6 @@ Score: 20/20
这个函数中我们对应用程序的ELF文件进行解析并且最终运行应用程序。
**3.3.3 中断的处理过程**
考虑一下当程序执行到中断之前程序是有自己的运行状态的例如寄存器里保持的上下文数据。当中断发生硬件在自动设置完中断原因和中断地址后就会调转到中断处理程序而中断处理程序同样会使用寄存器于是当程序从中断处理程序返回时需要保存需要被调用者保存的寄存器我们称之为callee-saved寄存器。
@ -400,9 +396,4 @@ handle_trap函数中实现了S模式下各类中断的处理。可以看到
```
do_syscall中通过传入的系统调用号n查询syscall_table得到对应的函数并最终执行系统调用。
Loading…
Cancel
Save