rcore-os / rCore-Tutorial-Book-v3

A book about how to write OS kernels in Rust easily.
https://rcore-os.github.io/rCore-Tutorial-Book-v3/
GNU General Public License v3.0
1.17k stars 220 forks source link

优化调度算法一节的描述并修复错误 #200

Open wyfcyx opened 11 months ago

wyfcyx commented 11 months ago
  1. 在RR调度策略中,有两处感觉可以改进一下
    • 谈及RR策略的周转时间时:

      看来轮转调度对于响应时间这个指标很友好。但如果用户也要考虑周转时间这个指标,那轮转调度就变得不行了

这个“变得不行了”用语未免太口语化,改成“变得不够令人满意了”比较合适。

这里也不必说“无限”,因为只要时间片大于作业池里最长处理时间需求的作业时,就变成FCFS了。

  1. 另外有个重复字的勘误:

    我们先给出一个公平的描述性定义:在一个时间段内,操作系统对每个处于就绪状态的进程均匀分配占用处理器的时间。

  2. 还有个错别字,在公平份额调度一节:

    这个时候,面向用户或进程相对的公平性就是不得不考虑的一个问题,甚至要优先考虑的性能指标。

  3. 在速率单调调度一节:

    采用抢占的、静态优先级的策略,调度周期性任务。

末尾这句话突兀地出现,让人看不懂要表达什么,实际上在开始处添加“RMS的特点:”比较清楚。

  1. 另外RMS可有效处理任务的数量的公式也有些不同,小于等于右侧的不是1而是 n*(2^(1/n)-1) ,n趋于无穷时上界为ln2=0.693,可以作为补充材料进行说明。

  2. 在实时调度实例这一节,计算RMS调度的细节有问题,改正后如下(实际上之前已有评论区指出问题,但还未改正):

    • t=75:PC 开始执行(PC 第一周期的第三部分);
    • t=80:接着 PA 继续抢占 PC(PA 的第五个周期开始),在 85ms 时结束;
    • t=85:然后 PC 再次执行,在 90ms 时结束(PC 的第一周期的第四部分)。
  3. 然后,在EDF的调度部分,也有一点问题,应当如下修改:

    t=50:然后在 50ms 时(PB 的第二个周期),PB 截止时间 100ms 小于等于 PC 截止时间 100ms,但 PB 的执行时间小于 PC 的执行时间(增加这么一句话),PB 抢占 PC 并再次执行;

  4. 在多处理器计算机系统一节,新增的附加条件有个错别字:

    运行在不同处理器上的多个进程可并行执行,但对于共享资源 / 变量的处理,需要有同步互斥等机制的正确性保证。

这里用应当是“以”。

  1. 后文在负载均衡问题下面一个段落,有个错别字:

    有两个就绪队列,PA 和 PB 在就绪队列 Q1,PC 和 PD 在就绪队列 Q2,如果采用基于轮转调度的多队列调度,那么两个处理器可以均匀地让 4 进程分时使用处理器

Originally posted by @chestNutLsj in https://github.com/rcore-os/rCore-Tutorial-Book-v3/issues/122#issuecomment-1743257498