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.13k stars 211 forks source link

rCore-Tutorial-Book-v3/chapter5/4scheduling #122

Open utterances-bot opened 2 years ago

utterances-bot commented 2 years ago

进程调度 — rCore-Tutorial-Book-v3 3.6.0-alpha.1 文档

https://rcore-os.github.io/rCore-Tutorial-Book-v3/chapter5/4scheduling.html

YdrMaster commented 2 years ago

外设发给计算机一个事件(如时钟中断、网络包到达等)

一旦?

philipdongfei commented 1 year ago

t=65:接着PB继续执行,并在8075ms时结束;

t=8075:接着PA继续抢占PC(PA的第五个周期开始),在8580ms时结束;

RMS调度算法的调度执行过程里的PB第二个周期时间计算有问题!

liang2kl commented 1 year ago

如果不少长进程位于最低优先级

又 -> 有

TD-Sky commented 1 year ago

当然,这个例子是一种简单的理想情况,实际的多处理器计算机系统中运行的进程行为会很复杂,除了并行执行,还有同步互斥执行、各种/O操作等,这些都会对调度策略产生影响。

/O -> I/O

yangzhenjiang159 commented 11 months ago

“我们把这样的进程称为长进程。那么这个常进程经过一段时间后” 常 -> 长

文章超级棒!

chestNutLsj commented 9 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 进程分时使用处理器

fgh1999 commented 9 months ago

"固定优先级的多级无反馈队列"小节中的第一段:

一旦设置进程的好优先级,MLFQ总是优先执行唯有高优先级就绪队列中的进程。

可能改为:一旦设置好进程的优先级,MLFQ总是优先执行位于高优先级就绪队列中的进程。