Operating system 在xv6中,switchuvm/switchkvm中的uvm和kvm代表什么?

Operating system 在xv6中,switchuvm/switchkvm中的uvm和kvm代表什么?,operating-system,xv6,Operating System,Xv6,我还没有成功地找出uvm或kvm在xv6中代表什么。我需要它来做一个解释代码每一部分的考试,我也希望能说出它的定义。有人能告诉我吗?我试图理解switch命令到底做了什么,以及它在调用这两个命令时切换了哪些部分 c->proc=p; uvm(p); p->状态=运行; swtch(&(c->scheduler),p->context); switchkvm(); 开关UVM中的u代表用户。 switchkvm中的k代表内核 操作系统加载进程信息以运行它 加载过程后(参见)switchuvm(p)

我还没有成功地找出uvm或kvm在xv6中代表什么。我需要它来做一个解释代码每一部分的考试,我也希望能说出它的定义。有人能告诉我吗?我试图理解switch命令到底做了什么,以及它在调用这两个命令时切换了哪些部分

c->proc=p;
uvm(p);
p->状态=运行;
swtch(&(c->scheduler),p->context);
switchkvm();

开关UVM
中的u代表用户。
switchkvm
中的k代表内核

操作系统加载进程信息以运行它

加载过程后(参见)
switchuvm(p)

进程被标记为正在运行(
p->state=running;
),处理器切换以执行它(
swtch(&(c->scheduler),p->context);

当进程返回调度程序时(在
swtch
之后),内核加载其内存:
switchkvm()

下面是
proc.c
文件中的解释:

//PAGEBREAK: 42
// Per-CPU process scheduler.
// Each CPU calls scheduler() after setting itself up.
// Scheduler never returns.  It loops, doing:
//  - choose a process to run
//  - swtch to start running that process
//  - eventually that process transfers control
//      via swtch back to the scheduler.