From 106aac2e956f31b0a837b5cf8302de26ddb9fd8f Mon Sep 17 00:00:00 2001 From: Shine wOng <1551885@tongji.edu.cn> Date: Tue, 17 Sep 2019 18:48:15 +0800 Subject: [PATCH] finish lab6_report.md --- thu_os/images/process_switch.png | Bin 0 -> 158577 bytes thu_os/lab6_report.md | 473 ++++++++++++++++++++++++++++++- 2 files changed, 469 insertions(+), 4 deletions(-) create mode 100644 thu_os/images/process_switch.png diff --git a/thu_os/images/process_switch.png b/thu_os/images/process_switch.png new file mode 100644 index 0000000000000000000000000000000000000000..8467b19c1a21c34f26e78414c92d409756706fca GIT binary patch literal 158577 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
    T>QFw-i>`aUy&4KCv9$NAq0%cwR$nw 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

    (@;igEFuniH^jP(rYI_km_T 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

    RIEB{9rg2!PsA%l2+5RaNxZ|?&WtN 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 YRA#qs{Ghu5z09obNk^-y6X#R@3&Uh9#sB~S literal 0 HcmV?d00001 diff --git a/thu_os/lab6_report.md b/thu_os/lab6_report.md index 0ffd558..ea11def 100644 --- a/thu_os/lab6_report.md +++ b/thu_os/lab6_report.md @@ -38,9 +38,9 @@ lab6最重要的工作,就是实现了进程调度的框架类,并且基于 上面的讨论只是关于具体的进程调度的,现在再来考虑以下其他和进程调度有关的情形。 + 在`fork`一个新的进程时,在`do_fork`函数中需要将新创建的进程加入就绪队列中,可以调用上面提到的`enqueue`操作; -+ 当进程等待资源或者等待子进程退出时,需要将自己的状态标记为等待态(`WAITING`),并且调用`schedule`函数,在`schedule`函数中将完成其余实质性的工作; -+ 当进程退出时,需要将自己的状态标记为僵尸态(`ZOMBIE`),随后调用`schedule`函数,完成剩余的工作。 -+ 当进程因为获得等待的资源而被唤醒时,应该将该进程的状态标记为就绪态(`RUNNING`),并且将它放入就绪队列中,可以调用`enqueue`来完成这个操作。 ++ 当进程等待资源或者等待子进程退出(`wait`)时,需要将自己的状态标记为等待态(`WAITING`),并且调用`schedule`函数,在`schedule`函数中将完成其余实质性的工作; ++ 当进程退出时(`exit`),需要将自己的状态标记为僵尸态(`ZOMBIE`),随后调用`schedule`函数,完成剩余的工作; ++ 当进程因为获得等待的资源而被唤醒时(`wakeup_proc`),应该将该进程的状态标记为就绪态(`RUNNING`),并且将它放入就绪队列中,可以调用`enqueue`来完成这个操作。 可以看到,上面抽象出来的三个基本操作,几乎已经可以满足进程调度中可能出现的所有情况了,因此只要把这些操作封装起来,就基本实现了我们这里的进程调度框架。如下面的代码所示: @@ -65,4 +65,469 @@ struct sched_class { 显然,这个工作只能由操作系统来完成,因为和进程有关的控制信息是保存在内核的,并且让用户进程本身来管理这些控制信息也比较危险。一种解决方案是由时钟定期地产生中断,在时钟中断的处理函数对进程的时间片进行更新。 -事实上,不只是`RR`算法,其他进程调度算法也需要在运行过程中动态地更新一些参数。例如最高响应比优先算法`HRRN`,也需要在执行中动态更新每个进程的等待时间,来计算每个进程的响应比。因此,我们这里的进程调度框架还需要一个参数更新的函数,来在运行时动态地更新调度算法的参数。 +事实上,不只是`RR`算法,其他进程调度算法也需要在运行过程中动态地更新一些参数。例如最高响应比优先算法`HRRN`,也需要在执行中动态更新每个进程的等待时间,来计算每个进程的响应比。因此,我们这里的进程调度框架还需要一个参数更新的函数,来在运行时动态地更新调度算法的参数。更新后的进程调度框架类见下面的代码: + +```c +struct sched_class { + ...... + // dealer of the time-tick + void (*proc_tick)(struct run_queue *rq, struct proc_struct *proc); +} +``` + +## 练习1: 使用 Round Robin 调度算法(不需要编码) + +完成练习0后,建议大家比较一下(可用`kdiff3`等文件比较软件)个人完成的lab5和练习0完成后的刚修改的lab6之间的区别,分析了解lab6采用`RR`调度算法后的执行过程。执行`make grade`,大部分测试用例应该通过。但执行`priority.c`应该过不去。 + +请在实验报告中完成: + ++ 请理解并分析`sched_class`中各个函数指针的用法,并接合`Round Robin` 调度算法描ucore的调度执行过程 ++ 请在实验报告中简要说明如何设计实现”多级反馈队列调度算法“,给出概要设计,鼓励给出详细设计 + +### `sched_class`中各个函数指针的用法 + +基于进程调度框架`sched_class`,我们可以实现各种不同的进程调度算法,所需要做的只是定义一个新的`struct sched_class`类型的变量,作为当前调度算法的调度器,并且实现其中定义的各个函数指针就可以了。 + +那么这里产生了一个问题,在实现了某一个进程调度算法的调度器`struct sched_class`以后,怎么让操作系统使用这个调度器进行进程的调度呢?事实上,在`kern/schedule/sched.c(h)`中进行了相应的实现。 + +具体的实现方法就是定义了一个全局的进程调度器`struct sched_class *sched_class`,首先是基于这个调度器的函数指针实现了进程调度相关的函数,如下面的代码所示: + +```c +static struct sched_class *sched_class; + +static struct run_queue *rq; + +static inline void +sched_class_enqueue(struct proc_struct *proc) { + if (proc != idleproc) { + sched_class->enqueue(rq, proc); + } +} + +static inline void +sched_class_dequeue(struct proc_struct *proc) { + sched_class->dequeue(rq, proc); +} + +static inline struct proc_struct * +sched_class_pick_next(void) { + return sched_class->pick_next(rq); +} + +static void +sched_class_proc_tick(struct proc_struct *proc) { + if (proc != idleproc) { + sched_class->proc_tick(rq, proc); + } + else { + proc->need_resched = 1; + } +} +``` + +可以看到,这些与调度相关的函数本质上都是调用了`sched_class`中的同名函数而已。基于这些基本函数,可以实现进程调度函数`schedule`,进程唤醒函数`wakeup_proc`: + +```c +void +wakeup_proc(struct proc_struct *proc) { + assert(proc->state != PROC_ZOMBIE); + bool intr_flag; + local_intr_save(intr_flag); + { + if (proc->state != PROC_RUNNABLE) { + proc->state = PROC_RUNNABLE; + proc->wait_state = 0; + if (proc != current) { + sched_class_enqueue(proc); + } + } + else { + warn("wakeup runnable process.\n"); + } + } + local_intr_restore(intr_flag); +} + +void +schedule(void) { + bool intr_flag; + struct proc_struct *next; + local_intr_save(intr_flag); + { + current->need_resched = 0; + if (current->state == PROC_RUNNABLE) { + sched_class_enqueue(current); + } + if ((next = sched_class_pick_next()) != NULL) { + sched_class_dequeue(next); + } + if (next == NULL) { + next = idleproc; + } + next->runs ++; + if (next != current) { + proc_run(next); + } + } + local_intr_restore(intr_flag); +} +``` + +为了实际运行某个调度算法的调度器,只需要使全局的进程调度器`sched_class`指针指向这个算法的调度器,这样,在操作系统进行调度的时候,实际上就是使用该调度算法的策略来进行调度了。 + +```c +sched_class = &default_sched_class; +``` + +### `RR`调度算法的实现 + +基于这个进程调度框架,为了实现`RR`调度算法,只需要实现其中定义的各个函数就可以了。下面将分析`RR`调度算法应该如何基于这个进程调度框架来实现。 + +我们知道,`RR`调度算法采用的进程选择策略和先来先服务`FCFS`算法一致,即在选择一个进程进入运行时,只需要选择就绪队列的首进程;当一个新的进程加入就绪队列时,只需要将它加入到就绪队列的末尾就可以了。很明显,为了实现`RR`调度算法,需要管理这样一个按照进程进入就绪状态的先后次序排序的就绪队列,这就是定义在`kern/schedule/sched.h`中的`run_queue`结构体: + +```c +struct run_queue { + list_entry_t run_list; + unsigned int proc_num; + int max_time_slice; +}; +``` + +这里是采用一个双向链表`list_entry_t`来作为就绪队列的底层结构,除此以外,`run_queue`结构体中还管理了处在就绪队列中的进程数量`proc_num`,以及当前就绪队列所能分到的最大时间片长度`max_time_slice`。 + +这样,我们就可以基于进程调度框架实现`RR`调度算法了: + +```c +static void +RR_init(struct run_queue *rq) { + list_init(&(rq->run_list)); + rq->proc_num = 0; +} + +static void +RR_enqueue(struct run_queue *rq, struct proc_struct *proc) { + assert(list_empty(&(proc->run_link))); + list_add_before(&(rq->run_list), &(proc->run_link)); + if (proc->time_slice == 0 || proc->time_slice > rq->max_time_slice) { + proc->time_slice = rq->max_time_slice; + } + proc->rq = rq; + rq->proc_num ++; +} + +static void +RR_dequeue(struct run_queue *rq, struct proc_struct *proc) { + assert(!list_empty(&(proc->run_link)) && proc->rq == rq); + list_del_init(&(proc->run_link)); + rq->proc_num --; +} + +static struct proc_struct * +RR_pick_next(struct run_queue *rq) { + list_entry_t *le = list_next(&(rq->run_list)); + if (le != &(rq->run_list)) { + return le2proc(le, run_link); + } + return NULL; +} +``` + +可以看到,`RR`调度算法的实现和我们上面的分析几乎是一致的,只有一些细节上的修改。除此以外,还需要实现`RR`调度算法的参数更新函数`proc_tick`,根据`RR`调度算法的策略,应该是在每次时钟中断时,将当前进程的时间片大小减一,当当前进程用完它的时间片时,就设置进程的需要调度标志`need_resched`,等待后续处理对它进行调度。实现的`proc_tick`函数如下: + +```c +static void +RR_proc_tick(struct run_queue *rq, struct proc_struct *proc) { + if (proc->time_slice > 0) { + proc->time_slice --; + } + if (proc->time_slice == 0) { + proc->need_resched = 1; + } +} +``` + +基本实现了`RR`调度算法以后,就可以定义它的调度器,并且使全局进程调度器指针`sched_class`指向这个调度器: + +```c +struct sched_class default_sched_class = { + .name = "RR_scheduler", + .init = RR_init, + .enqueue = RR_enqueue, + .dequeue = RR_dequeue, + .pick_next = RR_pick_next, + .proc_tick = RR_proc_tick, +}; + +void +sched_init(void) { + list_init(&timer_list); + + sched_class = &default_sched_class; + + rq = &__rq; + rq->max_time_slice = MAX_TIME_SLICE; + sched_class->init(rq); + + cprintf("sched class: %s\n", sched_class->name); +} +``` + +### `RR`算法调度执行过程分析 + +在[进程管理(2):进程调度策略](chp15.md)中分析过,进程调度的时机主要分为两类,一类是进程主动让出CPU控制权,另一类是当前运行的进程被其他进程抢占。但无论是第一类还是第二类,对于用户进程而言都是在中断中进行的。 + +若采用`RR`调度算法,当一个进程的时间片用完时,其他进程就会对当前进程进行抢占。这里的抢占与进程调度是借助中断机制实现的,下面就具体分析这个实现过程。 + +当操作系统产生一次时钟中断时,硬件会把当前进程的中断帧保存,并且进入内核处理中断。它会进入`kern/trap/trap.c::trap`函数,在其中会调用`trap_dispatch`对中断进行分发和处理,这里详细的过程可以参考[lab1实验报告](lab1_report.md);最终,程序会跳转到时钟中断的中断处理函数执行,在这里,它会调用`sched_class_proc_tick`函数来对当前进程的时间片进行更新,倘若当前进程的时间片恰好用光,则会修改它的需要调度标志`need_resched`。`trap`函数的具体实现如下: + +```c +void +trap(struct trapframe *tf) { + // dispatch based on what type of trap occurred + // used for previous projects + if (current == NULL) { + trap_dispatch(tf); + } + else { + // keep a trapframe chain in stack + struct trapframe *otf = current->tf; + current->tf = tf; + + bool in_kernel = trap_in_kernel(tf); + + trap_dispatch(tf); + + current->tf = otf; + if (!in_kernel) { + if (current->flags & PF_EXITING) { + do_exit(-E_KILLED); + } + if (current->need_resched) { + schedule(); + } + } + } +} +``` + +可以看到,从中断处理函数返回以后,在`trap`中会对当前进程是否是内核线程做一次判断,倘若是内核线程,则直接恢复中断现场。如果当前进程是一个用户进程,则会进一步判断它是否需要调度,如果的确需要调度,则会调用`schedule`函数来完成调度。这里对内核线程的判断,表示对内核线程是不可抢占的。 + +需要注意的是,此时是在中断里面进行调度,当调用`schedule`函数时,会在`proc_run`函数中完成内核堆栈的切换以及上下文信息的切换。这样,当`switch_to`返回时,会返回到新运行进程的`trap`函数,上次该进程正是在此处完成了进程的切换的,通过`__trapret`,该进程可以恢复它上次被切换时进入中断而保存的中断帧,从而成功跳转到用户程序中被中断的位置接着执行。进程切换过程的示意图所下图所示: + +![process_switch](images/process_switch.png) + +实际上,不只是时间片用完时的进程抢占,其他用户进程切换的情形也和这里是类似的,例如一个用户进程需要等待某一个资源,此时它需要调用`wait`系统调用进入中断,在实际的服务函数`do_wait`中,会调用`schedule`来完成进程切换。该进程再次被调度时,仍然是通过`iret`从中断处理中返回。唯一的不同点在于此时是通过`do_wait`中的`schedule`实现调度的,而前者是通过`trap`中的`schedule`实现调度的。 + +### 多级反馈队列调度算法的设计 + +为了实现`MLFQ`算法,显然首先是需要在底层提供多个队列,每个队列具有不同的优先级,相应的也具有不同大小的时间片长度。 + +```c +#define NUM_RUN_QUEUE 5 +static struct run_queue rq[NUM_RUN_QUEUE]; + +static void +MLFQ_init(struct run_queue *rq){ + for(int ix = 0; ix != NUM_RUN_QUEUE; ++ix){ + list_init(rq[ix].run_list); + rq[ix].proc_num = 0; + rq[ix].max_time_slice = MAX_TIME_SLICE * (1 << ix); + } +} +``` + +由于进程会在不同的队列之间切换,需要保存当前进程已经执行的次数,实际上,这个信息已经保存在了`proc_struct->runs`变量中了。当进程首次被创建时,将它加入优先级最高的队列;以后,如果进程的时间片用完,则让它进入优先级低一级的就绪队列,而如果只是因为等待资源而阻塞的话,则在唤醒后还是加入同级队列。基于此,可以给出`enqueue`函数的实现: + +```c +static void +MLFQ_enqueue(struct run_queue *rq, struct proc_struct *proc){ + int runs = proc->runs; + if(runs > 4) runs = 4; + + if(proc->time_slice == 0) + proc->time_slice = rq[runs].max_time_slice; + + else{//return to the original queue + proc->runs--; + runs = proc->runs > 4?proc->runs: 4; + } + list_add_before(&(rq[runs].run_list), &(proc->run_link)); + proc->rq = &rq[runs]; + rq[runs].proc_num++; +} +``` + +在选择一个进程进行调度时,即按照优先级遍历各个就绪队列,将首个就绪进程取出即可。为了将该进程从就绪队列中删除,直接调用`list_del`函数就可以了。这两个函数的实现如下: + +```c +static void +MLFQ_dequeue(struct run_queue *rq, struct proc_struct *proc){ + proc->rq->proc_num--; + list_del_init(&(proc->run_link)); +} + +static struct proc_struct * +MLFQ_pick_next(struct run_queue *rq){ + for(int ix = 0; ix != NUM_RUN_QUEUE; ++ix){ + if(rq[ix].proc_num != 0){ + list_entry_t *le = list_next(&(rq[ix].run_list)); + assert(le != &(rq[ix].run_list)); + return le2proc(le, run_link); + } + } + return NULL; +} +``` + +最后,时间片长度更新的函数和`RR`调度算法应该是一致的,这样,就完成了`MLFQ_sched_class`调度器的构造。 + +```c +static void +MLFQ_proc_tick(struct run_queue *rq, struct proc_struct *proc) { + if (proc->time_slice > 0) { + proc->time_slice --; + } + if (proc->time_slice == 0) { + proc->need_resched = 1; + } +} + +struct sched_class MLFQ_sched_class = { + .name = "MLFQ_scheduler", + .init = MLFQ_init, + .enqueue = MLFQ_enqueue, + .dequeue = MLFQ_dequeue, + .pick_next = MLFQ_pick_next, + .proc_tick = MLFQ_proc_tick, +}; +``` + +非常惭愧的是,由于时间有限,这里只是写出了初步实现的代码,因为懒得写测试用例,所以根本没有测试过,连语法都有错误也是可能的......以后我有机会再说这个问题。 + +## 练习2: 实现`Stride Scheduling`调度算法(需要编码) + +首先需要换掉`RR`调度器的实现,即用`default_sched_stride_c`覆盖`default_sched.c`。然后根据此文件和后续文档对`Stride`调度器的相关描述,完成`Stride`调度算法的实现。 + +执行:make grade。如果所显示的应用程序检测都输出ok,则基本正确。如果只是priority.c过不去,可执行 make run-priority 命令来单独调试它。大致执行结果可看附录。( 使用的是 qemu-1.0.1 )。 + +请在实验报告中简要说明你的设计实现过程。 + +### `Stride Scheduling`算法描述 + +采用`RR`调度算法时,各个进程之间是公平的,它们都占有几乎相同的CPU时间。然而在实际的系统中,进程之间是有优先级之分的,高优先级的进程应该比低优先级的进程拥有更多的机会得到CPU的使用权。基于抢占式的优先级调度算法固然是一种解决方案,但是这种调度策略会产生饥饿现象。 + +我们这里是希望每个进程得到的CPU时间资源和它们的优先级成正比关系,`Stride`调度算法就是基于这种想法产生的。 + +为了实现`Stride`调度算法,首先每个进程都需要有一个优先级`priority`,根据`Stride`算法的思路,每个进程的执行时间是与这个优先级成正比的,为此,`Stride`算法中定义了两个变量,步长`stride`和总的步数`pass`。每个进程的步长`stride`是与它的优先级成反比的,可以定义一个大的常数`BIG_STRIDE`,这样 + +```c +stride = BIG_STRIDE / priority; +``` + +在需要进行进程调度时,总是选择当前总的步数`pass`最小的一个进程,并且让它“行走”一个步长`stride`的距离,即 + +```c +pass += stride; +``` + +这样,对于高优先级的进程,其步长`stride`较小,相应的`pass`增加得更慢,就有更多的机会得到CPU的使用权。而低优先级的进程,由于步长`stride`很大,`pass`在每次调度后都有一个很大的增量,它获得CPU使用权的机会就较少。当一个进程得到CPU的使用权后,`Stride`算法就类似于`RR`算法了——每个进程都只能运行一个固定的时间片,就需要再次进行调度。 + +可以证明(虽然我不会),`Stride`调度算法对进程的调度次数正比于其优先级,并且整个算法具有确定性,即在不考虑计时器事件的情况下,整个调度机制都是可预知和重现的。 + +### `Stride`算法的实现 + +同前面一样,只需要实现进程调度框架中的那几个函数,就可以实现`Stride`调度算法,以下将分别对各个函数进行分析。 + +首先需要注意到,`Stride`算法的选择策略是选择`pass`值最小的进程。为了迅速找到这样一个进程,我们需要合理选择底层的数据结构,这里是采用斜堆(`skew heap`)来实现,可以保证在平均情况下插入和删除操作的时间复杂度不超过`O(logn)`。因此,这里的底层就需要对`struct run_queue`结构体做一个拓展,使它具有一个斜堆的指针: + +```c +struct run_queue { + list_entry_t run_list; + unsigned int proc_num; + int max_time_slice; + // For LAB6 ONLY + skew_heap_entry_t *lab6_run_pool; +}; +``` + +同理,进程控制块`struct proc_struct`中也要做相应的拓展。这样,在进程的`enqueue`和`dequeue`操作中,都需要维护这样的斜堆的结构。下面给出`enqueue`,`pick`和`dequeue`函数的具体实现: + +```c +static void +stride_enqueue(struct run_queue *rq, struct proc_struct *proc) { + rq->lab6_run_pool = skew_heap_insert(rq->lab6_run_pool, &(proc->lab6_run_pool), proc_stride_comp_f); + if (proc->time_slice == 0 || proc->time_slice > rq->max_time_slice) { + proc->time_slice = rq->max_time_slice; + } + proc->rq = rq; + rq->proc_num++; +} + +static void +stride_dequeue(struct run_queue *rq, struct proc_struct *proc) { + rq->lab6_run_pool = skew_heap_remove(rq->lab6_run_pool, &(proc->lab6_run_pool), proc_stride_comp_f); + rq->proc_num--; +} + +static struct proc_struct * +stride_pick_next(struct run_queue *rq) { + if (rq->lab6_run_pool == NULL) return NULL; + struct proc_struct *p = le2proc(rq->lab6_run_pool, lab6_run_pool); + if(p->lab6_priority == 0){//for kernel thread + p->lab6_pass += BIG_STRIDE; + } + else + p->lab6_pass += BIG_STRIDE / p->lab6_priority; + + return p; +} +``` + +但是这里还存在一个问题,即`pass`的值是一直增加的,而计算机的位数是有限的,通常只是采用32位整数来保存这个值,这样`pass`的值迟早会溢出,此时再对`pass`进行比较来选择下一个调度的进程就会产生错误的结果。因此,需要合理设计这里的比较函数`proc_stride_comp_f`,将这种情况考虑在内。 + +容易证明,在任何一次进行调度时,就绪队列中的任意两个进程都满足 + +$$ +| pass_1 - pass_2 | \le stride_max +$$ + +其中,`stride_max`表示所有进程中的最大步进值。这样,可以进一步 + +$$ +pass_max - pass_min \le BIG_STRIDE +$$ + +因此一种解决方案是,对两个`pass`之差的结果进行分析,如果它是介于`-BIG_STRIDE`到`BIG_STRIDE`之间的,则认为是一个合理值,返回正常的结果。若这个差值在上述区间之外,则认为其中一个`pass`已经发生了溢出,因此取相反的结果,对应的比较函数的实现如下: + +```c +static int +proc_stride_comp_f(void *a, void *b) +{ + struct proc_struct *p = le2proc(a, lab6_run_pool); + struct proc_struct *q = le2proc(b, lab6_run_pool); + int32_t c = p->lab6_stride - q->lab6_stride; + if (c > 0 && c <= BIG_STRIDE) return 1; + if(c < -BIG_STRIDE) return 1; + if (c == 0) return 0; + return -1; +} +``` + +但是按照老师的意思,这种方法不够优雅,还要多做几次判断,代码可读性......这谁读得懂啊。按照老师的意思,比较函数的实现就是正常的实现方法: + +```c +static int +proc_stride_comp_f(void *a, void *b) +{ + struct proc_struct *p = le2proc(a, lab6_run_pool); + struct proc_struct *q = le2proc(b, lab6_run_pool); + int32_t c = p->lab6_stride - q->lab6_stride; + if (c > 0) return 1; + if (c == 0) return 0; + return -1; +} +``` + +在这样的情况下,就需要正确选择`BIG_STRIDE`的值,使得两个无符号32位整数之差,在`pass_1`的确大于`pass_2`时(指真值,而不是溢出之后的值),`pass_1 - pass_2`为正的有符号整数;在`pass_1`小于`pass_2`时,为负的有符号整数。 + +经过我的深思熟虑(我也说不清中间的逻辑是什么,这里比较复杂啊,设计比较底层的知识),可以验证,当`BIG_STRIDE = ~(1 << 31)`时,正好满足这个条件,此时就可以使用第二个版本那个简明的比较函数了。